LVS+Keepalived構(gòu)建高可用負(fù)載均衡(測試篇)
更新時(shí)間:2013年06月13日 17:45:01 作者:
這篇文章主要介紹了LVS+Keepalived構(gòu)建高可用負(fù)載均衡的測試方法,需要的朋友可以參考下
一、 啟動(dòng)LVS高可用集群服務(wù)
首先,啟動(dòng)每個(gè)real server節(jié)點(diǎn)的服務(wù):
[root@localhost ~]# /etc/init.d/lvsrs start
start LVS of REALServer
然后,分別在主備Director Server啟動(dòng)Keepalived服務(wù):
[root@DR1 ~]#/etc/init.d/Keepalived start
[root@DR1 ~]#/ ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP bogon:http rr
-> real-server1:http Route 1 1 0
-> real-server2:http Route 1 1 0
此時(shí)查看Keepalived服務(wù)的系統(tǒng)日志信息如下:
[root@localhost ~]# tail -f /var/log/messages
Feb 28 10:01:56 localhost Keepalived: Starting Keepalived v1.1.19 (02/27,2011)
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.25 added
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'.
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Configuration is using : 12063 Bytes
Feb 28 10:01:56 localhost Keepalived: Starting Healthcheck child process, pid=4623
Feb 28 10:01:56 localhost Keepalived_vrrp: Netlink reflector reports IP 192.168.12.25 added
Feb 28 10:01:56 localhost Keepalived: Starting VRRP child process, pid=4624
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Activating healtchecker for service [192.168.12.246:80]
Feb 28 10:01:56 localhost Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'.
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Activating healtchecker for service [192.168.12.237:80]
Feb 28 10:01:57 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Feb 28 10:01:58 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Feb 28 10:01:58 localhost Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Feb 28 10:01:58 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:01:58 localhost avahi-daemon[2778]: Registering new address record for 192.168.12.135 on eth0.
二、 高可用性功能測試
高可用性是通過LVS的兩個(gè)Director Server完成的,為了模擬故障,我們先將主Director Server上面的Keepalived服務(wù)停止,然后觀察備用Director Server上Keepalived的運(yùn)行日志,信息如下:
Feb 28 10:08:52 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.12.135
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:08:54 lvs-backup Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:08:54 lvs-backup avahi-daemon[3349]: Registering new address record for 192.168.12.135 on eth0.
Feb 28 10:08:59 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.12.135
從日志中可以看出,主機(jī)出現(xiàn)故障后,備機(jī)立刻檢測到,此時(shí)備機(jī)變?yōu)镸ASTER角色,并且接管了主機(jī)的虛擬IP資源,最后將虛擬IP綁定在eth0設(shè)備上。
接著,重新啟動(dòng)主Director Server上的Keepalived服務(wù),繼續(xù)觀察備用Director Server的日志狀態(tài):
備用Director Server的日志狀態(tài):
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs.
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: Netlink reflector reports IP 192.168.12.135 removed
Feb 28 10:12:11 lvs-backup Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 removed
Feb 28 10:12:11 lvs-backup avahi-daemon[3349]: Withdrawing address record for 192.168.12.135 on eth0.
從日志可知,備機(jī)在檢測到主機(jī)重新恢復(fù)正常后,重新返回BACKUP角色,并且釋放了虛擬IP資源。
三、 負(fù)載均衡測試
這里假定兩個(gè)real server節(jié)點(diǎn)配置www服務(wù)的網(wǎng)頁文件根目錄均為/webdata/www目錄,然后分別執(zhí)行如下操作:
在real server1 執(zhí)行:
echo "This is real server1" /webdata/www/index.html
在real server2 執(zhí)行:
echo "This is real server2" /webdata/www/index.html
接著打開瀏覽器,訪問http://192.168.12.135這個(gè)地址,然后不斷刷新此頁面,如果能分別看到“This is real server1”和“This is real server2”就表明LVS已經(jīng)在進(jìn)行負(fù)載均衡了。
四、 故障切換測試
故障切換是測試當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)故障后,Keepalived監(jiān)控模塊是否能及時(shí)發(fā)現(xiàn),然后屏蔽故障節(jié)點(diǎn),同時(shí)將服務(wù)轉(zhuǎn)移到正常節(jié)點(diǎn)來執(zhí)行。
這里我們將real server 1節(jié)點(diǎn)服務(wù)停掉,假定這個(gè)節(jié)點(diǎn)出現(xiàn)故障,然后查看主、備機(jī)日志信息,相關(guān)日志如下:
Feb 28 10:14:12 localhost Keepalived_healthcheckers: TCP connection to [192.168.12.246:80] failed !!!
Feb 28 10:14:12 localhost Keepalived_healthcheckers: Removing service [192.168.12.246:80] from VS [192.168.12.135:80]
Feb 28 10:14:12 localhost Keepalived_healthcheckers: Remote SMTP server [192.168.12.1:25] connected.
Feb 28 10:14:12 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
通過日志可以看出,Keepalived監(jiān)控模塊檢測到192.168.12.246這臺(tái)主機(jī)出現(xiàn)故障后,將此節(jié)點(diǎn)從集群系統(tǒng)中剔除掉了。
此時(shí)訪問http://192.168.12.135這個(gè)地址,應(yīng)該只能看到“This is real server2”了,這是因?yàn)楣?jié)點(diǎn)1出現(xiàn)故障,而Keepalived監(jiān)控模塊將節(jié)點(diǎn)1從集群系統(tǒng)中剔除了。
下面重新啟動(dòng)real server 1節(jié)點(diǎn)的服務(wù),可以看到Keepalived日志信息如下:
Feb 28 10:15:48 localhost Keepalived_healthcheckers: TCP connection to [192.168.12.246:80] success.
Feb 28 10:15:48 localhost Keepalived_healthcheckers: Adding service [192.168.12.246:80] to VS [192.168.12.135:80]
Feb 28 10:15:48 localhost Keepalived_healthcheckers: Remote SMTP server [192.168.12.1:25] connected.
Feb 28 10:15:48 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
從日志可知,Keepalived監(jiān)控模塊檢測到192.168.12.246這臺(tái)主機(jī)恢復(fù)正常后,又將此節(jié)點(diǎn)加入了集群系統(tǒng)中。
此時(shí)再次訪問http://192.168.12.135這個(gè)地址,然后不斷刷新此頁面,應(yīng)該又能分別看到“This is real server1”和“This is real server2”頁面了,這說明在real server 1節(jié)點(diǎn)恢復(fù)正常后,Keepalived監(jiān)控模塊將此節(jié)點(diǎn)加入了集群系統(tǒng)中。
本文出自 “技術(shù)成就夢想” 博客
首先,啟動(dòng)每個(gè)real server節(jié)點(diǎn)的服務(wù):
[root@localhost ~]# /etc/init.d/lvsrs start
start LVS of REALServer
然后,分別在主備Director Server啟動(dòng)Keepalived服務(wù):
[root@DR1 ~]#/etc/init.d/Keepalived start
[root@DR1 ~]#/ ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP bogon:http rr
-> real-server1:http Route 1 1 0
-> real-server2:http Route 1 1 0
此時(shí)查看Keepalived服務(wù)的系統(tǒng)日志信息如下:
[root@localhost ~]# tail -f /var/log/messages
Feb 28 10:01:56 localhost Keepalived: Starting Keepalived v1.1.19 (02/27,2011)
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.25 added
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Opening file '/etc/keepalived/keepalived.conf'.
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Configuration is using : 12063 Bytes
Feb 28 10:01:56 localhost Keepalived: Starting Healthcheck child process, pid=4623
Feb 28 10:01:56 localhost Keepalived_vrrp: Netlink reflector reports IP 192.168.12.25 added
Feb 28 10:01:56 localhost Keepalived: Starting VRRP child process, pid=4624
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Activating healtchecker for service [192.168.12.246:80]
Feb 28 10:01:56 localhost Keepalived_vrrp: Opening file '/etc/keepalived/keepalived.conf'.
Feb 28 10:01:56 localhost Keepalived_healthcheckers: Activating healtchecker for service [192.168.12.237:80]
Feb 28 10:01:57 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Feb 28 10:01:58 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Feb 28 10:01:58 localhost Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Feb 28 10:01:58 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:01:58 localhost avahi-daemon[2778]: Registering new address record for 192.168.12.135 on eth0.
二、 高可用性功能測試
高可用性是通過LVS的兩個(gè)Director Server完成的,為了模擬故障,我們先將主Director Server上面的Keepalived服務(wù)停止,然后觀察備用Director Server上Keepalived的運(yùn)行日志,信息如下:
Feb 28 10:08:52 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.12.135
Feb 28 10:08:54 lvs-backup Keepalived_vrrp: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:08:54 lvs-backup Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 added
Feb 28 10:08:54 lvs-backup avahi-daemon[3349]: Registering new address record for 192.168.12.135 on eth0.
Feb 28 10:08:59 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.12.135
從日志中可以看出,主機(jī)出現(xiàn)故障后,備機(jī)立刻檢測到,此時(shí)備機(jī)變?yōu)镸ASTER角色,并且接管了主機(jī)的虛擬IP資源,最后將虛擬IP綁定在eth0設(shè)備上。
接著,重新啟動(dòng)主Director Server上的Keepalived服務(wù),繼續(xù)觀察備用Director Server的日志狀態(tài):
備用Director Server的日志狀態(tài):
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs.
Feb 28 10:12:11 lvs-backup Keepalived_vrrp: Netlink reflector reports IP 192.168.12.135 removed
Feb 28 10:12:11 lvs-backup Keepalived_healthcheckers: Netlink reflector reports IP 192.168.12.135 removed
Feb 28 10:12:11 lvs-backup avahi-daemon[3349]: Withdrawing address record for 192.168.12.135 on eth0.
從日志可知,備機(jī)在檢測到主機(jī)重新恢復(fù)正常后,重新返回BACKUP角色,并且釋放了虛擬IP資源。
三、 負(fù)載均衡測試
這里假定兩個(gè)real server節(jié)點(diǎn)配置www服務(wù)的網(wǎng)頁文件根目錄均為/webdata/www目錄,然后分別執(zhí)行如下操作:
在real server1 執(zhí)行:
echo "This is real server1" /webdata/www/index.html
在real server2 執(zhí)行:
echo "This is real server2" /webdata/www/index.html
接著打開瀏覽器,訪問http://192.168.12.135這個(gè)地址,然后不斷刷新此頁面,如果能分別看到“This is real server1”和“This is real server2”就表明LVS已經(jīng)在進(jìn)行負(fù)載均衡了。
四、 故障切換測試
故障切換是測試當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)故障后,Keepalived監(jiān)控模塊是否能及時(shí)發(fā)現(xiàn),然后屏蔽故障節(jié)點(diǎn),同時(shí)將服務(wù)轉(zhuǎn)移到正常節(jié)點(diǎn)來執(zhí)行。
這里我們將real server 1節(jié)點(diǎn)服務(wù)停掉,假定這個(gè)節(jié)點(diǎn)出現(xiàn)故障,然后查看主、備機(jī)日志信息,相關(guān)日志如下:
Feb 28 10:14:12 localhost Keepalived_healthcheckers: TCP connection to [192.168.12.246:80] failed !!!
Feb 28 10:14:12 localhost Keepalived_healthcheckers: Removing service [192.168.12.246:80] from VS [192.168.12.135:80]
Feb 28 10:14:12 localhost Keepalived_healthcheckers: Remote SMTP server [192.168.12.1:25] connected.
Feb 28 10:14:12 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
通過日志可以看出,Keepalived監(jiān)控模塊檢測到192.168.12.246這臺(tái)主機(jī)出現(xiàn)故障后,將此節(jié)點(diǎn)從集群系統(tǒng)中剔除掉了。
此時(shí)訪問http://192.168.12.135這個(gè)地址,應(yīng)該只能看到“This is real server2”了,這是因?yàn)楣?jié)點(diǎn)1出現(xiàn)故障,而Keepalived監(jiān)控模塊將節(jié)點(diǎn)1從集群系統(tǒng)中剔除了。
下面重新啟動(dòng)real server 1節(jié)點(diǎn)的服務(wù),可以看到Keepalived日志信息如下:
Feb 28 10:15:48 localhost Keepalived_healthcheckers: TCP connection to [192.168.12.246:80] success.
Feb 28 10:15:48 localhost Keepalived_healthcheckers: Adding service [192.168.12.246:80] to VS [192.168.12.135:80]
Feb 28 10:15:48 localhost Keepalived_healthcheckers: Remote SMTP server [192.168.12.1:25] connected.
Feb 28 10:15:48 localhost Keepalived_healthcheckers: SMTP alert successfully sent.
從日志可知,Keepalived監(jiān)控模塊檢測到192.168.12.246這臺(tái)主機(jī)恢復(fù)正常后,又將此節(jié)點(diǎn)加入了集群系統(tǒng)中。
此時(shí)再次訪問http://192.168.12.135這個(gè)地址,然后不斷刷新此頁面,應(yīng)該又能分別看到“This is real server1”和“This is real server2”頁面了,這說明在real server 1節(jié)點(diǎn)恢復(fù)正常后,Keepalived監(jiān)控模塊將此節(jié)點(diǎn)加入了集群系統(tǒng)中。
本文出自 “技術(shù)成就夢想” 博客
您可能感興趣的文章:
- linux服務(wù)器之LVS、Nginx和HAProxy負(fù)載均衡器對比總結(jié)
- LVS+Keepalived構(gòu)建高可用負(fù)載均衡配置方法(配置篇)
- LVS(Linux Virtual Server)Linux 虛擬服務(wù)器介紹及配置(負(fù)載均衡系統(tǒng))
- Linux 系統(tǒng) nginx 服務(wù)器安裝及負(fù)載均衡配置詳解
- linux下nginx負(fù)載均衡搭建的方法步驟
- linux負(fù)載均衡總結(jié)性說明 四層負(fù)載和七層負(fù)載有什么區(qū)別
- linux下Nginx+Tomcat負(fù)載均衡配置方法
- Red Hat Linux,Apache2.0+Weblogic9.2負(fù)載均衡集群安裝配置
- 使用nginx來負(fù)載均衡 本文在window與linux下配置nginx實(shí)現(xiàn)負(fù)載
- 深入理解Linux負(fù)載均衡LVS
相關(guān)文章
expect命令在linux下實(shí)現(xiàn)批量ssh免密
本次文章主要給大家講解了在linux系統(tǒng)下用expect命令實(shí)現(xiàn)批量ssh免密的實(shí)現(xiàn)方法,以及實(shí)際代碼分享。2017-11-11Linux 進(jìn)程通信之FIFO的實(shí)現(xiàn)
這篇文章主要介紹了Linux 進(jìn)程通信之FIFO的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Linux查看和關(guān)閉后臺(tái)運(yùn)行程序的方法
這篇文章主要介紹了Linux查看和關(guān)閉后臺(tái)運(yùn)行程序的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09菜鳥學(xué)Linux命令:ssh命令(遠(yuǎn)程登錄)
本篇文章主要介紹了菜鳥學(xué)Linux命令:ssh命令 遠(yuǎn)程登錄 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06linux普通用戶su root切換提示沒有文件或目錄的解決方法
這篇文章主要介紹了linux普通用戶su root切換提示沒有文件或目錄的解決方法,需要的朋友可以參考下2017-07-07關(guān)于將Web項(xiàng)目部署到阿里云服務(wù)器(5個(gè)步驟搞定)
這篇文章主要介紹了關(guān)于將Web項(xiàng)目部署到阿里云服務(wù)器(5個(gè)步驟搞定),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Apache中使非偽靜態(tài)url跳轉(zhuǎn)到偽靜態(tài)url的方法
這篇文章主要介紹了Apache中使非偽靜態(tài)url跳轉(zhuǎn)到偽靜態(tài)url的方法,主要是在使用.htaccess時(shí)的問題,需要的朋友可以參考下2015-07-07