DRBD
是由內核模塊和相關腳本而構成,用以構建高可用性的集羣。其實現方式是經過網絡來鏡像整個設備。您能夠把它看做是一種網絡RAID.
Drbd
負責接收數據,把數據寫到本地磁盤,而後發送給另外一個主機。另外一個主機再將數據存到本身的磁盤中。其餘所需的組件有集羣成員服務,如TurboHA 或 心跳鏈接,以及一些能在塊設備上運行的應用程序
drbd
1:192.168.6.106
drbd
2:192.168.6.107
OS:ubuntu server 8.04.1
軟件:
drbd
-8.2.6.tar.gz
分別在兩臺機器安裝,個人機器分區是用LVM來管理的
因此,我給兩臺機器都分了一個G,在/dev/www/www~
1。安裝
drbd
所須要的,由於
DRBD
編譯在內核裏的,因此也要安裝linux-headers
#uname -r 看下內核版本
2.6.24-19-serve 個人內核版本
#apt-get install flex linux-headers-2.6.24-19-server
2.編譯安裝
drbd
#tar zxvf
drbd
-8.2.6.tar.gz
#cd
drbd
-8.2.6
#make clean 清除之前歷史記錄
#make KDIR=/usr/scr/linux-headers-2.6.24-19-server 編譯+內核路徑
#make install 安裝
#groupadd haclient 創建組否則會提示警告
#chgrp haclient /sbin/drbdsetup
#chmod o-x /sbin/drbdsetup
#chmod u+s /sbin/drbdsetup
3.修改配置文件
#mv /etc/
drbd
.conf /etc/
drbd
.conf.bak 備份原配置文件
#vim /etc/
drbd
.conf
貼入
common {
# 設置主備節點同步時的網絡速率最大值,單位是字節.
syncer { rate 10M; }
}
resource r0 {
# 使用協議C.表示收到遠程主機的寫入確認後,則認爲寫入完成.
protocol C;
disk { on-io-error detach; }
# 每一個主機的說明以"on"開頭,後面是主機名.在後面的{}中爲這個主機的配置.
on
drbd
1 {
device /dev/
drbd
0;
disk /dev/www/www; (若是是新家的硬盤就寫 /dev/sdb1;/dev/sdc...)
address 192.168.6.106:7788;
meta-disk internal;
}
on
drbd
2 {
device /dev/
drbd
0;
disk /dev/www/www; (若是是新家的硬盤就寫 /dev/sdb1;/dev/sdc...)
address 192.168.6.107:7788;
meta-disk internal;
}
}
個人是很簡單的,爲了測試,還須要你們根據本身的須要本身修改~
好了兩臺機器都寫完配置文件後,在
drbd
1和
drbd
2上分別輸入命令
#drbdadm create-md r0 「r0」是咱們在
drbd
.conf裏定義
彈出的信息,敲回車,若是
drbd
.conf配置好的話,有的信息是不會彈出的。
如今咱們能夠啓動
DRBD
了,分別在兩臺主機上執行:
[root@
drbd
1 local]#/etc/init.d/
drbd
start
[root@
drbd
2 local]#/etc/init.d/
drbd
start
[root@
drbd
1 ~]# cat /proc/
drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@
drbd
1
, 2008-06-27 14:07:14 1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r---
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0
act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0
」/proc/
drbd
」中顯示了
drbd
當前的狀態.第一行的st表示兩臺主機的狀態,都是」備機」狀態.
ds是磁盤狀態,都是」不一致」狀態.
這是因爲,
DRBD
沒法判斷哪一方爲主機,以哪一方的磁盤數據做爲標準數據.因此,咱們須要初始化
一個主機.在
drbd
1上執行:
[root@
drbd
1 local]#drbdsetup /dev/
drbd
0 primary -o
主備機狀態分別是」主/備」,主機磁盤狀態是」實時」,備機狀態是」不一致」.
在第3行,能夠看到數據正在同步中,即主機正在將磁盤上的數據,傳遞到備機上.如今的進度是[>...................] sync'ed: 0.4% (1040316/1040316)K
稍等一會,在數據同步完後,再查看一下
drbd
1的
DRBD
狀態:
磁盤狀態都是」實時」,表示數據同步完成了.
你如今能夠把主機上的
DRBD
設備掛載到一個目錄上進行使用.備機的
DRBD
設備沒法被掛載,由於它是
用來接收主機數據的,由
DRBD
負責操做.
在
drbd
1執行
root@
drbd
1:~# mkfs.ext2 /dev/
drbd
0 (格式化)
root@
drbd
1:~# mount /dev/
drbd
0 /mnt (掛載到/mnt 目錄)
root@
drbd
1:~# cd /mnt
root@
drbd
1:/mnt# touch aaa
root@
drbd
1:/mnt# ls
aa lost+found
而後在
drbd
2 上執行
root@
drbd
2:~#/etc/init.d/
drbd
stop
Stopping all
DRBD
resources.
root@
drbd
2:~# mkfs.ext2 /dev/
drbd
0 (格式化)
root@
drbd
2:~# mount /dev/
drbd
0 /mnt
root@
drbd
2:~# cd /mnt
root@
drbd
1:~# ls
aa lost+found
能夠看到,在主機
drbd
1上產生的文件aa,也完整的保存在備機
drbd
2的
DRBD
分區上.
這就是
DRBD
的網絡RAID-1功能. 在主機上的任何操做,都會被同步到備機的相應磁盤分區上,達到數據備份的效果.
=====================================================================
DRBD
的主備機切換有時,你須要將
DRBD
的主備機互換一下.能夠執行下面的操做:
在主機上,先要卸載掉
DRBD
設備
root@
drbd
1~# umount /mnt
將主機降級爲」備機」
root@
drbd
1~# drbdadm secondary r0
root@
drbd
1~# cat /proc/
drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@
drbd
1
, 2008-06-27 14:07:14
1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r---
ns:497972 nr:0 dw:28 dr:498006 al:2 bm:36 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:31100 misses:34 starving:0 dirty:0 changed:34
act_log: used:0/127 hits:26 misses:2 starving:0 dirty:0 changed:2
如今,兩臺主機都是」備機」.
在備機
drbd
2上,將它升級爲」主機」. [root@
drbd
2 mnt]# drbdadm primary r0
root@
drbd
2~# cat /proc/dr
drbd
driver/
[root@
drbd
2 mnt]# cat /proc/
drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@
drbd
2
, 2008-06-27 14:11:24 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
ns:0 nr:16 dw:16 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:6 misses:2 starving:0 dirty:0 changed:2
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
如今
drbd
2成爲主機了。
===============================================================
特別注意,我在測試的時候發生一個問題,就是我作雙機互備的時候,先把/dev/www/www 格式化老是出錯,後來重新作,而後格式化的/dev/
drbd
0就沒有錯誤`因此你們作的時候,不要先格式化。在有就是兩個
drbd
用的盤同樣的同等大小!