DRBD+Heartbeat+NFS高可用圖文實操

實驗環境:CentOS 6.5 (64位)

服務器:drbd1  192.168.18.132 

服務器:drbd2  192.168.18.133


一.DRBD環境搭建

1.hosts解析

#vim /etc/hosts

2.同步時間

#ntpdate 

3.添加附加庫

(1)#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
(2)#rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

4.安裝DRBD

# yum install drbd84 kmod-drbd84 -y

5.兩臺服務器上的分區/dev/sdb1作爲drbd的網絡mirror分區

#fdisk /dev/sdb    備註,每個環境的磁盤名稱可能不一樣,用fdisk -L 查看一下磁盤名稱爲準。

#mkfs.ext4 /dev/sdb1        #在主上面做此操作。
6.開始配置NFS(兩個節點都要執行)

1.#yum -y install rpcbind nfs-utils

2.# mkdir  /usr/local/ftp     #創建要存放的文件目錄
3.# vi /etc/exports
/usr/local/ftp *(rw,no_root_squash,no_all_squash,sync)

4.# service rpcbind start
5.# chkconfig rpcbind on
6.# chkconfig nfs off      #NFS不需要啓動,也不需要設置成開機啓動,這些都將由後面的Heartbeat來完成。
7.# netstat -tunlp|grep rpcbind      #查看rpcbind是否啓動成功


7.開始配置DRBD

# modprobe drbd    #加載drbd模塊到內核中(兩個節點都要執行)
# lsmod | grep drbd      #查看drbd模塊是否加載成功(兩個節點都要執行)

顯示以上信息說明模塊加載成功。

# cat /etc/drbd.conf

#vim /etc/drbd.d/global_common.conf
global {
        usage-count yes;
}
common {
        protocol C;
disk {
        on-io-error detach;
}
syncer {
        rate 100M;                  #100M傳輸速度
 }
}
resource nfs {
        on dm1 {                    #主機名稱
        device /dev/drbd1;           #drbd網絡磁盤
        disk /dev/sdb1;                  #本地需要掛載的磁盤
        address 192.168.18.132:7899;       #主ip地址加drbd端口
        meta-disk internal;
  }
        on dm2 {
        device /dev/drbd1;
        disk /dev/sdb1;
        address 192.168.18.133:7899;
        meta-disk internal;
  }
}


8.啓動DRBD
# drbdadm create-md nfs       #激活前面配置的DRBD資源nfs(兩個節點都要執行)

# service drbd start    #兩個節點都要執行

# chkconfig drbd on     #兩個節點都要執行
# cat /proc/drbd

#drbdsetup /dev/drbd1 primary      #初始化一個主機(這幾步只在主節點上操作)
注意:如果執行drbdsetup /dev/drbd1 primary的時候報圖下所示,最後面加上“--o”即可。

#drbdadm primary nfs
#drbdadm -- --overwrite-data-of-peer primary nfs
#watch -n1 'cat /proc/drbd'      #查看格式化進度

說明:
cs:兩臺數據連接狀態
ro:兩臺主機的狀態
ds:磁盤狀態是“UpToDate/UpToDate”,同步狀態。

9.DRBD的使用

# mkfs.ext4 /dev/drbd1           #在主上執行
# mount /dev/drbd1 /usr/local/ftp      #掛載在ftp文件上
注意:secondary節點上不允許對DRBD設備進行任何操作,包括只讀。所有的讀寫操作只能在主節點上進行,只有當主節點掛掉時,secondary節點才能提升爲主節點,繼續進行讀寫操作。


二、Heartbeat環境搭建

主從都安裝依賴庫

#yum -y install epel-release*

主從都安裝heartbeat

#yum -y install heartbeat

1.修改配置文件

#cd /usr/share/doc/heartbeat-3.0.4/
#cp authkeys ha.cf haresources /etc/ha.d/
#cd /etc/ha.d
#vim authkeys    #打開下面兩項:一共有三種認證方式供選擇,第一種是CRC循環冗餘校驗,第二種是SHA1哈希算法,第三種是MD3哈希算法,其中他們的密碼可以任意設置,但是兩邊密碼必須保持一致。

