lvs

LVS
環境centos6.5

概念:
APR協議:通過IP地址獲得主機的物理地址(MAC地址) 32位IP地址轉換爲48位物理地址。
集羣:一組相互獨立的計算機組成一計算機系統,每臺獨立計算機都運行自己的進程。
開源羣集軟件:lvs,haproxy,nginx,keepallived,heartbeat
硬件:F5,Netscaler,Radware,相當於haproxy的工作模式。

LVS實現調度的IPVS內核層,通過IPVSADM管理,也可以用keepalived管理。
VIP:虛擬IP地址。
RIP:集羣下面節點的真實IP地址。
DIP:負載均衡上面的IP。
CIP:客戶端的發起請求的ip地址。

LVS模式:
1、NAT模式-網絡地址轉換(收費站模式) 請求和返回都要經過,壓力大。
2、TUN隧道模式
3、DR直接路由模式 #######互聯網公司最常用,響應之後不經過負載均衡,效率高。
4、FULLNAT完全NAT模式

DR直接路由模式原理:
改寫請求報文的目標MAC地址,將請求發給真實服務器,而真實服務器將響應後處理結果直接返回給客戶端。RS和LB必須在同一局域網。
由於只進行了mac地址改寫,所以無法改變請求報文的目的端口。dr模式效率高,配置麻煩。訪問量不是特別大的公司可以用haproxy和nginx代替。日pv2000W,併發1W一下可以不用。
web服務的RS儘量用外網地址,這樣數據包就直接發給機房網關。
lvs

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調度方法:
固定:
1、rr:輪詢,會將請求以此分給RS(解決會話保持問題)
2、wrr:加權輪詢。權重越大,請求越多。
3、wls:最小連接數權重
4、dd:根據目的地址調度 一般不用
5、sh:源地址調度 一般不用

搭建環境
lvs 192.168.56.21
web1 192.168.56.20
web2 192.168.56.100

搭建lvs(#改成星號,51cto不支持顯示星號)

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都需要腳本啓動和關閉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章