DRBD集羣部署

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 用的盤同樣的同等大小!
相關文章
相關標籤/搜索