ph033378 发表于 2015-9-10 11:49:08

High Availability手册(2): 架构


  最底层是通信层corosync/openais
  负责cluster中node之间的通信
  上一层是Resource Allocation Layer,包含下面的组件:
  CRM Cluster Resouce Manager
  是总管,对于resource做的任何操作都是通过它。每个机器上都有一个CRM。
  CIB Cluster Information Base
  CIB由CRM管理,是在内存中的XML数据库,保存了cluster的配置和状态。我们查询出来的configuration都是保存在CIB里面的。nodes, resources, constraints, relationship.
  DC Designated Coordinator
  每个node都有CRM,会有一个被选为DC,是整个Cluster的大脑,这个DC控制的CIB是master CIB,其他的CIB都是副本。
  PE Policy Engine
  当DC需要进行一些全局配置的时候,首先由PE根据当前的状态和配置,计算出将来的状态,并生成一系列的action,使得cluster从初始状态变为结果状态。PE仅仅在DC上运行。
  LRM Local Resource Manager
  本地的resource管理,调用resource agent完成操作,启停resource,将结果返回给CRM
  再上一层是Resource Layer
  包含多个resource agent。resource agent往往是一些shell script,用来启动,停止,监控resource的状态。

  root@pacemaker01:~# ps aux | grep pace
root      33630.00.1818123748 ?      Ss   Jul28   0:06 /usr/lib/pacemaker/lrmd
haclust+33650.01.1 114428 23808 ?      Ss   Jul28   0:03 /usr/lib/pacemaker/pengine
root   201030.00.2 1074964532 pts/2    S    10:06   0:00 pacemakerd
haclust+ 201050.00.6 110244 12560 ?      Ss   10:06   0:00 /usr/lib/pacemaker/cib
root   201060.00.3 1072486680 ?      Ss   10:06   0:00 /usr/lib/pacemaker/stonithd
haclust+ 201070.00.2966404148 ?      Ss   10:06   0:00 /usr/lib/pacemaker/attrd
haclust+ 201080.00.4 1665369172 ?      Ss   10:06   0:00 /usr/lib/pacemaker/crmd   流程
  比如要添加一个Cluster IP

[*]命令行将Cluster IP加入CIB
[*]DC将CIB的修改同步到所有的crmd
[*]DC上的PE计算如何部署这个Cluster IP,在哪个node上,做什么操作
[*]DC将操作列表同步到所有的crmd
[*]每个crmd调用本地的lrmd做真正的部署
[*]lrmd调用resource agent来启动或者停止一些操作
[*]lrmd操作完,将结果返回给DC
页: [1]
查看完整版本: High Availability手册(2): 架构