Pacemaker集群管理工具pcs pcs常用命令总结

Pacemaker集群管理工具pcs
pcs说明
可以用用 cibadmin命令行工具来查看和管理 pacemaker的集群配置信息,集群 CIB中的配置信息量非常大而且以 XML语言呈现,对于仅由极少数节点和资源所组成的集群,cibadmin也许是个可行方案。但是,对于拥有大量节点和资源的大规模集群,通过编辑 XML文件来查看修改集群配置显然是非常艰难而且极为不现实的工作由于 XML文件内容条目极多,因此用户在修改 XML文件的过程中极易出现人为错误。而在开源社区里,简单实用才是真正开源精神的体现,对于开源系统中任何文件配置参数的修改,简化统一的命令行工具才是最终的归宿。

随着开源集群软件Pacemaker版本的不断更新,社区推出了两个常用的集群管理命令行工具,即集群管理员最为常用的 pcs和 crmsh命令。本文使用的是 pcs命令行工具,关于 crmsh的更多使用方法和手册可以参考Pacemaker的官方网站。在 pacemaker集群中PCS命令行工具几乎可以实现集群管理的各种功能,例如,全部受控的 pacemaker和配置属性的变更管理都可以通过 pcs实现。此外,需要注意的是, pcs命令行的使用对系统中安装的 pacemaker和 corosync软件版本有一定要求,即 Pacemaker1.1.8及其以上版本, Corosync 2.0及其以上版本才能使用 pcs命令行工具进行集群管理。 pcs命令可以管理的集群对象类别和具体使用方式可以通过pcs --help参数查看:

[root@controller1 ~]# 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.

    --request-timeout  Timeout for each outgoing request to another node in

                       seconds. Default is 60s.

Commands:

    cluster     Configure cluster options and nodes.

    resource    Manage cluster resources.

    stonith     Manage fence devices.

    constraint  Manage resource constraints.

    property    Manage pacemaker properties.

    acl         Manage pacemaker access control lists.

    qdevice     Manage quorum device provider on the local host.

    quorum      Manage cluster quorum settings.

    booth       Manage booth (cluster ticket manager).

    status      View cluster status.

    config      View and manage cluster configuration.

    pcsd        Manage pcs daemon.

    node        Manage cluster nodes.

    alert       Manage pacemaker alerts.


最为常用的管理命令
使用:pcs 管理命令

cluster 配置集群选项和节点
status 查看当前集群资源和节点以及进程状态
resource 创建和管理集群资源
constraint 管理集群资源约束和限制
property 管理集群节点和资源属性
config 以用户可读格式显示完整集群配置信息

PCS(Pacemaker/Corosync configuration system)命令配置群集示例:

一、建立群集:

1、配置群集节点的认证as the hacluster user:

 [shell]# pcs cluster auth node1 node2

2、创建一个二个节点的群集

 [shell]# pcs cluster setup --name mycluster node1 node2

 [shell]# pcs cluster start --all                  ## 启动群集

3、设置资源默认粘性(防止资源回切)

 [shell]# pcs resource defaults resource-stickiness=100

 [shell]# pcs resource defaults

4、设置资源超时时间

 [shell]# pcs resource op defaults timeout=90s

 [shell]# pcs resource op defaults

5、二个节点时,忽略节点quorum功能

 [shell]# pcs property set no-quorum-policy=ignore

6、没有 Fencing设备时,禁用STONITH 组件功能

在 stonith-enabled="false" 的情况下,分布式锁管理器 (DLM) 等资源以及依赖DLM 的所有服务(例如 cLVM2、GFS2 和 OCFS2)都将无法启动。

 [shell]# pcs property set stonith-enabled=false

 [shell]# crm_verify -L -V                        ## 验证群集配置信息

二、建立群集资源

1、查看可用资源

 [shell]# pcs resource list                     ## 查看支持资源列表,pcs resource list ocf:heartbeat

 [shell]# pcs resource describe agent_name              ## 查看资源使用参数,pcs resource describe ocf:heartbeat:IPaddr2

2、配置虚拟IP

 [shell]# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 \

  ip="192.168.10.15" cidr_netmask=32 nic=eth0 op monitor interval=30s 

