2014年5月23日

DRBD administration note

DRBD版本: 8.3.x

確認 DRBD 運作狀況

可用以下兩種方式取得 DRBD 運作狀況
1. shell># cat /proc/drbd
2. shell># /usr/sbin/drbd-overview

shell># cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder10.                    centos.org, 2013-03-27 16:01:26
 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate B r-----
    ns:209706040 nr:0 dw:0 dr:209706040 al:0 bm:12800 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
輸出說明
cs (connection status): 正常狀態為 connected, 其餘可參考 connection-stats
ro(role): 主機的角色狀態( Primary(本機) / Secondard(遠端) )
ds(disk states): 硬碟狀態, 若兩邊同步狀況良好應為 UpToDate / UpToDate, 其餘狀態參考 disk-stats
ns(network send): 透過網路傳到另一端的資料大小, 單位:Kbyte
nr(network receive): 透過網路接收的資料大小, 單位:Kbyte
dw(disk read): 透過網路寫入到本機的資料大小, 單位:Kbyte
dr(disk read): 透過網路讀取本機的資料大小,  單位:Kbyte
al(activity log): activity log 更新數(位於meta data區塊)
bm(bit map): bitmap 更新數(位於meta data區塊)
lo(local count): DRBD  request local I/O 數
pe(pending): 送到另一端的 request 數, 但尚未收到回覆
ua(unacknowledged): 收到另一端的 request 但尚未回覆的數量
ap(application pending): 轉送到DRBD且尚未得到回覆的 block I/O數
wo(write order): write ordering method: b(barrier), f(flush), n(none)
oos(out of sync): Amount of storage currently out of sync; in KiB


調整 DRBD 設定

1.修改 /etc/drbd.conf
2.將 drbd.conf 複製並覆蓋到另一主機的 /etc/drbd.conf
3.在兩台主機執行 drbdadm adjust resource

啟用 resource

shell># drbdadm attach resource
shell># drbdadm syncer resource
shell># drbdadm connect resource
或者
shell># drbdadm up resource 

停用 resource

shell># drbdadm disconnect resource
shell># drbdadm detach resource
或者
shell># drbdadm down resource

resource 角色切換

shell># drbdadm primary resource
shell># drbdadm secondary resource

on-line verification

shell># drbdadm verify resource
※執行 verify 的過程並不會影響正常運作, 且可以進行DRBD的角色切換
※可將上述指令加到 crontab 做定期的檢查ㄌ
※ Linux kernel 需支援 crypto API
※ algorithm 可為 sha1, md5, crc32c
※drbd.conf必須有以下設定才有支援verify功能
resource resource
   syncer {
      verify-alg algorithm;
   }
}

傳輸速率

傳輸數率是以bytes為單位, 建議測試I/O及網路的throughput, 取最小的值帶入以下公式
假設I/O throughput 180MB/s, 網路為 110MB/s, 那麼建議值為 33MB/s
110 x 0.3 = 33MB/s
resource resource
    syncer {
        rate 33M;
    }
}

暫時提高傳輸速率, 請在Primary執行以下指令
shell># drbdsetup /dev/drbdnum syncer -r 110M

復原速率
shell># drbdadm adjust resource

split brain recovery

當偵測到兩個node是Primary狀態(或在Disconnect時, 曾經是Primary的狀態)就會發生裂腦的狀況, 可以透過 log 發現 "Split-Brain detected, dropping connection!" 的訊息, 另外的症狀是不管你如何重新 connect , 兩邊會出現 StandAlone (或者另一邊為WFConnection) 的狀態。

除非有設定裂腦自動復原的功能(請參考 configure-split-brain-behavior), 否則需要管理者介入處理, 告訴DRBD要放棄某一邊的資料, 方法如下:

在要放棄資料的那台主機(裂腦受害者)執行
shell># drbdadm secondary resource
shell># drbdadm -- --discard-my-data connect resource

在保留資料那台主機(裂腦生存者)執行
shell># drbdadm connect resource

benchmark

DRBD benchmark

沒有留言:

張貼留言