基於lvs的 heartbeat實現的HA羣集

Heartbeat實現HA羣集

Heartbeat服務實現高可用性羣集,節點之間是靠心跳線來傳輸資源,心跳線可以是雙絞線也可以是serial線。當一個節點失效,另一個節點搶奪資源,資源有ip地址、服務、配置文件,成爲主節點。

工作模式:主主模式,主備模式

主主模式:當一個節點實現http服務,爲主節點,實現ftp服務爲備用節點。另外一個節點在實現http時爲備用節點,實現ftp時爲主節點。

主備節點:一個節點爲主節點,另外一個爲備用節點,一旦主節點失效,備用節點接替工作,成爲主節點。

Heartbeat工作的四個階段:

第一個階段:messagelayer/etc//ha.cf/ha.cf這個是實現高可用性羣集的配置文件,在這個文件裏指明,廣播接口、節點的名稱。

第二個階段:成員管理/Etc/ha.d/haresource指明節點名稱、搶佔的資源(vip、服務、配置文件)

第三個階段:/etc/ha.d/authkeys指明節點之間的驗證算法

第四階段:resourcesagent代理階段

一:

在節點一上的配置:

1安裝高可用性羣集的相關軟件包

heartbeat-2.1.4-9.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpmldirectord服務用於後方真實的服務器的狀態監測

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

安裝好只好在/etc/ha.d目錄下形成一些與羣集相關文件和目錄

拷貝/usr/share/doc/heartbeat-2.1.4/ha.cfauthkeysharesources到當前目錄下

[[email protected]]#ll

total48

-rw-r--r--1rootroot645Oct401:42authkeys

-rw-r--r--1rootroot10578Oct401:41ha.cf

-rwxr-xr-x1rootroot745Jul242009harc

-rw-r--r--1rootroot5952Oct401:28haresources

drwxr-xr-x2rootroot4096Oct401:11rc.d

-rw-r--r--1rootroot692Jul242009README.config

drwxr-xr-x2rootroot4096Oct401:28resource.d

-rw-r--r--1rootroot7862Jul242009shellfuncs

:2打開ha.cf這個文件,ha.cf是高可用性羣集的配置文件

bcasteth1#Linux廣播地址爲eth0這個端口,當主節點失效時通過這個端口把資源(vipheartbeat服務控制的其他服務、其他服務的配置文件)傳到備份節點上。

#bcasteth1eth2#Linux

#nodekathy

nodenode1.a.com

nodenode2.a.com

3打開haresources文件配置資源,資源有節點名稱虛擬ip、被控制的服務,這裏控制ipvsadm服務

#node-nameresource1resource2...resourceN

node1.a.com192.168.20.100/24/eth0ipvsadm

#

拷貝ipvsadm的服務腳本到resource.d目錄下

cp/etc/init.d/ipvsadm/etc/ha.d/resource.d/

4打開authkeys文件

authkeys

auth3#節點之間傳遞資源時要進行驗證,MD5身份驗證驗證內容是redhat

#1crc

#2sha1HI!

3md5redhat

5Lvs虛擬服務配置

[root@localhost~]#ipvsadm-A-t192.168.20.100:80-srr

