天天看點

DRBD+Heartbeat+NFS

 DRBD+Heartbeat+NFS

DRBD是一種塊裝置,可以被用于高可用(HA)之中.它類似于一個網絡RAID-1功能.當你将資料寫入本地檔案系統時,資料還将會被發送到網絡中另一台主機上.以相同的形式記錄在一個檔案系統中.本地(主節點)與遠端主機(備節點)的資料可以保證明時同步.當本地系統出現故障時,遠端主機上還會保留有一份相同的資料,可以繼續使用

Heartbeat來實作高可用性HA群集,已達到實時監控主節點的運作狀态,一旦主狀态死掉,處于備份狀态的節點立即激活為主狀态,實作高可用性

NFS網絡共享服務,通過DRBD和Heartbeat來實作NFS的高可用性。

一 基本配置

1、配置ip位址  

Server1  192.168.2.10/24

Server2  192.168.2.20/24

其中vip為192.168.2.100/24

2、修改主機名

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

HOSTNAME=server1.a.com

[root@localhost ~]# hostname server1.a.com

HOSTNAME=server2.a.com

[root@localhost ~]# hostname server2.a.com

3、兩個節點能夠互相解析

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

192.168.2.10  server1.a.com

192.168.2.20  server2.a.com

----server1和server2相同

4、建立兩個大小相同的分區或一塊硬碟

<a href="http://blog.51cto.com/attachment/201301/170720858.png" target="_blank"></a>

5、如果兩台虛拟機時間不同步可以用hwclock -s 來同步時鐘 ,或是NTF伺服器

二 安裝DRBD配置

1、安裝配置

[root@server1 ~]# yum -y install drbd83 kmod-drbd83

[root@server1 ~]# vim /etc/drbd.d/global_common.conf

<a href="http://blog.51cto.com/attachment/201301/170727230.png" target="_blank"></a>

usage-count 用法統計設為no 可以提高性能

Protocol  C 使用C協定,提高資料存儲安全

on-io-error 當io出錯時拆除磁盤

net{ } 使用加密算法及密鑰

syncer{} 同步速率

[root@server1 ~]# vim /etc/drbd.d/mysql.res       ----添加資源這裡命名為mysql.res

<a href="http://blog.51cto.com/attachment/201301/170735770.png" target="_blank"></a>

server2同server1一樣配置

2、初始化資源,并啟動服務

[root@server1 drbd.d]# drbdadm   create-md mysql

[root@server2 drbd.d]# drbdadm   create-md mysql

[root@server1 drbd.d]# service drbd start &amp;&amp; chkconfig drbd on

[root@server2 drbd.d]# service drbd start &amp;&amp; chkconfig drbd on

[root@server1 ~]# mkdir /data    ---建立挂載點

[root@server2 ~]# mkdir /data

3、在server1上

[root@server1 ~]# drbdadm  --  --overwrite-data-of-peer primary mysql  ---指定主節點在server1上

[root@server1 ~]# mkfs -t ext3  -L drbdmysql  /dev/drbd0             ---格式化

[root@server1 ~]# mount /dev/drbd0 /data                            ---挂載

4、檢視狀态

[root@server1 ~]# drbd-overview  

  0:mysql  Connected Primary/Secondary UpToDate/UpToDate C r---- /data ext3 950M 18M 885M 2%

[root@server2 ~]# drbd-overview 

  0:mysql  Connected Secondary/Primary UpToDate/UpToDate C r---- 

---server1為主server2為輔

三 NFS配置

[root@server1 ~]# vim /etc/exports   ---添加如下:

/data  *(rw,sync)

[root@server1 ~]# vim /etc/rc.d/init.d/nfs   編輯啟動腳本-2改為-9如下:

killproc nfsd -9

Server2和server1配置相同

Heartbeat的配置

1、安裝、配置

[root@server1 ~]# 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

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

[root@server1 heartbeat-2.1.4]# cp authkeys haresources ha.cf /etc/ha.d/

[root@server1 ha.d]# vim authkeys    

auth 3

3 md5 hello          ---md5驗證

[root@server1 ha.d]# chmod  600  authkeys

[root@server1 ha.d]# vim ha.cf

debugfile /var/log/ha-debug   ---開啟監控日志

keepalive 2                 ---兩秒檢測一次心跳線連

deadtime 10                ---10 秒測試不到主伺服器心跳線為有問題出現

warntime 10               ---警告時間

initdead 120               ---初始化啟動時 120 秒無連接配接視為正常

udpport 694               ---用udp端口694連接配接

bcast    eth0       ---在eth0上監測心跳     

node    server1.a.com

node    server2.a.com

auto_failback off           ---禁用復原切換

respawn hacluster /usr/lib/heartbeat/ipfail    ---監控ipfail程序是否挂掉,如果挂掉重新開機

[root@server1 ha.d]# vim haresources

server1.a.com  192.168.20.100/24/eth0 drdbdisk::mysql Filesystem::/dev/drbd0::/data::ext3 nfsd

[root@server1 ha.d]# cd /etc/ha.d/resource.d/

[root@server1 resource.d]# vim nfsd           ---編寫資源控制腳本如下:

killall -9 nfsd ; 

/etc/init.d/nfs restart ; 

exit 0

[root@server1 resource.d]# chmod 755 nfsd

Server2和server1相同

在兩節點上啟動heartbeat

service heartbeat start 

在server1上可以看到是主節點如下:

<a href="http://blog.51cto.com/attachment/201301/170745568.png" target="_blank"></a>

[root@server1 heartbeat]# drbd-overview 

建立新挂載點,并挂載

mkdir /mnt/my

mount 192.168.2.100:/data /mnt/my

<a href="http://blog.51cto.com/attachment/201301/170752235.png" target="_blank"></a>

當server1節點失效時,server2節點自動挂載分區

<a href="http://blog.51cto.com/attachment/201301/170802342.png" target="_blank"></a>

并通過mount 192.168.2.100:/data /mnt/my來挂載通路共享,不間斷對共享資料的通路。!!!

本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1126417