OpenStack高可用集群(上册):原理与架构》—3.5 Pacemaker集群配置信息管理

网友投稿 666 2022-05-29

3.5 Pacemaker集群配置信息管理

Pacemaker集群是通过CIB以XML的形式进行定义的,而CIB主要由集群配置信息与集群状态信息两大部分构成。在Pacemaker集群中,未进行任何配置(初始集群)的集群拥有最简单的CIB,初始集群的CIB信息输出如下:

《OpenStack高可用集群(上册):原理与架构》—3.5 Pacemaker集群配置信息管理

num_updates="0">

上述初始集群的CIB输出信息中包含了构成CIB的主要模块,其中开始和末尾的cib标记表明中间内容为集群的CIB信息,而CIB中的主要内容又分为配置段(configuration标记)和状态段(status标记),同时配置段又分为crm_config、nodes、resources、const-raints四个部分。CIB中的配置段主要包含当前集群的配置信息,是CIB中最为核心的信息,该配置段的信息直接决定了当前集群的资源配置以及集群所能提供的服务,并决定了这些服务彼此之间的联系,以及服务与节点之间的约束和限制。而CIB中的状态信息段主要包含有集群当前的资源运行状态信息,状态信息直接反应了当前集群的运行情况,通常而言,CIB中的集群状态信息主要取决于集群配置信息。

3.5.1 Pacemaker集群状态信息

集群状态信息包含了集群中每个节点所运行资源的历史信息,根据这些资源的历史数据,集群PE将会规划出集群下一阶段应该实现的最理想状态。集群状态信息源自每个节点上的本地资源管理器进程(LRMd),集群运行状态信息会在运行时动态刷新,因此集群不会将状态信息永久性写入磁盘进行保存(这对集群而言并无意义),同时也不建议管理员手动更改集群状态信息,因为集群状态信息的变更应该由集群资源管理器自动刷新。

在Pacemaker集群中,查看集群状态信息的工具是CRM_MON,CRM_MON是一个用于显示活动Pacemaker集群当前状态信息的命令行工具,利用此工具可以通过不同的模式来显示集群的各种状态信息。用户可以在限定节点或资源的前提下运行CRM_MON命令行工具,而其集群信息的输出既可以是静态单次模式,也可以是动态刷新模式,CRM_MON的输出信息即包含以节点和资源为组执行的操作列表,也包含资源运行失败的相关信息。使用CRM_MON工具,用户可以检测到集群中的非法操作所引起的集群状态变化,同时还可以通过CRM_MON工具进行集群故障仿真等验证性的操作,关于CRM_MON的详细使用信息可以通过crm_mon --help命令进行查看。

在CRM_MON命令中,通过不同的mode参数和options参数组合,用户可以将Pacemaker集群当前状态信息以不同的形式输出并进行查看,例如通过-f参数可以查看资源运行失败的信息,通过-h参数可以将结果以HTML的形式输出到指定的文件中,通过-i参数可以指定输出结果自动刷新的时间间隔,通过-l参数可以将结果定向到标准输出并退出,通过-o参数可以查看资源的操作历史等。而在OpenStack高可用集群部署中,当集群配置完成并启动资源后,通过简单带有-f和-l参数的CRM_MON命令,便可看到OpenStack高可用集群在正常运行下的状态信息,在每个资源都正常运行的情况下,OpenStack高可用集群的状态信息输出如下:

[root@controller1-vm ~]# crm_mon -f -1

Last updated: Fri Apr 15 16:49:40 2016          Last change: Sun Apr 10 21:37:31 2016 by haCluster via crmd on controller3-vm

Stack: corosync

Current DC: controller3-vm (version 1.1.13-a14efad) - partition with quorum

5 nodes and 231 resources configured

Online: [ controller1-vm controller2-vm controller3-vm ]

RemoteOnline: [ computer1 computer2 ]

fence1 (stonith:fence_xvm):    Started controller3-vm

fence2 (stonith:fence_xvm):    Started controller3-vm

fence3 (stonith:fence_xvm):    Started controller3-vm

Clone Set: lb-HAproxy-clone [lb-HAproxy]

Started: [ controller1-vm controller2-vm controller3-vm ]

vip-db (ocf::heartbeat:IPaddr2):       Started controller1-vm

vip-RabbitMQ   (ocf::heartbeat:IPaddr2):       Started controller1-vm

vip-keystone   (ocf::heartbeat:IPaddr2):       Started controller2-vm

vip-glance     (ocf::heartbeat:IPaddr2):       Started controller3-vm

vip-cinder     (ocf::heartbeat:IPaddr2):       Started controller1-vm

vip-swift      (ocf::heartbeat:IPaddr2):       Started controller2-vm

vip-neutron    (ocf::heartbeat:IPaddr2):       Started controller3-vm

vip-nova       (ocf::heartbeat:IPaddr2):       Started controller1-vm

vip-horizon    (ocf::heartbeat:IPaddr2):       Started controller2-vm

vip-heat       (ocf::heartbeat:IPaddr2):       Started controller3-vm

vip-ceilometer (ocf::heartbeat:IPaddr2):       Started controller1-vm

vip-qpid       (ocf::heartbeat:IPaddr2):       Started controller2-vm

Master/Slave Set: Galera-master [Galera]

Masters: [ controller1-vm controller2-vm controller3-vm ]

Clone Set: Memcached-clone [Memcached]

Started: [ controller1-vm controller2-vm controller3-vm ]

……

从CRM_MON输出的OpenStack高可用集群的当前状态信息中,可以看到集群最近一次状态信息更新的时间和最近一次集群配置变更的时间,还可以看到当前集群的Stack是Corosync(也可以选择Heatbeat),同时能看到当前集群的DC是controller3-vm节点。在该集群中,一共配置了5个节点(三个本地控制节点和两个远端计算节点)和231个资源(以节点为单位进行资源统计)。此外,通过集群状态信息,还能看到OpenStack相关的服务在每个节点上的运行情况。当OpenStack高可用集群部署完成并正常运行后,全部OpenStack相关服务将作为一个完整的Pacemaker集群资源而运行,资源之间以及资源与节点之间的关系通过Pacemaker的资源约束进行限制,为了排查集群故障和检查OpenStack相关服务的运行情况,经常需要通过CRM_MON工具来查看集群的运行状态,例如通过-f参数来查看当前集群中OpenStack相关服务运行失败的历史信息。

OpenStack 云计算

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:程序员深夜用 Python 跑神经网络,只为用中二动作关掉台灯
下一篇:GaussDB T单机部署
相关文章