3、配置Apache(httpd)

 [shell]# pcs resource create WebServer ocf:heartbeat:apache \

  httpd="/usr/sbin/httpd" configfile="/etc/httpd/conf/httpd.conf" \

  statusurl="http://localhost/server-status" op monitor interval=1min

4、配置Nginx

 [shell]# pcs resource create WebServer ocf:heartbeat:nginx \

  httpd="/usr/sbin/nginx" configfile="/etc/nginx/nginx.conf" \

  statusurl="http://localhost/ngx_status" op monitor interval=30s

5.1、配置FileSystem

 [shell]# pcs resource create WebFS ocf:heartbeat:Filesystem \

  device="/dev/sdb1" directory="/var/www/html" fstype="ext4"

 [shell]# pcs resource create WebFS ocf:heartbeat:Filesystem \

  device="-U 32937d65eb" directory="/var/www/html" fstype="ext4"

5.2、配置FileSystem-NFS

 [shell]# pcs resource create WebFS ocf:heartbeat:Filesystem \

  device="192.168.10.18:/mysqldata" directory="/var/lib/mysql" fstype="nfs" \

  options="-o username=your_name,password=your_password" \

  op start timeout=60s op stop timeout=60s op monitor interval=20s timeout=60s

6、配置Iscsi

 [shell]# pcs resource create WebData ocf:heartbeat:iscsi \

  portal="192.168.10.18" target="iqn.2008-08.com.starwindsoftware:" \

  op monitor depth="0" timeout="30" interval="120"

 [shell]# pcs resource create WebFS ocf:heartbeat:Filesystem \

  device="-U 32937d65eb" directory="/var/www/html" fstype="ext4" options="_netdev"

7、配置DRBD

 [shell]# pcs resource create WebData ocf:linbit:drbd \

  drbd_resource=wwwdata op monitor interval=60s

 [shell]# pcs resource master WebDataClone WebData \

  master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

 [shell]# pcs resource create WebFS ocf:heartbeat:Filesystem \

  device="/dev/drbd1" directory="/var/www/html" fstype="ext4"

8、配置MySQL

 [shell]# pcs resource create MySQL ocf:heartbeat:mysql \

  binary="/usr/bin/mysqld_safe" config="/etc/my.cnf" datadir="/var/lib/mysql" \

  pid="/var/run/mysqld/mysql.pid" socket="/tmp/mysql.sock" \

  op start timeout=180s op stop timeout=180s op monitor interval=20s timeout=60s

9、配置Pingd,检测节点与目标的连接有效性

 [shell]# pcs resource create PingCheck ocf:heartbeat:pingd \

  dampen=5s multiplier=100 host_list="192.168.10.1 router" \

  op monitor interval=30s timeout=10s

10、创建资源clone,克隆的资源会在全部节点启动

 [shell]# pcs resource clone PingCheck

 [shell]# pcs resource clone ClusterIP clone-max=2 clone-node-max=2 globally-unique=true        ## clone-max=2,数据包分成2路

 [shell]# pcs resource update ClusterIP clusterip_hash=sourceip        ## 指定响应请求的分配策略为:sourceip

三、调整群集资源

1、配置资源约束

 [shell]# pcs resource group add WebSrvs ClusterIP                ## 配置资源组,组中资源会在同一节点运行

 [shell]# pcs resource group remove WebSrvs ClusterIP            ## 移除组中的指定资源

 [shell]# pcs resource master WebDataClone WebData              ## 配置具有多个状态的资源,如 DRBD master/slave状态

 [shell]# pcs constraint colocation add WebServer ClusterIP INFINITY      ## 配置资源捆绑关系

 [shell]# pcs constraint colocation remove WebServer              ## 移除资源捆绑关系约束中资源

 [shell]# pcs constraint order ClusterIP then WebServer           ## 配置资源启动顺序

 [shell]# pcs constraint order remove ClusterIP                 ## 移除资源启动顺序约束中资源

 [shell]# pcs constraint                          ## 查看资源约束关系, pcs constraint --full

