LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。
宗旨:
使用集群技術和Linux操作系統實現一個高性能、高可用的服務器.
很好的可伸縮性(Scalability)
很好的可靠性(Reliability)
很好的可管理性(Manageability)。
特點:
可伸縮網絡服務的幾種結構,它們都需要一個前端的負載調度器(或者多個進行主從備份)。我們先分析實現虛擬網絡服務的主要技術,指出IP負載均衡技術是在負載調度器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,我們稱之為VS/NAT技術(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,我們提出了通過IP隧道實現虛擬服務器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實現虛擬服務器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集群中實現的三種IP負載均衡技術。
優點:
1、開源,免費
2、在網上能找到一些相關技術資源
3、具有軟件負載均衡的一些優點
缺點:
1、最核心的就是沒有可靠的支持服務,沒有人對其結果負責;
2、功能比較簡單,支持復雜應用的負載均衡能力較差,如算法較少等;
3、開啟隧道方式需重編譯內核;
4、配置復雜;
5、主要應用於LINUX,目前沒有專門用於WINDOWS的版本,不過可以通過配置,使windows成為LVS集群中的real server(win2003、win2008中)。
環境:
Web-Server:Centos6.8 192.168.126.135
Web-Server:Centos6.8 192.168.126.134
在Web服務器上搭建web:
1、安裝web系統,在centOS上可以使用命令yum install進行安裝,-y 表示安裝過程中全部選擇yes,我這里做測試環境,所以簡單安裝
yum -y install httpd
2、設置httpd、mysqld為開機啟動服務
chkconfig httpd on
3、啟動服務、關閉防火牆
service httpd start
service iptables stop #為了測試方便,直接關閉防火牆
4、安裝虛擬IP管理工具:ipvsadm
yum -y install ipvsadm
5、新建腳本:
#!/bin/bash VIP=192.168.126.100 #假設126.100是VIP RIP1=192.168.126.135 #web-1 RIP2=192.168.126.134 #web-2 case "$1" in start) echo "開始配置LVS Director Server" ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up route add -host $VIP dev eth0:0 echo "1">/proc/sys/net/ipv4/ip_forward ipvsadm -C ipvsadm -A -t $VIP:80 -s rr ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ipvsadm -a -t $VIP:80 -r $RIP2:80 -g ipvsadm echo "配置成功" ;; stop) echo "正在關閉LVS Director Server" echo "0">/proc/sys/net/ipv4/ip_forward ipvsadm -C ifconfig eth0:0 down echo "關閉成功!" ;; *) echo "用法:$0 {start|stop}" exit 1 esac
6、賦予腳本權限並運行腳本
[root@localhost /]# sh lvs.sh start 開始配置LVS Director Server IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.126.100:http rr #虛擬IP -> 192.168.126.134:http Route 1 0 0 #WEB-1 -> 192.168.126.135:http Route 1 0 0 #WEB-2 配置成功
在另一台 Web服務器上搭建web:
1、安裝web系統,在centOS上可以使用命令yum install進行安裝,-y 表示安裝過程中全部選擇yes,我這里做測試環境,所以簡單安裝
yum -y install httpd
2、設置httpd、mysqld為開機啟動服務
chkconfig httpd on
3、啟動服務、關閉防火牆
service httpd start
service iptables stop #為了測試方便,直接關閉防火牆
4、安裝虛擬IP管理工具:ipvsadm
yum -y install ipvsadm
5、新建腳本:
[root@localhost /]# vim lvs.sh #!/bin/bash VIP=192.168.126.100 #VIP case "$1" in start) echo "配置lvs Real Server開始..." ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up route add -host $VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce ;; stop) echo "正在關閉lvs Real server" ifconfig lo:0 down echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "用法:$0 {start|stop}" exit 1 esac [root@localhost /]# sh lvs.sh start 配置lvs Real Server開始...
配置完成!
打開瀏覽器訪問VIP地址:http://192.168.126.100 持續刷新網頁看會不會出現訪問到兩個web服務器地址的頁面
如果你需要進一步配置LVS+Keepalived,可以參考:LVS+keepalived配置