DRBD 服务与 drbdadm

DRBD 服务与 drbdadm

DRBD v9.17(内核v9.1.4)

我试图了解drbd作为服务运行与使用该drbdadm工具手动运行时的典型角色,该工具似乎比我在网上看到的一些演练更新。

何时应该使用该服务与drbdadm工具,以及在故障转移pacemaker控制方面适合什么地方?drbd

我已经使用手动创建了一个资源,drbdadm并将其启动,现在UPToDate在两个节点上使用状态命令显示。我需要弄清楚如何在起搏器中实现该功能以进行故障转移,我只是认为我在这里错过了大局 - 在起搏器中添加资源似乎比浮动 IP 更复杂一些...谢谢阅读!

答案1

drbdadm从一开始就存在,所以它并不比任何教程新。

启用后,该服务将加载 DRBD 内核模块并在启动时调出节点上的所有 DRBD 设备(就像drbdadm up all以前那样),但不会尝试将其提升为主节点,并且无法挂载设备。这就是 Pacemaker 经常与 DRBD 结合使用的用途,将 DRBD 节点提升为 Primary,然后使用 DRBD Primary 启动服务。

DRBD 9.x 默认情况下启用了自动升级功能,因此,如果您尝试挂载(或以其他方式访问)设备而不首先将其升级为主要节点,并且当前没有其他节点为主要节点,它将自动将自身升级为主要节点所以可以访问它。

Pacemaker 是一个集群资源管理器,因此它的工作是跨一系列节点启动/停止/监视服务,并确保这些资源的正确排序和位置。 DRBD 在 Pacemaker 中被控制为“多状态”(或ms)克隆资源,它基本上是具有多个状态的克隆集(在 DRBD 的情况下为“主”和“辅助”,但这在数据库克隆集中可能是“主”和“备用”)。

在 2 节点 Pacemaker 集群中配置的DRBD 资源示例片段r0如下所示:

primitive p_drbd_r0 ocf:linbit:drbd \
    params drbd_resource=r0 \
    op start interval=0s timeout=240 \
    op promote interval=0s timeout=90 \
    op demote interval=0s timeout=90 \
    op stop interval=0s timeout=100 \
    op monitor interval=29 role=Master \
    op monitor interval=31 role=Slave
ms ms_drbd_r0 p_drbd_r0 \
    meta master-max=1 master-node-max=1 \
    notify=true clone-max=2 clone-node-max=1

如果您想要管理在 上挂载文件系统r0,则需要添加文件系统资源和将其绑定到主 DRBD 节点的约束:

primitive p_fs_drbd Filesystem \
    params device="/dev/drbd0" directory="/drbd" \
    fstype=xfs options="noatime,nodiratime" \
    op start interval=0 timeout=60s \
    op stop interval=0 timeout=60s \
    op monitor interval=20 timeout=40s
colocation cl_fs-with-ms_drbd_r0 inf: p_fs_drbd:Started ms_drbd_r0:Master
order o_ms_drbd_r0-before-fs ms_drbd_r0:promote p_fs_drbd:start

在 Pacemaker 中管理 DRBD 设备之前,您必须先在 DRBD 设备上创建文件系统。

DRBD 的工作是在节点之间复制块设备。

相关内容