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
[root@localhost ~]# vim /etc/sysconfig/network
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、創建兩個大小相同的分區或一塊硬盤
5、如果兩臺虛擬機時間不同步可以用hwclock -s 來同步時鐘 ,或是NTF服務器
二 安裝DRBD配置
1、安裝配置
[root@server1 ~]# yum -y install drbd83 kmod-drbd83
[root@server1 ~]# vim /etc/drbd.d/global_common.conf
usage-count 用法統計設爲no 可以提高性能
Protocol C 使用C協議,提高數據存儲安全
on-io-error 當io出錯時拆除磁盤
net{ } 使用加密算法及密鑰
syncer{} 同步速率
[root@server1 ~]# vim /etc/drbd.d/mysql.res ----添加資源這裏命名爲mysql.res
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 && chkconfig drbd on
[root@server2 drbd.d]# service drbd start && 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上可以看到是主節點如下:
[root@server1 heartbeat]# drbd-overview
0:mysql Connected Primary/Secondary UpToDate/UpToDate C r---- /data ext3 950M 18M 885M 2%
建立新掛載點,並掛載
mkdir /mnt/my
mount 192.168.2.100:/data /mnt/my
當server1節點失效時,server2節點自動掛載分區
並通過mount 192.168.2.100:/data /mnt/my來掛載訪問共享,不間斷對共享數據的訪問。!!!