IPvs的高可用性+LVS的DR模式+ldirectord

ldirectord簡介:爲了從主Director將LVS負載均衡資源故障轉移到備用Director,並從集羣中自動移除節點,我們需要使用ldirectord程序,這個程序在啓動時動建立IPVS表,然後監視集羣節點的健康情況,在發現失效節點時將其自動從IPVS表中移除。

ldirectord監視集羣(真實服務器):ldirectord守護進程通過向每臺真實服務器真實IP(RIP)上的集羣資源發送訪問請求來實現對真實服務器的監控,這對所有類型的LVS集羣都是成立的:LVS-DR,LVS-NAT和LVS-TUN。正常情況下,爲每個Director上的VIP地址運行一個ldirectord守護進程,當真實服務器不響應運行在Director上的ldirectord守護進程時,ldirectord守護進程運行適當的ipvsadm命令將VIP地址從IPVS表中移除。(以後,當真實服務器回到在線狀時,ldirectord使用適當的ipvsadm命令將真實服務器重新添加到IPVS表中)

案例:在前端架設兩臺director主機,互爲備份,實現ipvs羣集的高可用性。後端架設兩臺web服務器實現負載均衡LB,在realserver上使用DR模式

ip地址規劃:

VIP:192.168.145.101

director1:eth0:192.168.145.99

               eth1:192.168.10.1 (心跳線)

director2:eth0:192.168.145.100

               eth1:192.168.10.2(心跳線)

realserver1:eth0:192.168.145.200

realserver2:eth0:192.168.145.201

拓撲方案:

配置director1部分:

一:修改director1的主機名:

[root@node1 ~]# vim /etc/sysconfig/network

p_w_picpath 

二:給director1配置靜態ip地址

p_w_picpath

p_w_picpath 

三:編譯本地yum:

[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

p_w_picpath

四:安裝相關關鍵包:

[root@node1 ~]# mkdir /mnt/cdrom

[root@node1 ~]# mount /dev/cdrom /mnt/cdrom/       #掛載光盤,在使用

yum localinstall中需要用到光盤上的軟件包

[root@node1 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-

10.el5.i386.rpm  libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm  --nogpgcheck   #使用localinstall可以安裝外部軟件包以及調用系統光盤軟件包,—nogpgcheck取消簽名測

五:安裝ipvs的管理工具ipvsadm:

[root@node1 ~]# yum install ipvsadm -y

[root@node1 ~]# ipvsadm -A -t 192.168.145.101:80 -s rr #定義羣集,rr表示

採用輪詢調度,監聽httpd服務的80端口

[root@node1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 –g

#當監聽到有訪問80端口的,轉換到真實的ip地址上,-g表示DR模型

[root@node1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 –g

#當監聽到有訪問80端口的,轉換到真實的ip地址上,-g表示DR模型

[root@node1 ~]# service ipvsadm save #保存配置的規則

[root@node1 ~]# service ipvsadm stop #將ipvsadm停止

六:編輯配置心跳參數,羣集資源等文件

[root@node1 ~]# cd /usr/share/doc/heartbeat-2.1.4/     

[root@node1 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/#將ha.cf調整心跳探測參數

[root@node1 heartbeat-2.1.4]# cp haresources /etc/ha.d/      #haresources

文件定義羣集資源的資源管理器

[root@node1 heartbeat-2.1.4]# cp authkeys /etc/ha.d/       #authkeys實現

心跳線雙方的身份驗證

[root@node1 heartbeat-2.1.4]# cp /etc/init.d/ipvsadm /etc/ha.d/resource.d/    #將ipvsadm的控制腳本拷貝到resource.d目錄下

[root@node1 heartbeat-2.1.4]# cd /etc/ha.d/

[root@node1 ha.d]# vim ha.cf        #編輯定義心跳探測參數的文件

p_w_picpath

p_w_picpath

[root@node1 ha.d]# dd if=/dev/random bs=512 count=1 |openssl md5      #利用隨機文件random產生一段字符,一塊512字節,數量是1,通過md5加密後輸出

p_w_picpath

[root@node1 ha.d]# vim authkeys        #編輯心跳雙方的身份驗證文件

p_w_picpath

p_w_picpath

[root@node1 ha.d]# chmod 600 authkeys        #根據文件內提示將authkeys的

權限改爲600

[root@node1 ha.d]# vim haresources       #定義羣集的搶奪資源

p_w_picpath

[root@node1 ha.d]# service heartbeat start      #啓動heartbeat服務

[root@node1 ha.d]# chkconfig heartbeat on      #將該服務設置爲開機自動啓動

[root@node1 ha.d]# ifconfig      #使用該命令查看ip地址情況

p_w_picpath

配置director2部分:

一:修改director2的主機名:

[root@node2 ~]# vim /etc/sysconfig/network

p_w_picpath

二:給director2配置靜態ip地址:

p_w_picpath

p_w_picpath

三:編輯本地yum:

[root@node2 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

p_w_picpath

四:安裝相關軟件包:

[root@node2 ~]# mkdir /mnt/cdrom

[root@node2 ~]# mount /dev/cdrom /mnt/cdrom/     #掛載光盤,在下一步中需要使用自帶的光盤軟件,解決依賴性問題

[root@node2 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm

libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm -y –nogpgcheck       #使用localinstall可以安裝外部軟件包以及調用系統光盤軟件

包,—nogpgcheck取消簽名檢測

五:安裝ipvs的管理工具ipvsadm:

[root@node2 ~]# yum install ipvsadm -y

[root@node2 ~]# ipvsadm -A -t 192.168.145.101:80 -s rr #定義羣集,rr表示採用輪詢調度,監聽httpd服務的80端口

[root@node2 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 –g #當監聽到有訪問80端口的,轉換到真實的ip地址上,-g表示DR模型

[root@node2 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 –g #當監聽到有訪問80端口的,轉換到真實的ip地址上,-g表示DR模型

[root@node2 ~]# service ipvsadm save #保存配置的規則

[root@node2 ~]# service ipvsadm stop #將ipvsadm停止

六:編輯配置心跳參數,羣集資源等文件

[root@node2 ~]# cd /usr/share/doc/heartbeat-2.1.4/

[root@node2 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/       #將ha.cf調整心跳探測參數

[root@node2 heartbeat-2.1.4]# cp haresources /etc/ha.d/       #haresources文件定義羣集資源的資源管理器

[root@node2 heartbeat-2.1.4]# cp authkeys /etc/ha.d/         #authkeys實現心跳線雙方的身份驗證

[root@node2 heartbeat-2.1.4]# cp  /etc/init.d/ipvsadm   /etc/ha.d/resource.d/     #將ipvsadm的控制腳本拷貝到resource.d目錄下

[root@node2 heartbeat-2.1.4]# cd  /etc/ha.d/

[root@node2 ha.d]# vim ha.cf       #編輯心跳探測的配置文件

p_w_picpath

p_w_picpath

[root@node2 ha.d]# vim authkeys        #心跳雙方的身份驗證文件

p_w_picpath

p_w_picpath

[root@node2 ha.d]# chmod 600 authkeys #根據文件內提示將authkeys的權限改爲600

[root@node2 ha.d]# vim haresources       #定義羣集的搶奪資源

p_w_picpath

[root@node2 ha.d]# service heartbeat start

[root@node2 ha.d]# chkconfig heartbeat on       #將該服務設置爲開機自動啓動

[root@node2 ha.d]# ifconfig       #使用該命令並沒有查看到搶佔的VIP

配置realserver 1:

一:配置內核參數:

p_w_picpath

[root@lyt ~]# echo "net.ipv4.conf.eth0.arp_announce = 2">>/etc/sysctl.conf

[root@lyt ~]# echo "net.ipv4.conf.all.arp_announce = 2">>/etc/sysctl.conf

[root@lyt ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1">>/etc/sysctl.conf

[root@lyt ~]# echo "net.ipv4.conf.all.arp_ignore = 1">>/etc/sysctl.conf

[root@lyt ~]# sysctl –p       #使新編輯的內核文件生效

p_w_picpath

p_w_picpath

p_w_picpath

[root@lyt ~]# service network restart     #重啓網絡服務

[root@lyt ~]# route add -host 192.168.145.101 dev lo:0      #添加一條路由,保證數據包返回時使用VIP地址192.168.145.101,出口是lo:0

二:安裝web服務器:

[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm     #安裝httpd

[root@lyt Server]# service httpd start

[root@lyt Server]# chkconfig httpd on

[root@lyt Server]# echo "realserver1 web1">/var/www/html/index.html      #編輯網頁文件index.html

配置realserver 2:

一:配置內核參數:

p_w_picpath

[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_announce = 2">>/etc/sysctl.conf

[root@localhost ~]# echo "net.ipv4.conf.all.arp_announce = 2">>/etc/sysctl.conf 

[root@localhost ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1">>/etc/sysctl.conf

[root@localhost ~]# echo "net.ipv4.conf.all.arp_ignore = 1">>/etc/sysctl.conf

[root@localhost ~]# sysctl –p      #使剛配置的內核參數生效

p_w_picpath

p_w_picpath

p_w_picpath

[root@localhost ~]# service network restart

[root@localhost ~]# route add -host 192.168.145.101 dev lo:0     #添加一條路由,使返回的數據包從VIP—192.168.145.101出去,出口是lo:0

二:安裝web服務器

[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm     #安裝httpd服務器

[root@localhost Server]# service httpd start      #啓動httpd

[root@localhost Server]# chkconfig httpd on      #開機自動啓動

[root@localhost Server]# echo "realserver2 web2">/var/www/html/index.html       #編輯網頁文件

測試:

p_w_picpath

在director1上查看:

[root@node1 ha.d]# ipvsadm –ln

p_w_picpath

在director2上查看:

p_w_picpath

[root@node1 ha.d]# cd /usr/lib/heartbeat/     #在node1.a.com上切換目錄

[root@node1 heartbeat]# ./hb_standby       #將node1.a.com設置爲備份

在director1上查看:

p_w_picpath

在director2上查看:

p_w_picpath

[root@node1 heartbeat]# ./hb_takeover       #將node1.a.com設置爲主節點

在director1上查看:

p_w_picpath

在director2上查看:

p_w_picpath

在上個案例中實現的手工方式建立ipvs表,也可以使用ldirectord自動創建ipvs表,當節點失效時,自動清除ipvs表。在上個案例中,如果要實現ldirectord,可以作如下修改:

節點一node1.a.com

[root@node1 ~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm -y --nogpgcheck   #安裝ldirectord

[root@node1 ~]# rpm -ql heartbeat-ldirectord    #查看安裝路徑

wps_clip_p_w_picpath-7861

[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/

[root@node1 ~]# cd /etc/ha.d/

[root@node1 ha.d]# vim ldirectord.cf       #編輯資源

wps_clip_p_w_picpath-28411

wps_clip_p_w_picpath-1254

wps_clip_p_w_picpath-18597

[root@node1 ha.d]# vim haresources

wps_clip_p_w_picpath-24536

節點二:node.a.com

[root@node2 ~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm  -y --nogpgcheck

[root@node2 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf  /etc/ha.d/

[root@node2 ~]# cd /etc/ha.d/

[root@node2 ha.d]# vim haresources     

wps_clip_p_w_picpath-23070

[root@node2 ha.d]# vim ldirectord.cf      #編輯資源

wps_clip_p_w_picpath-13853

wps_clip_p_w_picpath-25182

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章