2、配置资源位置

 [shell]# pcs constraint location WebServer prefers node11         ## 指定资源默认某个节点,node=50 指定增加的 score

 [shell]# pcs constraint location WebServer avoids node11        ## 指定资源避开某个节点,node=50 指定减少的 score

 [shell]# pcs constraint location remove location-WebServer        ## 移除资源节点位置约束中资源ID,可用pcs config获取

 [shell]# pcs constraint location WebServer prefers node11=INFINITY       ## 手工移动资源节点,指定节点资源的 score of INFINITY

 [shell]# crm_simulate -sL                            ## 验证节点资源 score 值

3、修改资源配置

 [shell]# pcs resource update WebFS                        ## 更新资源配置

 [shell]# pcs resource delete WebFS                        ## 删除指定资源

4、管理群集资源

 [shell]# pcs resource disable ClusterIP                    ## 禁用资源

 [shell]# pcs resource enable ClusterIP                    ## 启用资源

 [shell]# pcs resource failcount show ClusterIP              ## 显示指定资源的错误计数

 [shell]# pcs resource failcount reset ClusterIP             ## 清除指定资源的错误计数 

 [shell]# pcs resource cleanup ClusterIP                ## 清除指定资源的状态与错误计数

四、配置Fencing设备,启用STONITH

1、查询Fence设备资源

 [shell]# pcs stonith list                           ## 查看支持Fence列表

 [shell]# pcs stonith describe agent_name                  ## 查看Fence资源使用参数,pcs stonith describe fence_vmware_soap

    

2、配置fence设备资源

 [shell]# pcs stonith create ipmi-fencing fence_ipmilan \

  pcmk_host_list="pcmk-1 pcmk-2" ipaddr="10.0.0.1" login=testuser passwd=acd123 \

  op monitor interval=60s

mark:

If the device does not support the standard port parameter or may provide additional ones, you may also need to set the special pcmk_host_argument parameter. See man stonithd for details.

If the device does not know how to fence nodes based on their uname, you may also need to set the special pcmk_host_map parameter. See man stonithd for details.

If the device does not support the list command, you may also need to set the special pcmk_host_list and/or pcmk_host_check parameters. See man stonithd for details.

If the device does not expect the victim to be specified with the port parameter, you may also need to set the special pcmk_host_argument parameter. See man stonithd for details.

example: pcmk_host_argument="uuid" pcmk_host_map="node11:4;node12:5;node13:6" pcmk_host_list="node11,node12"  pcmk_host_check="static-list"

3、配置VMWARE (fence_vmware_soap)

 特别说明:本次实例中使用了第3项(pcs stonith create vmware-fencing fence_vmware_soap)这个指定pcmk配置参数才能正常执行Fencing动作。

3.1、确认vmware虚拟机的状态:

 [shell]# fence_vmware_soap -o list -a vcenter.example.com -l cluster-admin -p -z              ## 获取虚拟机UUID

 [shell]# fence_vmware_soap -o status -a vcenter.example.com -l cluster-admin -p -z -U     ## 查看状态

 [shell]# fence_vmware_soap -o status -a vcenter.example.com -l cluster-admin -p -z -n

3.2、配置fence_vmware_soap

 [shell]# pcs stonith create vmware-fencing-node11 fence_vmware_soap \

  action="reboot" ipaddr="192.168.10.10" login="vmuser" passwd="vmuserpd" ssl="1" \

  port="node11" shell_timeout=60s login_timeout=60s op monitor interval=90s

 [shell]# pcs stonith create vmware-fencing-node11 fence_vmware_soap \

  action="reboot" ipaddr="192.168.10.10" login="vmuser" passwd="vmuserpd" ssl="1" \

  uuid="421dec5f-c484-3d69-ddfb-65af46530581" shell_timeout=60s login_timeout=60s op monitor interval=90s

 [shell]# pcs stonith create vmware-fencing fence_vmware_soap \

  action="reboot" ipaddr="192.168.10.10" login="vmuser" passwd="vmuserpd" ssl="1" \

  pcmk_host_argument="uuid" pcmk_host_check="static-list" pcmk_host_list="node11,node12" \

  pcmk_host_map="node11:421dec5f-c484-3d69-ddfb-65af46530581;node12:421dec5f-c484-3d69-ddfb-65af46530582" \

  shell_timeout=60s login_timeout=60s op monitor interval=90s

注:如果配置fence_vmware_soap设备时用port=vm name在测试时不能识别,则使用uuid=vm uuid代替;

