原始磁盘块设备上的DRBD

我尝试在没有分区表的原始磁盘设备/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的最基本的顺序:

  • 在两个节点上创build您的资源文件/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设备可用于任何常规块操作,如blockdevmkfs

小心触发清除位图操作,丢弃辅助节点可能容纳的任何数据。 顺便说一下,初始设置非常方便,因为它会阻止您的辅助节点存储完整写入数个小时,从而强制您的虚拟化层在存储上分配块,这对于精简configuration非常烦人。