corosync,起搏器和动物园管理员如何相互关联?

时间:2016-03-24 06:41:37

标签: python cloud cluster-computing high-availability

据我所知,Corosync是消息传递层,Pacemaker是启动和停止服务的资源管理器,Zookeeper查看服务和资源,我们在zookeeper注册资源和服务。任何人都可以给我一个工作实例,说明他们的工作方式和工作细节......

1 个答案:

答案 0 :(得分:1)

Corosync 是群集层:它允许主机发现彼此,选择主人并交换消息

Pacemaker 是资源层:考虑到Corosync提供的集群状态和资源配置,它会计算停止和启动资源的位置。如果群集状态发生更改(添加或删除主机时),Pacemaker会决定要执行的操作(例如,将资源移动到其他主机)。

显然,这两个几乎总是一起运行,即使Pacemaker可以使用除Corosync之外的其他集群层。

Zookeeper 与Corosync / Pacemaker堆栈没有直接关系。它是一种分布式配置服务。它提供了几个允许程序的原语:

  • 分享一个通用配置(您可以将其视为键/值存储)
  • 处理群集成员资格(谁是已连接,谁不是,谁在组中注册)
  • 进行选举
  • 分享锁
  • 通过队列交换消息
  • 等...使用Zookeeper原语可以完成许多有趣的事情。例如,请参阅https://zookeeper.apache.org/doc/r3.5.0-alpha/recipes.html

当您创建程序,然后使用Pacemaker / Corosync以冗余/分布式方式运行它时,您可以使用Zookeeper共享其配置,选择主服务器,共享锁等。但是其他系统存在,这取决于什么是您的需求(例如,如果您只需要队列,AMQP服务器会更好,或者如果您需要存储大量的键/值数据,NOSQL服务器可能更合适)。