搭建 keepalived + lvs/DR 集羣html
使用Keepalived爲LVS調度器提供高可用功能,防止調度器單點故障,爲用戶提供Web服務:web
LVS1調度器真實IP地址爲192.168.4.50算法
LVS2調度器真實IP地址爲192.168.4.55vim
服務器VIP地址設置爲192.168.4.252bash
真實Web服務器地址分別爲192.168.4.5一、192.168.4.52服務器
實驗拓撲圖:網絡
實驗步驟:負載均衡
實驗準備:ide
配置yum源oop
# service iptables stop //關閉防火牆
# chkconfig iptables off //關閉開機自啓
# setenforce 0 //設置SELinux 爲寬鬆模式
配置WEB服務器 pc51 / pc52
#yum -y install httpd
#service httpd start
#chkconfig httpd on
[root@pc51 ~] #echo " 192.168.4.51 " > /var/www/html/test.html
[root@pc52 ~] #echo " 192.168.4.52 " > /var/www/html/test.html
本次實驗有些步驟就不詳細介紹了,具體有關 keepalived 和 ipvsadm 的相關配置 能夠參考
keepalived 配置高可用集羣 : http://www.javashuo.com/article/p-zxhaycft-dd.html
ipvsadm 配置LVS/DR 負載均衡集羣:http://www.javashuo.com/article/p-pwkygowu-w.html
1 在web服務上 配置 VIP地址 pc51 / pc52
# ifconfig lo:1 192.168.4.252/32 //只擁有ip 就能夠
# ifconfig lo:1
lo:1 Link encap:Local Loopback
inet addr:192.168.4.252 Mask:0.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
# cd /proc/sys/net/ipv4/conf/
# echo 1 > lo/arp_ignore
# echo 2 > lo/arp_announce
# echo 1 > all/arp_ignore
# echo 2 > all/arp_announce
2 配置分發器 50(主) 55(備) 分別安裝keepalived軟件 裝包 ipvsadm
# rpm -q ipvsadm keepalived
ipvsadm-1.26-4.el6.x86_64
keepalived-1.2.13-5.el6_6.x86_64
4 修改配置文件
[root@pc50 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { state MASTER // 描述信息 MASTER爲主服務器 interface eth0 // 定義網絡接口 virtual_router_id 51 //主 備VRID號必須一致 priority 150 //服務器優先級 advert_int 1 authentication { auth_type PASS //驗證方式 auth_pass 1111 //驗證密碼 主 備服務器密碼必須一致 } virtual_ipaddress { 192.168.4.252 //VIP地址 } } virtual_server 192.168.4.252 80 { //配置 VIP爲192.168.0.252 80 端口 delay_loop 6 lb_algo rr //設置LVS調度算法爲RR lb_kind DR //設置LVS的模式爲DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP connect_timeout 3 nb_get_retry 3 delay_before_retry 3 real_server 192.168.4.51 80 { weight 1 //設置權重爲1 } real_server 192.168.4.52 80 { weight 1 //設置權重爲1 } }
使用第一個虛擬服務的模版
其他的都刪除
主機55
[root@pc55 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { state BACKUP // 描述信息 BACKUP爲備用服務器 interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.4.252 } } virtual_server 192.168.4.252 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP connect_timeout 3 nb_get_retry 3 delay_before_retry 3 real_server 192.168.4.51 80 { weight 1 } real_server 192.168.4.52 80 { weight 1 } }
5 啓動服務
# service keepalived start
[root@pc50 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.252:80 rr persistent 50
-> 192.168.4.51:80 Route 1 0 0
-> 192.168.4.52:80 Route 1 0 0
[root@pc50 ~]# ip addr show | grep 192.168.4
inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.252/32 scope global eth0
[root@pc55 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 0 0 0 0 0
-> 192.168.4.51:80 0 0 0 0 0
-> 192.168.4.52:80 0 0 0 0 0
[root@pc55 ~]# ip addr show | grep 192.168.4
inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
6 客戶端訪問
# elinks --dump 192.168.4.252
192.168.4.52
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.51
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.52
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.51
[root@room1pc32 桌面]# elinks --dump 192.168.4.252
192.168.4.52
# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 5 25 0 2075 0
-> 192.168.4.51:80 2 10 0 830 0
-> 192.168.4.52:80 3 15 0 1245 0
[root@pc55 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 0 0 0 0 0
-> 192.168.4.51:80 0 0 0 0 0
-> 192.168.4.52:80 0 0 0 0 0
模擬50 故障 驗證Keepalived 高可用
[root@pc50 ~]# service keepalived stop
[root@pc50 ~]# ip addr show | grep 192.168.4
inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0
[root@pc55 ~]# ip addr show | grep 192.168.4
inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.252/32 scope global eth0
客戶端訪問
# elinks --dump 192.168.4.252
192.168.4.52
# elinks --dump 192.168.4.252
192.168.4.51
# elinks --dump 192.168.4.252
192.168.4.52
# elinks --dump 192.168.4.252
192.168.4.51
# elinks --dump 192.168.4.252
192.168.4.52
# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.4.252:80 5 25 0 2075 0
-> 192.168.4.51:80 2 10 0 830 0
-> 192.168.4.52:80 3 15 0 1245 0