1. 程式人生 > >DRBD+HeatBeat+NFS實現檔案儲存高可用

DRBD+HeatBeat+NFS實現檔案儲存高可用

實驗環境:CentOS 6.5 (64位)

伺服器:drbd1  192.168.18.132 

伺服器:drbd2  192.168.18.133

一.DRBD環境搭建

1.hosts解析

  1. #vim /etc/hosts  

2.同步時間

  1. #ntpdate   

3.新增附加庫

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

4.安裝DRBD

  1. # yum install drbd84 kmod-drbd84 -y  

5.兩臺伺服器上的分割槽/dev/sdb1作為drbd的網路mirror分割槽

  1. #fdisk /dev/sdb    備註,每個環境的磁碟名稱可能不一樣,用fdisk -L 檢視一下磁碟名稱為準。  

  1. #mkfs.ext4 /dev/sdb1        #在主上面做此操作。  
6.開始配置NFS(兩個節點都要執行)
  1. 1.#yum -y install rpcbind nfs-utils  
  1. 2.# mkdir  /usr/local/ftp     #建立要存放的檔案目錄  
  2. 3.# vi /etc/exports  
  1. /usr/local/ftp *(rw,no_root_squash,no_all_squash,sync)  
  1. 4.# service rpcbind start  
  2. 5.# chkconfig rpcbind on  
  3. 6.# chkconfig nfs off      #NFS不需要啟動,也不需要設定成開機啟動,這些都將由後面的Heartbeat來完成。  
  1. 7.# netstat -tunlp|grep rpcbind      #檢視rpcbind是否啟動成功  

7.開始配置DRBD

  1. # modprobe drbd    #載入drbd模組到核心中(兩個節點都要執行)  
  1. # lsmod | grep drbd      #檢視drbd模組是否載入成功(兩個節點都要執行)  

顯示以上資訊說明模組載入成功。

  1. # cat /etc/drbd.conf  

  1. #vim /etc/drbd.d/global_common.conf  
  1. global {  
  2.         usage-count yes;  
  3. }  
  4. common {  
  5.         protocol C;  
  6. disk {  
  7.         on-io-error detach;  
  8. }  
  9. syncer {  
  10.         rate 100M;                  #100M傳輸速度  
  11.  }  
  12. }  
  13. resource nfs {  
  14.         on dm1 {                    #主機名稱  
  15.         device /dev/drbd1;           #drbd網路磁碟  
  16.         disk /dev/sdb1;                  #本地需要掛載的磁碟  
  17.         address 192.168.18.132:7899;       #主ip地址加drbd埠  
  18.         meta-disk internal;  
  19.   }  
  20.         on dm2 {  
  21.         device /dev/drbd1;  
  22.         disk /dev/sdb1;  
  23.         address 192.168.18.133:7899;  
  24.         meta-disk internal;  
  25.   }  
  26. }  

8.啟動DRBD 
  1. # drbdadm create-md nfs       #啟用前面配置的DRBD資源nfs(兩個節點都要執行)  
  1. # service drbd start    #兩個節點都要執行  

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

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

  1. #drbdadm primary nfs  
  1. #drbdadm -- --overwrite-data-of-peer primary nfs  
  1. #watch -n1 'cat /proc/drbd'      #檢視格式化進度  

說明:
cs:兩臺資料連線狀態
ro:兩臺主機的狀態
ds:磁碟狀態是“UpToDate/UpToDate”,同步狀態。

9.DRBD的使用

  1. # mkfs.ext4 /dev/drbd1           #在主上執行  
  2. # mount /dev/drbd1 /usr/local/ftp      #掛載在ftp檔案上  
  3. 注意:secondary節點上不允許對DRBD裝置進行任何操作,包括只讀。所有的讀寫操作只能在主節點上進行,只有當主節點掛掉時,secondary節點才能提升為主節點,繼續進行讀寫操作。  
二、Heartbeat環境搭建

主從都安裝依賴庫

  1. #yum -y install epel-release*  

主從都安裝heartbeat

#yum -y install heartbeat

1.修改配置檔案

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

  1. #chmod 600 authkeys  #給認證檔案授權為600,否則啟動會報錯。  

2.修改haresources檔案

  1. #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地址、介面