在DRBD進入使用階段之後,要經常檢視它的工作狀态,通過這些狀态來判斷DRBD運作情況。
1) 使用drbd-overview指令觀察狀态
最為簡便的方式就是運作drbd-overview指令
#
drbd-overview0:r0 Connected Primary/Secondary UpToDate/UpToDate C r—– /nfs ext4 20G 45M 19G 1%
2) 通過僞檔案系統/proc/drbd 檔案來運作狀态
cat /proc/drbdversion: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–
ns:0 nr:0 dw:664 dr:2017 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
狀态訓示
第一行: 軟體的版本号
第二行: 有關建構DRBD的特定資訊
第三行: DRBD的主要資訊
cs(Connect State):表示網絡連接配接的狀态
ro(Role):表示運作節點的角色,Primary/Secondary 表示本機為主
ds(Disk State):表示目前的硬碟狀态
Replication protocol:表示目前複制所使用的協定,可以是ABC
I/O Flags:6個I/O輸入輸出标志,從各個方面反映了本地資源的狀态
Performance indicators:性能名額,這是一組統計資料和計數器,反映出資源的利用情況和性能
3) 連接配接狀态
連接配接狀态可以通過監控/proc/drbd檔案得到具體資訊,也可以使用drbdadm cstate指令來擷取。
drbdadm cstate r0Connected
連接配接的狀态也有可能是以下其中的一種:
StandAlone:沒有可用的網絡配置,資源沒有被連接配接,或者執行過 drbdadm disconnect resource 指令,例子如下:
drbdadm disconnect allStandAlone
4) 資源角色
資源連接配接狀态可以通過/proc/drbd或者使用drbdadm role resource來擷取。
drbdadm role allPrimary/Secondary
可能的角色為:
Primary:目前的資源是Primary角色,可以進行讀取和定稿的操作。該角色在兩個節點中僅能出現在一個節點[雙節點模式除外]
Secondary:表示該角色為從節點,這種角色下既不能讀取也不寫入。這種角色可能會發生在一個或者兩個節點上。
第一行:
Unknown:這種角色表示目前資源的角色不。本地資源不會有這種狀态,它僅出現在用來表示對點的資源角色,而且僅在無法連接配接模式下。如下:
0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown r—–
ns:660 nr:4 dw:664 dr:1029 al:5 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
5) 磁盤狀态
磁盤狀态可以通過/proc/drbd或者使用drbdadm dstate resource來擷取。
# drbdadm dstate r0
UpToDate/UpToDate
首先輸入的是本地硬碟狀态,後面的是遠端硬碟狀态。以下為硬碟的狀态:
Diskless:無盤狀态,目前沒有與DRBD驅動相關塊裝置。這種狀态通常代表着資源沒有被附加上背景裝置。可能是通過使用 rbdadm detach指令手工分離了背景裝置。或者由于底層I/O的錯誤而自動分離。
Attaching:附加狀态,這種狀态是在讀取中繼資料時出現的一種瞬間狀态。
Failed:失敗狀态,也是一種瞬間狀态,由于本地塊裝置報告,接着就是一個I/O錯誤,下一個狀态就是Diskless.
Negotiating:協商狀态,在已經連接配接的DRBD裝置上進行“Attach”讀取中繼資料的一個瞬間狀态。
Inconsistent:資料不一緻狀态這種狀态出現兩個DRBD節點上的資源在建立了新的資源後立即建立連接配接時(就是完全初始化同步之前),這種情況下兩個資源節點都會出現,另一種可能就是在同步過程中一個節點出現這種狀态,而且是出現在同步的目标上。
Outdated:資料過期狀态,資源資料一緻,但是已經過期,這種情況需要進行進一步處理。
DUnknown:硬碟不明确狀态,如果網絡連接配接無效,那麼這種狀态将會被用于表示對點磁盤的狀态。
Consisten:資料一緻狀态,在沒有連接配接時資料一緻的狀态,當連接配接完成後将會決定資料的狀态是UpToDate狀态還是Outdated狀态。
UpToDate:資料一緻狀态,而且是最新的資料一緻狀态。這也是正常狀态模式。
6) I/O狀态标志
在/proc/drbd檔案中提供了有關I/O操作資訊,這種标志資訊一共有6個,可能的值如下:
- I/O暫停資訊狀态:可能看到的值兩個,不是r就是s,r表示正在運作,s表示暫停,通過為r.
- 串行重新同步狀态:當資源重新同步時,但是因為重新同步延時,那麼這個标志将會變為a,通常為”-“.
- 對點初始化同步延時狀态:在資源等待重新同步時,但是本地節點的使用者延時了同步,那麼這個狀态将變為”u”
- 本地I/O阻塞狀态:通常為“-”,可能還會出現如下标志:
d:内部原因導緻I/O阻塞,例如,瞬間狀态出現時。b:背景裝置i/o出現阻塞。n:網絡字出現阻塞。a:同時出現裝置i/o阻塞和網絡阻塞。
- 活動日志更新暫時狀态:當活動日志更新暫停時,這個标志變成了s。
7) 性能名額
在預覽/proc/drbd時,每個資源的第二行都包含了計數器和路徑成本。
# cat /proc/drbd
ns:524420 nr:0 dw:525084 dr:2041 al:132 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
ns(network send):通過網絡連接配接發送到對端的資料量,機關KB.
nr(network receive):通過網絡連接配接從對點接收的資料量,機關KB.
dw(disk write):向本地硬碟寫入網絡資料,機關KB.
dr(disk read):網絡從本地硬碟讀取的資料量,機關KB.
al(activity log):中繼資料活動日志的更新次數。
bm(bit map):中繼資料區域更新的資源。
lo(local count):由DRBD産生的本地I/O請求資料。
pe(pending):就是等待響應,已經發送到聖戰,但是還沒有得到對端回應的數量。
ua(unacknow wledged):就是未确認,通過網絡連接配接收到對方的請求,但是還沒有做出處理的數量.
ap(application pending):轉發到DRBD的I/O請求,仍然沒有被DRBD所響應。
ep(epochs):epoch對象的數,通常為1。當使用barrier或者none寫順序方法時,可能會增加底層I/O負荷。
wo(write order):目前使用的寫順序的方法:b(barrier)/f(flush)/d(drain)/n(none)。
oos(out of sync):目前沒有同步的資料總數量,機關為KB.
8) 啟用/禁用資源
//啟用資源r0
# drbdadm up r0
提示:也可以将r0更改為all
//禁用資源r0
# drbdadm down r0
9) 重新配置資源DRBD在運作時,允許使用者重新配置資源,為了實作這個目的,需要進行以下操作:
1、在DRBD的配置檔案/etc/drbd.conf(包括所有資源)中進行有必要的改變
2、在兩個節點之間同步DRBD的配置檔案
3、在兩個節點上執行drbdadm adjust <source>指令 (在執行此指令時,建議添加-d參數)
10) 導出目前資源配置資訊
# drbdadm dump all
# /etc/drbd.conf
common {
protocol C;
}
# resource r0 on node2.dd.com: not ignored, not stacked
resource r0 {
on node1.dd.com {
device /dev/drbd0 minor 0;
disk /dev/sdb1;
address ipv4 192.168.198.201:7788;
meta-disk internal;
}
on node2.dd.com {
address ipv4 192.168.198.202:7788;
syncer {
rate 100M;