天天看點

CentOS環境DRBD的編譯安裝

DRBD安裝環境介紹

DRBD的安裝需要兩台機器,後面都稱為節點(node1和node2),node1和node2都是CentOS-6.2作業系統,所使用鏡像為CentOS-6.2-x86_64-bin-DVD.iso,IP位址分别為10.255.48.24和10.255.48.22,node1和node2各自有一個5G的硬碟sdb,安裝drbd版本是drbd-8.4.6,需要強調的是:兩個節點都要執行本文檔全部操作。

注: 上面的IP位址和硬碟sdb大小根據自身情況進行修改(這個是同步盤),注意兩個節點的硬碟大小要相同。

DRBD編譯安裝

安裝所需依賴:

yum -y install gcc flex
           

檢視目前核心版本資訊:

CentOS環境DRBD的編譯安裝

打開CentOS-6.2-x86_64-bin-DVD.iso鏡像,選擇Packages

CentOS環境DRBD的編譯安裝

查找并導出kernel-devel-2.6.32-220.el6.x86_64.rpm和

kernel-headers-2.6.32-220.el6.x86_64.rpm 分别上傳到兩個節點上

注:kernel-devel和kernel-headers要和uname -r 查詢出的版本一緻!!!否則後期加載核心時會出現問題!!!

分别安裝kernel-devel和kernel-headers:

rpm -ivh kernel-devel--el6.x86_64.rpm
rpm -ivh kernel-headers--el6.x86_64.rpm
           

注意,/usr/src/kernels/下的核心版本應該與uname -r查詢結果是一緻的。

安裝使用者空間工具:

cd /tmp
wget http://oss.linbit.com/drbd//drbd-.tar.gz
tar xzf drbd-.tar.gz
cd drbd-
make KDIR=/usr/src/kernels/-el6.x86_64/
make install 
mkdir -p /usr/local/drbd/var/run/drbd
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
chkconfig --add drbd
chkconfig drbd on
           

安裝drbd子產品:

cd drbd
make clean
make KDIR=/usr/src/kernels/2.6.32-220.el6.x86_64/
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod
           

注:usr/src/kernels/2.6.32-220.el6.x86_64/這個核心源碼樹路徑需要根據自己的系統修改。

DRBD配置

建立分區:

這個時候需要使用第二塊硬碟sdb,這個硬碟将來也作為drbd同步的硬碟,兩個節點(node)都要分區。

注:主備節點的兩塊硬碟要大小相同。

準備為 sdb 建立分區:

fdisk /dev/sdb      
           
CentOS環境DRBD的編譯安裝

鍵入 n 表示要建立分區:

CentOS環境DRBD的編譯安裝

鍵入 p 表示建立主要分區:

CentOS環境DRBD的編譯安裝

鍵入 1 為此主要分區代号:

CentOS環境DRBD的編譯安裝

開始磁柱值,按下 enter 即可:

CentOS環境DRBD的編譯安裝

結束磁柱值,按下 enter 即可:

CentOS環境DRBD的編譯安裝

鍵入 w 表示确定執行剛才設定:

CentOS環境DRBD的編譯安裝

使剛才的 partition table 變更生效:

partprobe
           

注:partprobe作用是在不重新開機伺服器的情況下識别建立的分區,Centos 預設下是沒有安裝這個指令的需要的話可以運作如下指令進行安裝。如果安裝不上重新開機是同樣效果的。

yum install -y parted
           

建立分區完成後使用指令 fdisk -l 确定 partition talbe 狀态:

CentOS環境DRBD的編譯安裝

如圖是/dev/sdb部分,分區完成。

建立 /db 目錄:

建立的/db目錄就是drbd的同步工作目錄:

mkdir /db
           

建立drbd配置檔案:

vi /usr/local/drbd/etc/drbd.conf
           

寫入:

include "drbd.d/global_common.conf";
include "drbd.d/*.res";
           
CentOS環境DRBD的編譯安裝

drbd每次啟動都要調用/etc/drbd.conf檔案,以後再對drbd的參數配置也都寫入這裡。

寫入:

global{
        usage-count yes;
}
common{
        syncer{ rate M; }         #同步速率,同步的速率是bytes位元組,而不是bits/s。根據經驗同步速率比較合理的是可用帶寬的30%,以網絡帶寬110MB/ s為例,同步速率這樣就得出同步速率的推薦值為33M。
}
handlers{
        split-brain "/usr/local/drbd/lib/drbd/notify-split-brain.sh root";

}
        resource r0{
                protocol C;     #采用協定C的寫模式
                net{
                cram-hmac-alg sha1;
                shared-secret "FooFunFactory";
                }
                on node1 {                      #主節點
                device /dev/drbd1;              #裝置
                disk /dev/sdb1;                 #磁盤
                address :;      #IP和端口
                meta-disk internal;
                }
                on node2{                       #備節點
                device /dev/drbd1;
                disk /dev/sdb1;
                address :;
                meta-disk internal;
                }
}
           

然後添加資源檔案:

寫入:

resource r0 {
  on node1 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   :;
    meta-disk internal;
  }
  on node2 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   :;
    meta-disk internal;
  }
}
           

在防火牆中打開7789端口:

vi /etc/sysconfig/iptables 
           

添加下面這一行在如圖的位置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
           
CentOS環境DRBD的編譯安裝

最後重新開機防火牆使配置生效:

service iptables restart
           

設定hostname:

根據上面的resource配置檔案,需要對10.255.48.24和10.255.48.22分别設定hostname為node1和node2,設定方法如下:

vi /etc/sysconfig/network
           

修改HOSTNAME為node1(備節點修改為node2):

CentOS環境DRBD的編譯安裝
CentOS環境DRBD的編譯安裝

然後:

vi /etc/hosts
           

填加:

10.255.48.24 node1
10.255.48.22 node2
           

hostname node1使主機名生效(備節點為hostname node2):

設定resource:

加載drbd子產品:

modprobe drbd
           

确認drbd子產品是否載入:

CentOS環境DRBD的編譯安裝

在/dev/sdb1中放入1M大小的檔案,否則在建立資源時可能會有問題:

dd if=/dev/zero of=/dev/sdb1 bs=M count=
           

建立brbd資源:

啟動drbd:

這時先啟動的節點會等待另一個節點的啟動,因為在配置檔案中會有設定啟動等待對方時間的選項,我們沒有設定預設的值就是0,即永遠等待。

CentOS環境DRBD的編譯安裝

輸入yes之後回車是單節點啟動,或者直至另一個節點也輸入啟動指令之後,兩個節點同時啟動成功。下面是檢視節點狀态:

cat /proc/drbd
           
CentOS環境DRBD的編譯安裝

注:目前兩個節點都是Secondary/Secondary狀态,即沒有主節點,如果要啟動熱備需要設定主節點,請看下一篇 DRBD使用及運維文檔,但是現在證明drbd已經啟動服務了,安裝drbd成功!

繼續閱讀