LVS-DR+keepalived(——實現WEB站負載均衡和高可用)
LVS-DR+keepalived(——實現WEB站負載均衡和高可用)
LVS-DR+Keepalived
——實現WEB站負載均衡和高可用
OS | IP | 子網掩碼 | 路由閘道器 |
Centos6.5 (Directory) (Lvs+keepalived主) | Eth0:192.168.25.209(DIP) | 255.255.252.0 | |
Eth0:0:192.168.26.210(VIP) | 255.255.255.255 | Eth0:0 | |
Centos6.6 (Directory) (Lvs+keepalived備) | Eth0:192.168.26.218 | 255.255.252.0 | 192.168.25.3 |
OS | RS | 子網掩碼 | 路由閘道器 |
Centos6.6 (RS1) | Eth0:192.168.25.210(RIP) | 255.255.252.0 | 192.168.25.3 |
Lo:0:192.168.26.210(VIP) | 255.255.255.255 | Lo:0 | |
Centos6.6 (RS2) | Eth0:192.168.25.211(RIP) | 255.255.252.0 | 192.168.25.3 |
Lo:0:192.168.26.210(VIP) | 255.255.255.255 | Lo:0 | |
Centos6.6 (RS3) | Eth0:192.168.25.212(RIP) | 255.255.252.0 | 192.168.25.3 |
Lo:0:192.168.26.210(VIP) | 255.255.255.255 | Lo:0 | |
Win7 | IP:192.168.25.159(CIP) | 255.255.252.0 | 192.168.25.3 |
配置項引數表:
配置LVS-DR伺服器指令碼:此處無需使用,因為我已經手動配置主備DR的IP地址(主:192.168.25.209與備:192.168.26.218),若單獨只做LSV-DR則直接執行以下指令碼即可。
vim /LVS-DR-master.sh
ifconfig eth0 192.168.25.209/22 up
ifconfig eth0:0 192.168.26.210 netmask 255.255.255.255 broadcast 192.168.26.210 up
route add -host 192.168.26.210 dev eth0:0
vim /LVS-DR-slave.sh
ifconfig eth0 192.168.26.218/22 up
ifconfig eth0:0 192.168.26.210 netmask 255.255.255.255 broadcast 192.168.26.210 up
route add -host 192.168.26.210 dev eth0:0
配置RS伺服器:
RS1: vim LVS-DR-RS1.sh
ifconfig eth0 192.168.25.210/22 up
route add default gw 192.168.25.3 #指定自己閘道器
#配置系統核心引數:
echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo1>/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo2>/proc/sys/net/ipv4/conf/all/arp_announce
echo2>/proc/sys/net/ipv4/conf/eth0/arp_announce
ifconfig lo:0 192.168.26.210 netmask 255.255.255.255 broadcast 192.168.26.210 up
route add -host 192.168.26.210 dev lo:0
RS2: vim LVS-DR-RS2.sh
ifconfig eth0 192.168.25.211/22 up
route add default gw 192.168.25.3
echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo1>/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo2>/proc/sys/net/ipv4/conf/all/arp_announce
echo2>/proc/sys/net/ipv4/conf/eth0/arp_announce
ifconfig lo:0 192.168.26.210 netmask 255.255.255.255 broadcast 192.168.26.210 up
route add -host 192.168.26.210 dev lo:0
RS3:vimLVS-DR-RS3.sh
ifconfig eth0 192.168.25.212/22 up
route add default gw 192.168.25.3
echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo1>/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo2>/proc/sys/net/ipv4/conf/all/arp_announce
echo2>/proc/sys/net/ipv4/conf/eth0/arp_announce
ifconfig lo:0 192.168.26.210 netmask 255.255.255.255 broadcast 192.168.26.210 up
route add -host 192.168.26.210 dev lo:0
配置Directory:(安裝LVS和keepalived主+備)
安裝LVS:
yum install -y ipvsadm
#新增進服務項,設定開機啟動,啟動服務。
chkconfig --add ipvsadm
chkconfig ipvsadm on
service ipvsadm start
yum install -y ipvsadm
#新增進服務項,設定開機啟動,啟動服務。
chkconfig --add ipvsadm
chkconfig ipvsadm on
service ipvsadm start
安裝keepalived-1.2.23:
tar -zxf keepalived-1.2.23.tar.gz #解壓檔案
cdkeepalived-1.2.23
./configure && make && make install #編譯安裝
編譯通過安裝中:
接著執行:
cp/usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ #啟動指令碼
cp/usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir/etc/keepalived #建立配置檔案存放路徑
cp/usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ #複製配置檔案
cp/usr/local/sbin/keepalived /usr/sbin/
chkconfig --add keepalived
chkconfig keepalived on
service keepalived start
編輯keepalived配置檔案:
vim/etc/keepalived/keepalived.conf
keepalived.conf:
!ConfigurationFileforkeepalived
global_defs{
notification_email{
}
notification_email_from[email protected]
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval0
vrrp_gna_interval0
}
vrrp_instanceVI_1{
stateMASTER
interfaceeth0
virtual_router_id51
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.26.210
}
}
virtual_server192.168.26.21080{
delay_loop6
lb_algowrr
lb_kindDR
persistence_timeout60
protocolTCP
real_server192.168.25.21080{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.25.21180{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.25.21280{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
安裝成功,192.168.26.218安裝過程和方法相同,如果編譯安裝中缺少什麼元件,根據提示安裝元件再進行編輯安裝即可,這裡省略。
安裝完成後同樣啟動Keepalived服務。
附備接點keepalived配置檔案:
!ConfigurationFileforkeepalived
global_defs{
notification_email{
}
notification_email_from[email protected]
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval0
vrrp_gna_interval0
}
vrrp_instanceVI_1{
state BACKUP
interfaceeth0
virtual_router_id51
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.26.210
}
}
virtual_server192.168.26.21080{
delay_loop6
lb_algowrr
lb_kindDR
persistence_timeout60
protocolTCP
real_server192.168.25.21080{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.25.21180{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.25.21280{
weight3
TCP_CHECK{
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
測試VIP網路狀態:
開啟瀏覽器測試訪問效果:
關閉主接點的Keepalived服務:模擬伺服器down機情況進行觀察。
網路出現了一點波動:
VIP已經轉移到備用接點上:
訪問正常:
恢復主接點:
檢視VIP:
可以看出恢復主接點,VIP沒有自動轉移回主接點上,這和我們設定引數有關。
關閉備接點的Keepalived服務:模擬伺服器down機情況進行觀察,同樣網路出現小小波動後恢復
VIP又轉移回主接點上了。
網站訪問正常:
轉載於:https://blog.51cto.com/jdonghong/1883359