Pacemaker Corosync OCF 资源生命周期

Pacemaker Corosync OCF 资源生命周期

目前有人要求我设置 Pacemaker Corosync,这对我来说是全新的。我目前有一个 2 节点集群。我想要做的是,如果活动节点发生故障,将 IP 重新分配给另一个节点。

因此,似乎可以这样做的方法是创建一个资源代理。我读过一些关于创建 OCF 资源的教程。我读过 OCF 资源,似乎有这些东西叫做操作。我不明白的是,这些操作是何时以及由谁调用的?

如果资源在主节点上运行,那么当主节点发生故障时,资源会发生什么情况?它会自动在另一个节点上运行吗?

此外,由于我需要在调用操作时执行一些步骤,我如何检查在我的脚本中调用了哪个操作,是否存在变量?

答案1

有一个名为的软件包resource-agents,其中包含一组常用的 Pacemaker 资源代理。IPaddr2其中一个用于在集群中移动虚拟 IP。有关配置详细信息,您可以发出以下命令:pcs resource describe ocf:heartbeat:IPaddr2

如果你确实需要编写自己的资源代理(这个主题太深奥,无法在单个 StackExchange 答案中描述),那么你应该首先在 github 上阅读一份 OCF RA 开发指南resource-agentshttps://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.asc

答案2

您想要知道的是,pacemaker 不是一种“节点故障转移”解决方案(其中备份节点采用故障节点的配置),而是一种“资源故障转移”解决方案,其中各个故障资源被移动到备份节点。

因此您无需配置主机地址,但服务地址(也称为浮动地址或者动态地址)。处理此类地址的一个资源代理 (RA) 是IPaddr2。(通常,您可以使用类似 的命令获取任何 RA 的描述crm ra info,即:crm ra info IPaddr2)。

然后你必须配置你的实际(网络)资源使用该动态地址。要做到这一点,您必须确保您的资源与您的 IP 地址(称为主机托管)。此外,您的资源应在 IP 地址之后启动(称为订购)。

A资源组可以帮助确保没有共享资源的简单配置的共置和排序(例如:当多个服务使用相同的 IP 地址时)。

现在进行操作:一个节点 (域控制器或者指定协调员(DC))运行集群资源管理器(crm)又使用本地资源管理器在节点上执行操作。通常这些操作包括start启动资源、monitor检查资源状态(有时也称为probe)以及stop停止资源(还有其他一些操作,但这些是基本操作)。如果资源无法停止,crm 会尝试栅栏(STONITH 节点关闭)以确保该节点上没有任何资源继续运行。STONITH 成功后,该资源(以及受该节点的 STONITH 影响的所有其他资源)将在另一个节点上启动。

还有很多话要说,但这些应该足够快速介绍了。也许可以先从从头开始构建集群

相关内容