建议使用 pcmk_host_argument、pcmk_host_map、pcmk_host_check、pcmk_host_list 参数指明节点与设备端口关系,格式:

 pcmk_host_argument="uuid"  pcmk_host_map="node11:uuid4;node12:uuid5;node13:uuid6"  pcmk_host_list="node11,node12,node13"  pcmk_host_check="static-list"

4、配置SCSI

 [shell]# ls /dev/disk/by-id/wwn-*                ## 获取Fencing磁盘UUID号,磁盘须未格式化

 [shell]# pcs stonith create iscsi-fencing fence_scsi \

  action="reboot" devices="/dev/disk/by-id/wwn-0x600e002" meta provides=unfencing

5、配置DELL DRAC

 [shell]# pcs stonith create dell-fencing-node11 fence_drac

.....

6、管理 STONITH

 [shell]# pcs resource clone vmware-fencing            ## clone stonith资源,供多节点启动

 [shell]# pcs property set stonith-enabled=true      ## 启用 stonith 组件功能

 [shell]# pcs stonith cleanup vmware-fencing        ## 清除Fence资源的状态与错误计数

 [shell]# pcs stonith fence node11                 ## fencing指定节点

7、管理tomcat

 [shell]#pcs resource create tomcat ersweb statusurl=http://127.0.0.1  java_home=/usr/java/jdk1.6.0_12/  catalina_home=/usr/local/Ers/tomcat/  op monitor interval=30s

五、群集操作命令

1、验证群集安装

 [shell]# pacemakerd -F                    ## 查看pacemaker组件,ps axf | grep pacemaker

 [shell]# corosync-cfgtool -s                  ## 查看corosync序号

 [shell]# corosync-cmapctl | grep members          ## corosync 2.3.x

 [shell]# corosync-objctl | grep members          ## corosync 1.4.x

2、查看群集资源

 [shell]# pcs resource standards              ## 查看支持资源类型

 [shell]# pcs resource providers              ## 查看资源提供商

 [shell]# pcs resource agents                ## 查看所有资源代理

 [shell]# pcs resource list                 ## 查看支持资源列表

 [shell]# pcs stonith list                ## 查看支持Fence列表

 [shell]# pcs property list --all            ## 显示群集默认变量参数

 [shell]# crm_simulate -sL                    ## 检验资源 score 值

3、使用群集脚本

 [shell]# pcs cluster cib ra_cfg                ## 将群集资源配置信息保存在指定文件

 [shell]# pcs -f ra_cfg resource create            ## 创建群集资源并保存在指定文件中(而非保存在运行配置)

 [shell]# pcs -f ra_cfg resource show              ## 显示指定文件的配置信息,检查无误后

 [shell]# pcs cluster cib-push ra_cfg              ## 将指定配置文件加载到运行配置中

4、STONITH 设备操作

 [shell]# stonith_admin -I                    ## 查询fence设备

 [shell]# stonith_admin -M -a agent_name           ## 查询fence设备的元数据,stonith_admin -M -a fence_vmware_soap

 [shell]# stonith_admin --reboot nodename            ## 测试 STONITH 设备

5、查看群集配置

 [shell]# crm_verify -L -V                    ## 检查配置有无错误

 [shell]# pcs property                    ## 查看群集属性

 [shell]# pcs stonith                    ## 查看stonith

 [shell]# pcs constraint                    ## 查看资源约束

 [shell]# pcs config                    ## 查看群集资源配置

 [shell]# pcs cluster cib                    ## 以XML格式显示群集配置

6、管理群集

 [shell]# pcs status                      ## 查看群集状态

 [shell]# pcs status cluster

 [shell]# pcs status corosync

 [shell]# pcs cluster stop [node11]              ## 停止群集

 [shell]# pcs cluster start --all                ## 启动群集

 [shell]# pcs cluster standby node11              ## 将节点置为后备standby状态,pcs cluster unstandby node11 

 [shell]# pcs cluster destroy [--all]              ## 删除群集,[--all]同时恢复corosync.conf文件

 [shell]# pcs resource cleanup ClusterIP        ## 清除指定资源的状态与错误计数

 [shell]# pcs stonith cleanup vmware-fencing        ## 清除Fence资源的状态与错误计数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值