《OpenStack高可用集群(上册):原理与架构》—3.6 Pacemaker集群管理工具PCS
3.6 Pacemaker集群管理工具PCS
3.6.1 PCS命令行工具
3.5节介绍了用cibadmin命令行工具来查看和管理Pacemaker的集群配置信息,正如前文所述,集群CIB中的配置信息量非常大而且以XML语言呈现,对于仅由极少数节点和资源所组成的集群,cibadmin也许是个可行方案。但是,对于拥有大量节点和资源的大规模集群,通过编辑XML文件来查看修改集群配置显然是非常艰难而且极为不现实的工作,由于XML文件内容条目极多,因此用户在修改XML文件的过程中极易出现人为错误。而在开源社区里,简单实用才是真正开源精神的体现,对于开源系统中任何文件配置参数的修改,简化统一的命令行工具才是最终的归宿。
随着开源集群软件Pacemaker版本的不断更新,社区推出了两个常用的集群管理命令行工具,即集群管理员最为常用的pcs和crmsh命令。本文使用的是pcs命令行工具,关于crmsh的更多使用方法和手册可以参考Pacemaker的官方网站。在Pacemaker集群中,pcs命令行工具几乎可以实现集群管理的各种功能,例如,全部受控的Pacemaker和Corosync配置属性的变更管理都可以通过pcs实现。此外,需要注意的是,pcs命令行的使用对系统中安装的Pacemaker和Corosync软件版本有一定要求,即Pacemaker1.1.8及其以上版本,Corosync2.0及其以上版本才能使用pcs命令行工具进行集群管理。pcs命令可以管理的集群对象类别和具体使用方式可以通过--help参数查看:
[root@ controller1-vm ~]# pcs --help
Usage: pcs [-f file] [-h] [commands]...
Control and configure Pacemaker and corosync.
Options:
-h, --help Display usage and exit
-f file Perform actions on file instead of Active CIB
--debug Print all network traffic and external commands run
--version Print pcs version information
Commands:
Cluster Configure Cluster options and nodes
resource Manage Cluster resources
stonith Configure fence devices
constraint Set resource constraints
property Set Pacemaker properties
acl Set Pacemaker access control lists
status View Cluster status
config View and manage Cluster configuration
pcs将集群划分为不同的管理对象,针对某个管理对象有不同的命令集可以使用。通过--help参数可以看到pcs可管理的集群对象种类包括Cluster、Resource、Stonith、Constraint、Property、Status、ACL和Config等,其中最为常用的管理类别有以下几个。
cluster:配置集群选项和节点。
status:查看当前集群资源和节点以及进程的状态。
resource:创建和管理集群资源。
constraint:管理集群资源约束和限制。
property:管理集群节点和资源属性。
config:以用户可读格式显示完整集群配置信息。
要查看pcs针对不同集群对象类别的管理命令,可以通过pcs category_name help命令(“category_name”表示类别名称)来查看,如要查看pcs命令对Status管理类别的命令使用方法,可以通过如下方式实现:
[root@ controller1-vm ~]# pcs status help
Usage: pcs status [commands]...
View current Cluster and resource status
Commands:
[status] [--full]
View all information about the Cluster and resources (--full provides
more details)
resources
View current status of Cluster resources
groups
View currently configured groups and their resources
Cluster
View current Cluster status
corosync
View current membership information as seen by corosync
nodes [corosync|both|config]
View current status of nodes from Pacemaker. If 'corosync' is
specified, print nodes currently configured in corosync, if 'both'
is specified, print nodes from both corosync & Pacemaker. If 'config'
is specified, print nodes from corosync & Pacemaker configuration.
pcsd <node> ...
Show the current status of pcsd on the specified nodes
xml
View xml version of status (output from crm_mon -r -1 -X)
pcs的help命令提供了在该管理类别中,pcs能够实现的全部子命令的详细使用说明,从pcs对Status类别的帮助文档中可以看到,pcs不仅可以查看当前集群的状态,还可以查看集群资源的状态。例如,在OpenStack的高可用部署环境中,我们经常需要通过pcs命令检查当前集群的资源运行情况,从而判断哪些资源正常运行,哪些资源运行异常,而对于异常的资源则需要做进一步的处理(例如通过clearup或restart进行资源重启)。在OpenStack高可用集群资源部署完成后,可以通过pcs status命令检查集群中的资源是否与预期规划一致,如下:
root@controller1-vm ~]# pcs status resources
……
Clone Set: libvirtd-compute-clone [libvirtd-compute]
Started: [ computer1 computer2 ]
Clone Set: ceilometer-compute-clone [ceilometer-compute]
Started: [ computer1 computer2 ]
Clone Set: nova-compute-fs-clone [nova-compute-fs]
Started: [ computer1 computer2 ]
fence-nova (stonith:fence_compute): Started controller2-vm
computer1 (ocf::Pacemaker:remote): Started controller2-vm
computer2 (ocf::Pacemaker:remote): Started controller3-vm
Clone Set: nova-compute-clone [nova-compute]
Started: [ computer1 computer2]
从pcs status resource的输出中,我们可以清楚地看到当前OpenStack集群中有哪些资源存在,并且可以看到每个资源(OpenStack相关服务)在节点上的运行状态。通过pcs的status命令,用户除了可以查看cluster和resource的状态,还可以查看集群节点在集群中的运行状态,即哪些节点当前在线,哪些节点已经离线,如下:
[root@controller1-vm ~]# pcs status nodes
Pacemaker Nodes:
Online: controller1-vm controller2-vm controller3-vm
Standby:
Offline: computer1 computer2
在Pacemaker集群的介绍中,我们曾经提到Corosync的主要作用之一便是向Pace-maker集群提供节点之间的成员关系(Membership),通过pcs命令,Corosync所提供的Membership便清晰可见:
[root@controller1-vm ~]# pcs status corosync
Membership information
Nodeid Votes Name
1 1 controller1-vm (local)
2 1 controller2-vm
3 1 controller3-vm
除了Status管理类别,pcs经常使用的管理类别还包括Cluster、Resource、Stonith、Constraint、Property和Config,而每个管理类别的使用方式都可以通过help参数查看,通过对这几个集群类别的管理配置,用户便可以配置出具有很多高级功能的Pacemaker集群。关于Config类别,3.5节中曾经使用cibadmin命令来进行集群配置的备份和恢复工作,其实pcs所提供的config管理类别也能实现相同的功能,例如要保存当前集群的配置信息,则在pcs的config管理类别中执行backup命令即可。
//语法格式为:pcs config backup file_name
# pcs config backup openstack_ha
//上述命令会生成一个file_name.tar.bz2格式的备份文件:
# ls -l openstack_ha*
-rw-r--r-- 1 root root 5934 Apr 16 23:04 openstack_ha.tar.bz2
- 点赞
- 收藏
- 关注作者
评论(0)