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-6.2-x86_64-bin-DVD.iso鏡像,選擇Packages
查找并導出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
鍵入 n 表示要建立分區:
鍵入 p 表示建立主要分區:
鍵入 1 為此主要分區代号:
開始磁柱值,按下 enter 即可:
結束磁柱值,按下 enter 即可:
鍵入 w 表示确定執行剛才設定:
使剛才的 partition table 變更生效:
partprobe
注:partprobe作用是在不重新開機伺服器的情況下識别建立的分區,Centos 預設下是沒有安裝這個指令的需要的話可以運作如下指令進行安裝。如果安裝不上重新開機是同樣效果的。
yum install -y parted
建立分區完成後使用指令 fdisk -l 确定 partition talbe 狀态:
如圖是/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";
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
最後重新開機防火牆使配置生效:
service iptables restart
設定hostname:
根據上面的resource配置檔案,需要對10.255.48.24和10.255.48.22分别設定hostname為node1和node2,設定方法如下:
vi /etc/sysconfig/network
修改HOSTNAME為node1(備節點修改為node2):
然後:
vi /etc/hosts
填加:
10.255.48.24 node1
10.255.48.22 node2
hostname node1使主機名生效(備節點為hostname node2):
設定resource:
加載drbd子產品:
modprobe drbd
确認drbd子產品是否載入:
在/dev/sdb1中放入1M大小的檔案,否則在建立資源時可能會有問題:
dd if=/dev/zero of=/dev/sdb1 bs=M count=
建立brbd資源:
啟動drbd:
這時先啟動的節點會等待另一個節點的啟動,因為在配置檔案中會有設定啟動等待對方時間的選項,我們沒有設定預設的值就是0,即永遠等待。
輸入yes之後回車是單節點啟動,或者直至另一個節點也輸入啟動指令之後,兩個節點同時啟動成功。下面是檢視節點狀态:
cat /proc/drbd
注:目前兩個節點都是Secondary/Secondary狀态,即沒有主節點,如果要啟動熱備需要設定主節點,請看下一篇 DRBD使用及運維文檔,但是現在證明drbd已經啟動服務了,安裝drbd成功!