我在几台 ubuntu12.04 主机上安装了 pacemaker-corosync。几个克隆资源和一个原始资源。原始资源(即新启动任务)称为“dummy”。dummy 在任何给定时刻只能在一个节点上运行,约束允许它在机器之间迁移。
我希望起搏器监控它可能运行的每个节点并关闭“多余”的实例 - 只保持一个运行。
原始虚拟 upstart:虚拟 \ op 监控间隔="15s" \ meta 目标角色="已启动"
那么上述定义应该是怎样的呢?
在 5.4 中http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html 有一个具有默认 start_stop 的 multiple_active。这将是第二好的事情 - 停止所有实例,仅在得分最高的节点上启动一个实例。
答案1
如果我理解正确的话,如果 Pacemaker 检测到有多个实例正在运行,您希望保持最老的实例运行。对于 Pacemaker 来说这是不可能的,我不确定您是否可以可靠地检测到“最老的进程”,例如考虑服务重启。因此,您可以使用当前 Pacemaker 实现的最接近的就是您已经提到的“multiple_active”选项。