LVS+Keepalived實現高可用
阿新 • • 發佈:2018-04-30
LVS;KeepaliveLVS可以實現負載均衡,但是不能夠進行健康檢查,比如一個rs出現故障,LVS 仍然會把請求轉發給故障的rs服務器,這樣就會導致請求的無效性。keepalive 軟件可以進行健康檢查,而且能同時實現 LVS 的高可用性,解決 LVS 單點故障的問題,其實 keepalive 就是為 LVS 而生的。
LVS-DR+Keepalived
一、實驗環境:
Keepalived1 + lvs1(Director1):192.168.0.48 Keepalived2 + lvs2(Director2):192.168.0.58 Real server1:192.168.0.18 Real server2:192.168.0.28 VIP: 192.168.0.38
二、安裝系統軟件
LB+LVS+Keepalived的兩個節點
yum install ipvsadm keepalived -y
RS+Nginx的兩個節點
yum install epel-release -y
yum install nginx -y
chkconfig nginx on
service nginx start
三、設置配置腳本
兩個RS節點 # vim /usr/local/sbin/lvs_dr_rs.sh #! /bin/bash vip=192.168.0.38 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 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 2節點rs 上分別執行腳本: bash /usr/local/sbin/lvs_dr_rs.sh 兩個keepalived節點: Master節點: vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.38 } } virtual_server 192.168.0.38 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP real_server 192.168.0.18 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.0.28 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } } backup節點: vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.38 } } virtual_server 192.168.0.38 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP real_server 192.168.0.18 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.0.28 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } } keepalived的2個節點執行如下命令,開啟轉發功能: # echo 1 > /proc/sys/net/ipv4/ip_forward 先主後從分別啟動keepalive service keepalived start
三、驗證結果
1、訪問VIP,輪詢到兩個後端web服務器。
2、LVS主節點掛了,不影響服務的正常運行。
LVS+Keepalived實現高可用