/dev/sdb1 设备或资源繁忙

/dev/sdb1 设备或资源繁忙

我正在 virtualbox 中测试 2 节点 drbd 集群。我已连接虚拟磁盘 (/dev/sdb/) 并将其挂载到 /mnt/drbd0 目录。在使用 drbdadm create 命令创建资源时,我收到资源 (/dev/sdb1) 繁忙错误。没有与 /mnt/drbd0 关联的活动进程。

答案1

您不应该挂载连接的块设备/dec/sdb。相反,您应该像已经拥有的那样连接它,然后在卸载时在两个节点上创建 DRBD 元数据,在两个节点上启动 DRBD 设备,选择一个节点并将 DRBD 设备提升到Primary该节点,最后/dev/drbdX在那里创建并挂载生成的设备。

要从当前位置到达那里,您首先需要卸载两个节点上的块设备:

# umount /dev/sdb

然后,按照我在上面的摘要中概述的步骤进行操作:

在两个节点上(替换为您的 DRBD 资源的名称):

# drbdadm create-md <res>
# drbdadm up <res>

如果拒绝覆盖文件系统,您可能需要擦除或缩小(xfs 不支持缩小)文件系统,以便为 DRBD 的元数据腾出空间create-md。如果您只是在测试,没有重要数据,我只会擦除它:# wipefs -a /dev/sdb

然后您应该在输出中看到类似这样的内容drbdadm status

r0 role:Secondary
  disk:Inconsistent
  node-b role:Secondary
    peer-disk:Inconsistent

如果节点卡在某种Connecting状态,请检查配置文件中的 IP 和节点的防火墙规则。

一旦看到它们Inconsistent/Inconsistent,您就可以选择其中一个节点Primary并开始初始同步。然后,在同一个节点上,(重新)创建文件系统并挂载 DRBD 设备:

# drbdadm primary <res> --force
# mkfs.ext4 /dev/drbd0 # or some other filesystem
# mount /dev/drbd0 /mnt/drbd0

然后,您写入的任何内容都/mnt/drbd0将被复制到对等节点。要测试一切是否正常,您可以从节点卸载设备Primary,将设备降级为辅助设备(# drbdadm secondary <res>), promote the device to主设备),并将其安装在对等节点上,您应该会看到您的文件系统已被复制。

请注意,在任何正常情况下您都不应使用该--force标志;仅当您创建新的 DRBD 设备或为现有设备重新创建元数据时才应使用该标志。

相关内容