[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.30:80-g

[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.40:80-g

[root@localhost~]#ipvsadm-l

IPVirtualServerversion1.2.1(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP192.168.20.100:httprr

->192.168.20.40:httpRoute100

->192.168.20.30:httpRoute100

保存虛擬服務規則,關閉虛擬服務

[root@localhost~]#serviceipvsadmsave

SavingIPVStableto/etc/sysconfig/ipvsadm:[OK]

[root@localhost~]#serviceipvsadmstop

ClearingthecurrentIPVStable:[OK]

6:開啓高可用性羣集的功能Serviceheartbeatstart

執行hb_takeover

搶佔虛擬ip地址和服務

[[email protected]]#ifconfig

eth0Linkencap:EthernetHWaddr00:0C:29:FA:2D:49

inetaddr:192.168.20.10Bcast:192.168.20.255Mask:255.255.255.0

inet6addr:fe80::20c:29ff:fefa:2d49/64Scope:Link

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:7840errors:0dropped:0overruns:0frame:0

TXpackets:5142errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:1000

RXbytes:2922637(2.7MiB)TXbytes:709106(692.4KiB)

Interrupt:19Baseaddress:0x2000

eth0:0Linkencap:EthernetHWaddr00:0C:29:FA:2D:49

inetaddr:192.168.20.100Bcast:192.168.20.255Mask:255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

Interrupt:19Baseaddress:0x2000

7查看虛擬服務規則表,虛擬服務已經開啓

[[email protected]]#ipvsadm-l

IPVirtualServerversion1.2.1(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP192.168.20.100:httprr

->192.168.20.30:httpRoute100

->192.168.20.40:httpRoute100

三:在節點二上

1安裝高可用性羣集的相關軟件包

heartbeat-2.1.4-9.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpmldirectord服務用於後方真實的服務器的狀態監測

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

安裝好只好在/etc/ha.d目錄下形成一些與羣集相關文件和目錄

拷貝/usr/share/doc/heartbeat-2.1.4/ha.cfauthkeysharesources到當前目錄下

[[email protected]]#ll

total48

-rw-r--r--1rootroot645Oct401:42authkeys

-rw-r--r--1rootroot10578Oct401:41ha.cf

-rwxr-xr-x1rootroot745Jul242009harc

-rw-r--r--1rootroot5952Oct401:28haresources

drwxr-xr-x2rootroot4096Oct401:11rc.d

-rw-r--r--1rootroot692Jul242009README.config

drwxr-xr-x2rootroot4096Oct401:28resource.d

-rw-r--r--1rootroot7862Jul242009shellfuncs

:2打開ha.cf這個文件,ha.cf是高可用性羣集的配置文件

bcasteth1#Linux廣播地址爲eth0這個端口,當主節點失效時通過這個端口把資源(vipheartbeat服務控制的其他服務、其他服務的配置文件)傳到備份節點上。

#bcasteth1eth2#Linux

#nodekathy

nodenode1.a.com

nodenode2.a.com

3打開haresources文件配置資源,資源有節點名稱虛擬ip、被控制的服務,這裏控制ipvsadm服務

#node-nameresource1resource2...resourceN

node1.a.com192.168.20.100/24/eth0ipvsadm

#

拷貝ipvsadm的服務腳本到resource.d目錄下

cp/etc/init.d/ipvsadm/etc/ha.d/resource.d/

4打開authkeys文件

authkeys

auth3#節點之間傳遞資源時要進行驗證,MD5身份驗證驗證內容是redhat

#1crc

#2sha1HI!

3md5redhat

5Lvs虛擬服務配置

[root@localhost~]#ipvsadm-A-t192.168.20.100:80-srr

[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.30:80-g

[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.40:80-g

[root@localhost~]#ipvsadm-l

IPVirtualServerversion1.2.1(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP192.168.20.100:httprr

->192.168.20.40:httpRoute100

->192.168.20.30:httpRoute100

保存虛擬服務規則,關閉虛擬服務

[root@localhost~]#serviceipvsadmsave

SavingIPVStableto/etc/sysconfig/ipvsadm:[OK]

[root@localhost~]#serviceipvsadmstop

ClearingthecurrentIPVStable:[OK]

6:開啓heartbeat服務執行hb_takeover功能搶佔資源

Serviceheartbeatstart

執行hb_takeover搶佔資源

eth0Linkencap:EthernetHWaddr00:0C:29:D2:75:D0

inetaddr:192.168.20.20Bcast:192.168.20.255Mask:255.255.255.0

inet6addr:fe80::20c:29ff:fed2:75d0/64Scope:Link

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:5162errors:0dropped:0overruns:0frame:0

TXpackets:3896errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:1000

RXbytes:2896990(2.7MiB)TXbytes:596280(582.3KiB)

Interrupt:19Baseaddress:0x2000

eth0:0Linkencap:EthernetHWaddr00:0C:29:D2:75:D0

inetaddr:192.168.20.100Bcast:192.168.20.255Mask:255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

Interrupt:19Baseaddress:0x2000

7查看虛擬服務規則表,虛擬服務已經開啓

[[email protected]]#ipvsadm-l

IPVirtualServerversion1.2.1(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP192.168.20.100:httprr

->192.168.20.30:httpRoute100

->192.168.20.40:httpRoute100

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