我尝试在没有分区表的原始磁盘设备/dev/sdb
上设置DRBD,也没有在LVM栈PV / VG / LV上设置DRBD
由于这个磁盘是虚拟的,pipe理程序我使用允许即时磁盘扩展,所以我不想在LVM操作或重新分区的时候扩展我的DRBD文件系统
我的资源定义不能简单一些
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; } }
创build元数据作品
# 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资源?
在创build元数据后, 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
一旦你完成了,你将有一个连接状态“连接”和磁盘状态“不一致/不一致”的设备; 这将始终/只有在两个节点上创build全新的元数据后才是这种情况。 从那里,只需select一个节点即可升级到Primary,这将导致DRBD从Primary – > Secondary同步:
# drbdadm primary data --force
你不应该在正常情况下需要使用“ – force”从这里推广你的DRBD设备。
不过,你也说过:
由于这个磁盘是虚拟的,pipe理程序我使用允许即时磁盘扩展,所以我不想在LVM操作或重新分区的时候扩展我的DRBD文件系统
这可能不适用于DRBD。 DRBD将其元数据放在块设备的末尾,并在该元数据中跟踪块(和其他事物)的数量。 dynamic扩展支持块设备可能会给您带来问题。
在Debian DRBD包的特殊情况下,不需要操作“附加数据”。
这是DRBD启动并运行Debian的最基本的顺序:
/etc/drbd.d/data.res
,通常是为了定义/dev/drbd1
(提醒清理位图操作的卷号1
!) drbdadm create-md data
systemctl start drbd.service
drbdadm cstate data
确认Connected
状态。 如果没有,那么在解决任何服务启动或networking连接问题之前不要继续 。 primary
节点上,清除位图以防止无用的初始同步: drbdadm -- --clear-bitmap new-current-uuid data/1
(记住最后一个参数: resourceName/volumeNumber
) primary
节点上,将节点提升为主节点: drbdadm primary data
从这一点来看,在primary
节点上, /dev/drbd1
设备可用于任何常规块操作,如blockdev
或mkfs
。
小心触发清除位图操作,丢弃辅助节点可能容纳的任何数据。 顺便说一下,初始设置非常方便,因为它会阻止您的辅助节点存储完整写入数个小时,从而强制您的虚拟化层在存储上分配块,这对于精简configuration非常烦人。