Ubuntu
帶有外部元磁碟的 DRBD
我正在嘗試使用 DRBD 創建故障轉移,並且我有兩個分區。
分區 1) /dev/sda4 是為我將要創建的 KVM 設置的。分區 2) /dev/sda5 用於 DRBD 元數據
我的配置文件在下面
resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret "SECRET_KEY"; } on Server1{ device /dev/drbd0; disk /dev/sda4; address IP:7788; meta-disk /dev/sda5; } on Server2{ device /dev/drbd0; disk /dev/sda4; address IP:7788; meta-disk /dev/sda5; }
}
當我執行 drbdadm create-md r0 它執行成功但它在兩個分區上創建 /dev/drbd0 。
├─sda4 8:4 0 7.2T 0 part │ └─drbd0 147:0 0 7.2T 1 disk └─sda5 8:5 0 399M 0 part └─drbd0 147:0 0 7.2T 1 disk
據我了解,它應該只在 /dev/sda5 的元磁碟上創建它。我設置元磁碟的原因是避免對 sda4 進行任何寫入。我的推理是正確的還是我遺漏了什麼。
終於想通了。通過將捲組放在 DRBD0 之上,現在一切正常。
我在設備上創建卷組時確實遇到了問題,必須將過濾器添加到 lvm.conf
我得到一個錯誤說
Cannot use device /dev/drbd/ with duplicates
我剛剛將這個添加到設備部分
filter = [ "r|/dev/sda4|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]
現在一切都很好
我確認這是
lsblk
在使用外部元數據和 DRBD 時輸出在 AlmaLinux 8.5 上的樣子。DRBD 設備只是一個虛擬塊設備,它在您的設置中的兩個分區上分層。它按預期工作。如果您使用其他方法/實用程序檢查塊設備,您會發現您只有一個
/dev/drbd0
,並且您創建的元數據分區是您期望的大小。例如,我使用兩個 LVM 卷的配置:
resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret "SECRET_KEY"; } on Server1{ device /dev/drbd0; disk /dev/drbdpool/data; # 1GiB lvm on /dev/sdb meta-disk /dev/drbdpool/meta; # 4MiB lvm on /dev/sdb 192.168.1.11:7788; } on Server2{ device /dev/drbd0; disk /dev/drbdpool/data; # 1GiB lvm on /dev/sdb meta-disk /dev/drbdpool/meta; # 4MiB lvm on /dev/sdb 192.168.1.12:7788; }
完全顯示了我的期望
/proc/partitions
:# cat /proc/partitions major minor #blocks name 8 0 20480000 sda 8 1 2048000 sda1 8 2 18430976 sda2 8 16 8388608 sdb 253 0 4096 dm-0 253 1 1048576 dm-1 147 0 1048576 drbd0
blockdev --report
看起來也不錯:# blockdev --report /dev/drbd0 RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 0 1073741824 /dev/drbd0 # blockdev --report /dev/drbdpool/meta RO RA SSZ BSZ StartSec Size Device rw 8192 512 4096 0 4194304 /dev/drbdpool/meta # blockdev --report /dev/drbdpool/data RO RA SSZ BSZ StartSec Size Device rw 8192 512 4096 0 1073741824 /dev/drbdpool/data
這可能
lsblk
是令人困惑的地方:# cat /sys/block/drbd0/size 2097152 # cat /sys/block/dm-0/size 8192 # cat /sys/block/dm-1/size 2097152 # cat /sys/block/dm-0/holders/drbd0/size 2097152 # cat /sys/block/dm-1/holders/drbd0/size 2097152