原始磁碟塊設備上的 DRBD
我嘗試在
/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
節點上,將節點提升為primary
:drbdadm primary data
從那時起,在
primary
節點上,/dev/drbd1
設備可用於任何正常塊操作,例如blockdev
ormkfs
。小心觸發清除點陣圖操作,它使輔助節點上的任何數據都無法恢復。順便說一句,初始設置非常方便,因為它可以防止您的輔助節點儲存在數小時內完全寫入,強制您的虛擬化層在儲存上分配塊,這對於精簡配置來說很煩人。
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 將它的元數據放在塊設備的末尾,並且在該元數據中跟踪塊(和其他事物)的數量。動態擴展備份塊設備可能會給您帶來問題。