詳述IPVS負載均衡
我們常用的負載均衡系統(tǒng)主要是LVS,這種linux下的軟件很方便使用。那么針對LVS集群系統(tǒng)的介紹,這里我們主要針對IPVS負載均衡問題進行一個詳細的說明。首先還是讓我們簡要了解一下IPVS的內容。
各服務器IP分配:
Virtual IP: | 192.168.136.10 |
Load Balancer: | 192.168.136.11 |
Backup: | 192.168.136.12 |
Real Server 1: | 192.168.136.101 |
Real Server 2: | 192.168.136.102 |
Real Server 3: | 192.168.136.103 |
IPVS是LVS集群系統(tǒng)的核心軟件,它的主要作用是:安裝在Load Balancer上,把發(fā)往Virtual IP的請求轉發(fā)到Real Server上。
IPVS負載均衡機制有三種,這里使用IP Tunneling機制:
◆Virtual Server via NAT
◆Virtual Server via IP Tunneling
◆Virtual Server via Direct Routing
IPVS負載均衡調度算法有十種:
◆輪叫(Round Robin)
◆加權輪叫(Weighted Round Robin)
◆最少鏈接(Least Connections)
◆加權最少鏈接(Weighted Least Connections)
◆基于局部性的最少鏈接(Locality-Based Least Connections)
◆帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)
◆目標地址散列(Destination Hashing )
◆源地址散列(Source Hashing)
◆最短期望延遲(Shortest Expected Delay)
◆無須隊列等待(Never Queue)
IPVS安裝主要包括三方面:
◆在Load Banlancer上安裝IPVS內核補丁
◆在Load Banlancer上安裝IPVS管理軟件
◆在Real Server上安裝ARP hidden內核補丁
關于如何編譯內核請參考其他文檔,這里使用從UltraMonkey下載的已編譯好的內核。
在Load Banlancer、Backup和Real Server上使用同一內核,IPVS和ARP hidden都已編譯在這個內核里:
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/mkinitrd-3.5.13-1.um.1.i386.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-smp-2.4.21-27.0.2.EL.um.1.i686.rpm
rpm -Fhv mkinitrd-3.5.13-1.um.1.i386.rpm
rpm -Fhv kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
在負載均衡器和Backup上安裝IPVS管理軟件:
wget http://www.linuxvirtualserver.org/software/kernel-2.4/ipvs-1.0.10.tar.gz
tar zxf ipvs-1.0.10.tar.gz
cd ipvs-1.0.10/ipvs/ipvsadm
make install
chkconfig --del ipvsadm
配置IPVS負載均衡(/etc/sysconfig/ipvsadm),添加Real Server:
-A -t 192.168.136.10:80 -s rr
-a -t 192.168.136.10:80 -r 192.168.136.11:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.12:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.101:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.102:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.103:80 -i