lvs集群
前言:
工作模式:NAT(網絡地址轉換),DR(直連路由模式),TUN(隧道)
LVS調度算法:輪詢(RR),加權輪詢(WRR),最少連接(LC)
加權最少連接(WLC),基於局部性的最少連接(LBLC),
帶復制的基於局部性最少鏈接(LBLCR),目標地址散列(Dh)
源地址散列(sh),最短的期望的延遲(SED),最少隊列調度(NQ)
一、LVS/NAT模式
NAT:地址轉換(類似於DNAT)
集群點跟director必須工作在同一個IP的網絡中
RIP通常是私有地址,僅用於各集群節點間的的通信
director位於client和real server之間,並負責處理進出的所有通道。
realserver必須將網關執行DIP
director支持端口映射
realserver可以使用任何類型的操作系統(os)
較大規模應用場景中,director易成為系統瓶頸
1、準備四臺服務器,我這裏用rhel7.2,IP地址規劃如下:
客戶端:192.168.2.44,分發器為:2.45和4.45
網站服務器為:4.46和4.47
2、配置分發器:192.168.4.45,vim /etc/sysctl.conf //路由轉發
net.ipv4.ip_forward = 1
執行sysctl -p馬上生效
3、配置網關地址:在兩臺服務器上修改網關地址
GATEWAY=192.168.4.45
4、客戶端配置網關(192.168.2.44):2.45
5、在兩臺網站服務器上安裝web服務,設置開機啟動
在分發器上配置:192.168.4.45
6、安裝軟件:yum -y install ipvsadm
7、配置LVS
ipvsadm -Ln //查看 n代表數字代表服務
ipvsadm -A -t 192.168.2.45:80 -s rr //添加虛擬服務,
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.46:80 -m //添加真實IP,-m nat模式
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.47:80 -m
8、在客戶端測試:2.44:elinks --dump http://192.168.2.45
9、watch -n 1 ipvsadm -Ln --stats,在分發器上查看狀態
10、從虛擬服務裏刪除real server: ipvsadm -d -t 192.168.2.45:80 -r 192.168.4.46:80
11、修改調度算法:ipvsadm -E -t 192.168.2.45:80 -s wrr
12、修改權重:ipvsadm -e -t 192.168.2.45:80 -r 192.168.4.46:80 -w 3 -m
PS:由於在RHEL7裏面save命令用不了,所以用下面大方法代替:
ipvsadm -C
ipvsadm -A -t 192.168.2.45:80 -s rr
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.46:80 -m
ipvsadm -a -t 192.168.2.45:80 -r 192.168.4.47:80 -m
把上面的語句寫進 /etc/rc.local,然後執行下面的語句
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
//讓/etc/rc.local裏面的內容生效,並開機自啟動
LVS-DR介紹:直接路由(及用於作為源地址)
各集群節點跟director必須在同一個物理網絡中;
RIP可以使用公網地址,實現便攜的遠程管理和監控;
director僅負責處理入站請求,形影報文則有realserver直接發往客戶端
realserver不能將網關指向DIP,而是直接指向前端網關;
director不支持端口映射
大多數操作系統能夠用在realserver
director能夠處理更多的realserver
一、網站服務器配置:4.46和4.47
1、修改網絡接口運行參數:cd /proc/sys/net/ipv4/conf/
echo 1 > lo/arp_ignore //忽略廣播包
echo 2 > lo/arp_announce //兄弟接口接收和發送arp包
echo 1 > all/arp_ignore
echo 2 > all/arp_announce
2、綁定VIP地址:4.253 vim /etc/rc.local
ifconfig lo:1 192.168.4.253/32
二、配置分發器4.48
1、綁定VIP地址:4.253 vim /etc/rc.local
ifconfig eth0:1 192.168.4.253/32
2、添加虛擬服務,和realserver
ipvsadm -A -t 192.168.4.253:80 -s rr
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.46:80 -g
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.47:80 -g
3、測試:watch -n 1 ipvsadm -Ln --stats,在分發器上查看狀態
可以看到只有進來的數據,沒有出去的數據
PS:
1、想永久生效,可以寫到配置文件中
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p 讀一下,使其生效
2、分發器的配置設置:
ipvsadm -C
ipvsadm -A -t 192.168.4.253:80 -s rr
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.46:80 -g
ipvsadm -a -t 192.168.4.253:80 -r 192.168.4.47:80 -g
把上面的語句寫進 /etc/rc.local,然後執行下面的語句
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
//讓/etc/rc.local裏面的內容生效,並開機自啟動
lvs集群