1. 程式人生 > 實用技巧 >LVS-DR+keepalived(——實現WEB站負載均衡和高可用)

LVS-DR+keepalived(——實現WEB站負載均衡和高可用)

LVS-DR+keepalived(——實現WEB站負載均衡和高可用)

LVS-DR+Keepalived

——實現WEB站負載均衡和高可用


dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=KgJGAQAAA

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

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=MAFUAAAAA

yum install -y ipvsadm

#新增進服務項,設定開機啟動,啟動服務。

chkconfig --add ipvsadm

chkconfig ipvsadm on

service ipvsadm start

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=YwFMAAAAA

安裝keepalived-1.2.23:

tar -zxf keepalived-1.2.23.tar.gz #解壓檔案

cdkeepalived-1.2.23

./configure && make && make install #編譯安裝

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=8gGOAAAAA

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=.gHSAAAAA

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=AQK5AQAAA

編譯通過安裝中:

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=CgJnAQAAA

dAYBAAAAAAAA&ek=1&kp=1&pt=0&bo=YAKjAQAAA

接著執行:

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

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=IQKcAQAAA

編輯keepalived配置檔案:

vim/etc/keepalived/keepalived.conf

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=.QGRAAAAA

keepalived.conf:

!ConfigurationFileforkeepalived

global_defs{

notification_email{

[email protected]

[email protected]

[email protected]

}

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

}

}

}

dMcAAAAAAAAA&ek=1&kp=1&pt=0&bo=AgKTAAAAA

安裝成功,192.168.26.218安裝過程和方法相同,如果編譯安裝中缺少什麼元件,根據提示安裝元件再進行編輯安裝即可,這裡省略。

安裝完成後同樣啟動Keepalived服務。

附備接點keepalived配置檔案:

!ConfigurationFileforkeepalived

global_defs{

notification_email{

[email protected]

[email protected]

[email protected]

}

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

}

}

}

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=9gF*AAAAA

測試VIP網路狀態:

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=MgLdAAAAA

開啟瀏覽器測試訪問效果:

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=MgLDAAAAA

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=nwH0AAAAA

dMgAAAAAAAAA&ek=1&kp=1&pt=0&bo=KQK*AAAAA

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=HAInAQAAA

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=KAIKAQAAA

關閉主接點的Keepalived服務:模擬伺服器down機情況進行觀察。

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=GwLhAAAAA

網路出現了一點波動:

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=fAH4AAAAA

VIP已經轉移到備用接點上:

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=awJZAQAAA

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=awIGAQAAA

訪問正常:

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=gwHMAAAAA

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=igEcAQAAA

恢復主接點:

dMYAAAAAAAAA&ek=1&kp=1&pt=0&bo=8AGWAAAAA

檢視VIP:

dAUBAAAAAAAA&ek=1&kp=1&pt=0&bo=QALxAAAAA

可以看出恢復主接點,VIP沒有自動轉移回主接點上,這和我們設定引數有關。

dMcAAAAAAAAA&ek=1&kp=1&pt=0&bo=MAIYAQAAA

關閉備接點的Keepalived服務:模擬伺服器down機情況進行觀察,同樣網路出現小小波動後恢復

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=EQKIAAAAA

dGcBAAAAAAAA&ek=1&kp=1&pt=0&bo=SwI7AQAAA

VIP又轉移回主接點上了。

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=dgKiAQAAA

網站訪問正常:

dGYBAAAAAAAA&ek=1&kp=1&pt=0&bo=0AHlAAAAA

dMYAAAAAAAAA&ek=1&kp=1&pt=0&bo=ewH6AAAAA

轉載於:https://blog.51cto.com/jdonghong/1883359