Drbd

原始磁碟塊設備上的 DRBD

  • October 20, 2020

我嘗試在/dev/sdb沒有分區表的原始磁碟設備上設置 DRBD,也沒有 LVM 堆棧 PV/VG/LV

由於這個磁碟是虛擬的,並且我使用的管理程序允許動態磁碟擴展,我不想在擴展我的 DRBD 文件系統時為 LVM 操作或重新分區而煩惱

我的資源定義再簡單不過了

resource data {
 device  /dev/drbd1;
 meta-disk internal;
 disk    /dev/sdb;
 on node1 {
   address 10.10.10.16:7789;
 }
 on node2 {
   address 10.10.10.17:7789;
 }
}

創建元數據作品

# drbdadm create-md data
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.

但附加操作失敗

# drbdadm attach data
1: Failure: (127) Device minor not allocated
additional info from kernel:
unknown minor
Command 'drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal' terminated with exit code 10

錯誤消息聽起來確實像命令期望分區表索引作為設備次要程式碼。

我應該如何將原始設備附加到 DRBD 資源?

在 Debian DRBD 包的非常特殊的情況下,不需要操作“附加數據”。

這是讓 DRBD 啟動並在 Debian 上執行的最小順序:

  • /etc/drbd.d/data.res在兩個節點上創建資源文件,通常用於定義/dev/drbd1(提醒此卷號1以進行清除點陣圖操作!)
  • drbdadm create-md data在兩個節點上呼叫
  • 在兩個節點上啟動服務,他們應該等待對方准備好:systemctl start drbd.service
  • 用確認Connected狀態drbdadm cstate data。如果沒有,請在解決任何服務啟動或網路連接問題之前不要進一步。
  • 僅在primary節點上,清除點陣圖以防止無用的初始同步:(drbdadm -- --clear-bitmap new-current-uuid data/1注意最後一個參數resourceName/volumeNumber:)
  • 僅在primary節點上,將節點提升為primarydrbdadm primary data

從那時起,在primary節點上,/dev/drbd1設備可用於任何正常塊操作,例如blockdevor mkfs

小心觸發清除點陣圖操作,它使輔助節點上的任何數據都無法恢復。順便說一句,初始設置非常方便,因為它可以防止您的輔助節點儲存在數小時內完全寫入,強制您的虛擬化層在儲存上分配塊,這對於精簡配置來說很煩人。

drbdadm attach data不是您在創建元數據後要使用的唯一命令。

以下過程之一應該可以讓您的設備啟動:

drbdadm create-md data
drbdadm up data
  • 或者 -
drbdadm create-md data
drbdsetup-84 new-resource data
drbdsetup-84 new-minor data 1 0 
drbdmeta 1 v08 /dev/sdb internal apply-al 
drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal
drbdsetup-84 connect data ipv4:10.10.10.16:7789 ipv4:10.10.10.17:7789 --protocol=C

完成此操作後,您將擁有一個連接狀態為“已連接”且磁碟狀態為“不一致/不一致”的設備;這將始終/僅在您在兩個節點上創建全新的元數據後才會出現。

從那裡,只需選擇一個節點來提升到 Primary,這將導致 DRBD 從Primary => Secondary同步:

# drbdadm primary data --force 

在一般情況下你永遠不應該使用--force從這裡開始推廣你的 DRBD 設備。

但是,您也說過:

由於這個磁碟是虛擬的,並且我使用的管理程序允許動態磁碟擴展,我不想在擴展我的 DRBD 文件系統時為 LVM 操作或重新分區而煩惱

這可能不適用於 DRBD。DRBD 將它的元數據放在塊設備的末尾,並且在該元數據中跟踪塊(和其他事物)的數量。動態擴展備份塊設備可能會給您帶來問題。

引用自:https://serverfault.com/questions/804217