#chmod 600 authkeys  #給認證文件授權爲600,否則啓動會報錯。

2.修改haresources文件

#vim haresources

再最底下加入這一行,設置VIP。

dm1 IPaddr::192.168.18.180/32/eth0 drbddisk::nfs Filesystem::/dev/drbd1::/usr/local/ftp::ext4 nfs
說明

dm1 IPaddr::192.168.18.180/32/eth0        #主機名 後跟虛擬IP地址、接口

drbddisk::nfs               #管理drbd資源的名稱

Filesystem::/dev/drbd1::/usr/local/ftp::ext4 nfs       #文件系統::掛載的目錄及格式::後跟nfs資源腳本


3.修改ha.cf文件

debugfile /var/log/ha-debug         #設定debug文件目錄

logfile /var/log/ha-log                     #設定日誌文件目錄

logfacility  local0                             #利用系統日誌打印日誌

keepalive 2                                      #設定檢查時間間隔爲1s

deadtime 30                                    #設定在10s內沒有心跳信號,則立即切換服務

warntime 10                                    #設定告警時間爲5s(5s內沒有收到對方的迴應就報警)

initdead 120                                    #設定初始化時間爲60s

udpport 694                                    #設定集羣節點間的通信協議及端口爲udp694監聽端口(該端口可以修改)

ucast eth0 192.168.18.137           #設定心跳方式使用單播方式,並且是在eth0接口上進行單播,ip地址爲對方的IP(網卡名稱要一致性的IP)從機要改成主機的IP

auto_failback off                              #當主節點恢復後,是否自動切回,一般都設爲off

node    dm1                                      #指定兩個節點
node    dm2

ping 10.0.0.254                              #兩個IP的網關

respawn hacluster /usr/lib64/heartbeat/ipfail           #使用這個腳本去偵聽對方是否還活着(使用的是ICMP報文檢測)

兩邊配置文件要一致!

4.啓動Heartbeat(先主後從)

#service heartbeat start


# chkconfig heartbeat on
# netstat -tunlp|grep hear

查看主的IP是否有VIP地址出現

#ip a | grep eth0

# df -h


查看從服務狀態

#ip a | grep eth0    #沒看到VIP是對的,只有主宕了纔會切。

# df -h    #沒有掛載盤是對的,主宕了纔會掛載過來。


5.測試目錄是否能夠共享

實驗掛載盤的服務器:192.168.18.138

進入對應的要掛載的目錄下創建同名的目錄

#mkdir ftp

安裝NFS

#yum -y install rpcbind nfs-utils
#service rpcbind start
#chkconfig rpcbind on
ping一下掛載VIP是否能ping通。

#showmount -e 192.168.18.180        #showmount -e 掛載的VIP地址
#mount -t nfs 192.168.18.180:/usr/loacal/ftp /usr/local/ftp      #共享文件的目錄掛載到138的/usr/local/ftp上
#df -h

掛在完成。

實驗共享目錄

#touch 566

讀寫成功。

6.測試高可用

1.進到主服務器上,把服務關了看看。

#/etc/init.d/heartbeat stop

查看VIP是否釋放

#ip a|grep eth0        #圖下可以看到VIP已經釋放

查看drbd資源是否釋放

#df -h                   #可以看到圖下資源已經釋放。

#cat /proc/drbd          #查看資源狀態變爲從

2.進到從服務器查看VIP是否漂移過來。

#ip a|grep eth0    #已看到VIP飄移成功

#df -h      #DRBD資源切換成功,並掛載

# cat /proc/drbd         #我們看到dm2上的DRBD角色由原來的備,已轉換成主


DRBD+Heartbeat+NFS的高可用至此結束,對高可用的測試,我們上面只是測試了一種情況,當然還有其它幾種情況,留給大家去測試吧!


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