天天看點

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

高可用叢集是指一組通過硬體和軟體連接配接起來的獨立計算機,它們在使用者面前表現為一個單一系統,在這樣的一組計算機系統内部的一個或者多個節點停止工作,服務會從故障節點切換到正常工作的節點上運作,不會引起服務中斷,是保證業務連續性的有效解決方案

一個很關鍵的元件叫做heartbeat,heartbeat的工作原理:heartbeat最核心的包括兩個。部分,心跳監測部分和資源接管部分,心跳監測可以通過網絡鍊路和序列槽進行,而且支援備援鍊路,它們之間互相發送封包來告訴對方自己目前的狀态,如果在指定的時間内未收到對方發送的封包,那麼就認為對方失效,這時需啟動資源接管子產品來接管運作在對方主機上的資源或者服務

案例拓撲:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

實驗原理:

兩個director實作HA(高可用性)群集

兩個web伺服器實作LB(負載均衡)群集

後方NFS伺服器實作給web伺服器提供共享資源

對外呈現虛拟ip位址:192.168.20.100/24

實驗步驟:

Director配置:

配置yum源:

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

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

安裝所需軟體包:

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

[root@node1 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpmheartbeat-devel-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 heartbeat-ldirectord-2.1.4-9.el5.i386.rpm --nogpgcheck 

拷貝ldirector的配置檔案,用于和heartbeat結合,内含ipvsadm規則:

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

[root@node1 ~]# vim /etc/ha.d/ldirectord.cf

虛拟ip:192.168.20.100

Realserver:192.168.20.12和192.168.20.13

後方用于回報資訊的隐藏檔案.test.html,用于director對後方伺服器的監測

不是靜默模式(一旦停止就删除掉規則條目)

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

生成heartbeat的配置檔案,密碼檔案以及資源檔案

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

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

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

更改密碼檔案權限

[root@ node1~]# chmod 600 /etc/ha.d/authkeys

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

Heartbeat消息從eth1口廣播出去

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

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

兩個director主機的主機名

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

生成随機MD5加密數

[root@node1 ~]# dd -f=/dev/randombs=512 count=1 |md5sum

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

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

Node1.a.com這台主機作為主director

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

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

[root@node1 ~]# service heartbeat start

更改hosts檔案為下面拷貝檔案做準備

[root@node1 ~]# vim /etc/hosts

192.168.20.200node1.a.com

192.168.20.201node2.a.com

Director2相關配置和director1相同這裡直接拷貝

[root@node1 ~]# scp /etc/hosts node2.a.com:/etc/hosts

[root@node1 ~]# scp /etc/ha.d/ha.cf node2.a.com:/etc/ha.d/ha.cf

[root@node1 ~]# scp /etc/ha.d/authkeys node2.a.com:/etc/ha.d/authkeys

[root@node1 ~]# scp /etc/ha.d/haresources node2.a.com:/etc/ha.d/haresources

[root@node1 ~]# scp /etc/ha.d/ldirectord.cf node2.a.com:/etc/ha.d/ldirectord.cf

[root@node1 ~]# scp /etc/yum.repos.d/rhel-debuginfo.repo node2.a.com:/etc/yum.repos.d/

[root@node1 ~]# chmod 600 /etc/ha.d/authkeys

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

[root@node2 ~]# yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpmheartbeat-devel-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 heartbeat-ldirectord-2.1.4-9.el5.i386.rpm –nogpgcheck

NFS伺服器配置:

確定伺服器端已經安裝以下有關nfs的軟體包

# rpm -qa |grep nfs

nfs-utils-lib-1.0.8-7.6.el5

nfs-utils-1.0.9-42.el5

檢視rpc工作狀态

# rpcinfo -p

program vers protoport

1000002tcp111portmapper

1000002udp111portmapper

1000241udp653status

1000241tcp656status

1000111udp663rquotad

1000112udp663rquotad

1000111tcp666rquotad

1000112tcp666rquotad

1000032udp2049nfs

1000033udp2049nfs

1000034udp2049nfs

1000211udp38515nlockmgr

1000213udp38515nlockmgr

1000214udp38515nlockmgr

1000032tcp2049nfs

1000033tcp2049nfs

1000034tcp2049nfs

1000211tcp34341nlockmgr

1000213tcp34341nlockmgr

1000214tcp34341nlockmgr

1000051udp677mountd

1000051tcp680mountd

1000052udp677mountd

1000052tcp680mountd

1000053udp677mountd

1000053tcp680mountd

把/usr/local/nginx/html/website作為共享目錄,并修改權限

# chmod 777 /usr/local/nginx/html/website 

編輯共享清單資訊

# vim /etc/exports

/usr/local/nginx/html/website192.168.20.0/24(rw,sync)(給192.168.20.0/24網段的使用者對/usr/local/nginx/html/website有讀寫權限)

# exportfs –r(重新整理共享清單)

# servicenfsrestart

建立共享網頁

在/usr/local/nginx/html/website下建立一個隐藏的.test.html用于director對伺服器的監控時回報資訊

# cd /usr/local/nginx/html/website

# echo ‘ok’ .test.html

Web伺服器配置:

Web伺服器上搭建有lamp環境,前面已有詳細介紹

建立挂載目錄

# mkdir /var/www/website

1000241udp675status

1000241tcp678status

檢視伺服器共享清單清單

# showmount -e 192.168.20.10

Export list for 192.168.20.10:

/usr/local/nginx/html/website 192.168.20.0/24

編輯開機腳本,使動态網站開機就能挂載到本地

# vim /etc/fstab

加入下面代碼

192.168.20.10:/usr/local/nginx/html/website /var/www/websitenfsrw,soft,intr00

添加虛拟端口并配置路由,web伺服器回應用戶端時使用虛拟端口

# ifconfig lo:0 192.168.20.100 broadcast 192.168.20.100 netmask 255.255.255.255

# route add -host 192.168.20.100 dev lo:0

更改系統控制檔案,在接收arp請求時不給予回應以防沖突

# vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_announce = 2

更改web主站點路徑到挂載目錄

# vim /etc/httpd/httpd.conf

213 DocumentRoot "/var/www/website"

# service httpd restart

stoping httpd......ok

starting apache.......ok

測試:

檢視director1上面的規則:

Director1規則:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

把ip資源分給了director1

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

作為備份的director2此時沒有資源:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

把web伺服器down掉一個:

# service httpd stop

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

通過虛位址通路内部網站:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

再次檢視規則已經有一條比對:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

再次重新整理浏覽器:(符合rr輪訓的規則)

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

把director1 down掉,在director2上立馬有規則,得到資源:

Heartbeat_ldirector+LB+NFS實作HA及LB、檔案共享

繼續閱讀