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
查看當前內核版本信息:
uname -r
打開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-2.6.32-220.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-220.el6.x86_64.rpm
注意,/usr/src/kernels/下的內核版本應該與uname -r查詢結果是一致的。
安裝用戶空間工具:
cd /tmp
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
tar xzf drbd-8.4.6.tar.gz
cd drbd-8.4.6
make KDIR=/usr/src/kernels/2.6.32-220.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 狀態:
fdisk -l
如圖是/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";
vi /etc/drbd.conf
drbd每次啓動都要調用/etc/drbd.conf文件,以後再對drbd的參數配置也都寫入這裏。
寫入:
global{
usage-count yes;
}
common{
syncer{ rate 30M; } #同步速率,同步的速率是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 10.255.48.24:7789; #IP和端口
meta-disk internal;
}
on node2{ #備節點
device /dev/drbd1;
disk /dev/sdb1;
address 10.255.48.22:7789;
meta-disk internal;
}
}
然後添加資源文件:
vi /usr/local/drbd/etc/drbd.d/r0.res
寫入:
resource r0 {
on node1 {
device /dev/drbd1;
disk /dev/sdb1;
address 10.255.48.24:7789;
meta-disk internal;
}
on node2 {
device /dev/drbd1;
disk /dev/sdb1;
address 10.255.48.22:7789;
meta-disk internal;
}
}
在防火牆中打開7789端口:
vi /etc/sysconfig/iptables
添加下面這一行在如圖的位置:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7789 -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):
hostname node1 #另一個是hostname node2
設置resource:
加載drbd模塊:
modprobe drbd
確認drbd模塊是否載入:
lsmod|grep drbd
在/dev/sdb1中放入1M大小的文件,否則在創建資源時可能會有問題:
dd if=/dev/zero of=/dev/sdb1 bs=1M count=100
創建brbd資源:
drbdadm create-md r0
啓動drbd:
service drbd start
這時先啓動的節點會等待另一個節點的啓動,因爲在配置文件中會有設置啓動等待對方時間的選項,我們沒有設置默認的值就是0,即永遠等待。
輸入yes之後回車是單節點啓動,或者直至另一個節點也輸入啓動命令之後,兩個節點同時啓動成功。下面是查看節點狀態:
cat /proc/drbd
注:當前兩個節點都是Secondary/Secondary狀態,即沒有主節點,如果要啓動熱備需要設置主節點,請看下一篇 DRBD使用及運維文檔,但是現在證明drbd已經啓動服務了,安裝drbd成功!