![Linux 心跳:哪一个成为主心跳?](https://linux22.com/image/530916/Linux%20%E5%BF%83%E8%B7%B3%EF%BC%9A%E5%93%AA%E4%B8%80%E4%B8%AA%E6%88%90%E4%B8%BA%E4%B8%BB%E5%BF%83%E8%B7%B3%EF%BC%9F.png)
假设我使用 Linux 心跳和起搏器将 2 台机器配置为主动/被动,然后我在节点 1 中创建一个资源组并提交它。如果我正确无误,则配置将传播到节点 2。资源组将监视机器中的一项服务。
我的问题是,由于两个节点运行相同的服务,哪一个会首先成为活动节点?或者 Linux 心跳会决定(两者有同等可能性)?
答案1
使用 Pacemaker 时,您无需区分“主动节点”和“被动节点”。所有集群节点(可能超过 2 个)都可以平等地运行服务,并且 CIB 数据库中的规则会告诉 CRM(Pacemaker 的资源管理器)哪个节点可以运行哪些服务。
如果您将服务配置为单个实例,该实例可以在两个节点上运行且不受任何限制,那么您无法确定哪个节点将运行它。如果您有两个这样的服务,那么最终可能会出现一个在一个节点上运行,另一个在另一个节点上运行的情况。对于第一个服务,节点 1 将处于活动状态,对于第二个服务,节点 2 将处于活动状态。
您可以通过声明一些常量来定义实际的偏好。例如:“在运行服务 2 的节点上运行服务 1”或“始终优先使用节点 1 来提供两种服务”。
通常,您有一个定义“逻辑主服务器”的服务 - 它可以是在主要状态下的 IP 地址或 DRBD 卷 - 然后所有其他服务都依赖于它,并且您可以通过设置主要服务的首选项来选择“主服务器”。
有关设置约束的详细信息,请参阅 Pacemaker 文档。
当 Heartbeat 本身与 Pacemaker 一起使用时,它不会对主/从状态或正在运行的资源做出任何决定。