LVS
環境centos6.5linux
概念:
APR協議:經過IP地址得到主機的物理地址(MAC地址) 32位IP地址轉換爲48位物理地址。
集羣:一組相互獨立的計算機組成一計算機系統,每臺獨立計算機都運行本身的進程。
開源羣集軟件:lvs,haproxy,nginx,keepallived,heartbeat
硬件:F5,Netscaler,Radware,至關於haproxy的工做模式。nginx
LVS實現調度的IPVS內核層,經過IPVSADM管理,也能夠用keepalived管理。
VIP:虛擬IP地址。
RIP:集羣下面節點的真實IP地址。
DIP:負載均衡上面的IP。
CIP:客戶端的發起請求的ip地址。web
LVS模式:
一、NAT模式-網絡地址轉換(收費站模式) 請求和返回都要通過,壓力大。
二、TUN隧道模式
三、DR直接路由模式 #######互聯網公司最經常使用,響應以後不通過負載均衡,效率高。
四、FULLNAT徹底NAT模式後端
DR直接路由模式原理:
改寫請求報文的目標MAC地址,將請求發給真實服務器,而真實服務器將響應後處理結果直接返回給客戶端。RS和LB必須在同一局域網。
因爲只進行了mac地址改寫,因此沒法改變請求報文的目的端口。dr模式效率高,配置麻煩。訪問量不是特別大的公司能夠用haproxy和nginx代替。日pv2000W,併發1W一下能夠不用。
web服務的RS儘可能用外網地址,這樣數據包就直接發給機房網關。centos
NAT模式:
修改目的地址爲RIP,MAC地址不變。RTP的網關必須是:LVS IP。
LB須要配置WAN公網地址。網站訪問量大時,LB有較大瓶頸,能夠修改端口。80能夠轉成8080.
數據包來回都須要通過LB須要打開內核轉發net.ipv4.ip_forward=1服務器
TUN隧道模式:(跟DR很像)
數據in:增長IP頭帶RS(IP能夠是公網)。最好RS有一個外網地址。網絡
LVS調度方法:
固定:
一、rr:輪詢,會將請求以此分給RS(解決會話保持問題)
二、wrr:加權輪詢。權重越大,請求越多。
三、wls:最小鏈接數權重
四、dd:根據目的地址調度 通常不用
五、sh:源地址調度 通常不用併發
搭建環境
lvs 192.168.56.21
web1 192.168.56.20
web2 192.168.56.100負載均衡
搭建lvs(#改爲星號,51cto不支持顯示星號)ide
yum install -y kernel-devel gcc openssl openssl-devel popt# libnl#
ln -s /usr/src/kernels/2.6.32-696.18.7.el6.x86_64/ /usr/src/linux
cd /usr/local/share
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar -zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make
make install
modprobe ip_vs
lsmod|grep ip_vs
手動配置vip
ifconfig eth0:0 192.168.56.10/24 up
添加一個虛擬主機 rr輪詢 p 20會話保持
ipvsadm -A -t 192.168.56.10:80 -s rr -p 20
添加節點-g DR模式 -i TUN隧道模式 -m nat模式
ipvsadm -a -t 192.168.56.10:80 -r 192.168.56.20:80 -g -w 1
ipvsadm -a -t 192.168.56.10:80 -r 192.168.56.100:80 -g -w 1
查看
ipvsadm -L -n
刪除服務
ipvsadm -D -t 192.168.56.10:80
ipvsadm -d -t 192.168.56.10:80 -r 192.168.56.20:80
ipvsadm -d -t 192.168.56.10:80 -r 192.168.56.100:80
其餘節點綁定vip
ifconfig lo:0 192.168.56.10/32 up
抑制ARP
echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
這樣就是能夠經過訪問192.168.56.10來訪問後端了。
若是一臺lvs掛了,啓動另一臺lvs的時候須要經過其餘客戶端更改後的mac
/sbin/arping -U -I eth0 192.168.56.10 192.168.56.2 >/dev/null 2>&1
lvs服務端和RS都須要腳本啓動和關閉