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 的工作是在节点之间复制块设备。