我们有两台安装了Pacemaker(CRM)的服务器,可以启用主/备用群集。目前有两个由Pacemaker控制/监控的服务,如果其中一个出现故障,将导致故障转移到备用服务器,即我们自己的自定义服务(以下称为CustomService1)和MySQL。
customservice1和mysql在待机时停止,在主服务器上运行(显然)。当发生故障转移时,Pacemaker似乎会同时停止这两个操作(或者确保无论出于何种原因只有一个操作失败,都会停止这两个操作),更改主服务器和备用服务器的IP地址(以便DNS中的别名始终指向主服务器),然后在以前的备用服务器上启动CustomService1和MySQL。
我想在此基础上添加一个由Pacemaker控制的步骤,只要发生故障转移,它就会重新启动httpd。httpd目前一直在主服务器和备用服务器上运行。httpd中的故障目前不会导致故障转移,我也不太想添加这种监视,我只是希望pacemaker在使备用服务器成为主要服务器时运行类似于“servicehttpd restart”的程序。
添加只重新启动服务的新原语的正确语法是什么?
当前起搏器配置如下:
node $id="XX" some.machine.name \
attributes standby="off"
node $id="YY" another.machine.name
primitive customservice1 lsb:customservice1 \
op monitor interval="30s" timeout="30s" \
op start interval="0" timeout="120" \
op stop interval="0" timeout="120" \
meta target-role="Started"
primitive mysql-server ocf:heartbeat:mysql \
params binary="/usr/bin/mysqld_safe" config="/etc/my.cnf" datadir="/some/data/dir" user="mysql" pid="/var/lib/mysql/mysql.pid" socket="/var/lib/mysql/mysql.sock" \
op monitor interval="30s" timeout="30s" \
op start interval="0" timeout="120" \
op stop interval="0" timeout="120"
primitive node1-stonith stonith:external/riloe \
params hostlist="some.machine.name" ilo_user="Administrator" ilo_hostname="some-ilo.machine.name" ilo_password="<ilopassword>" ilo_can_reset="1" ilo_protocol="2.0" ilo_powerdown_method="button" \
op monitor interval="120s" timeout="40s" \
meta target-role="Started"
primitive node2-stonith stonith:external/riloe \
params hostlist="another.machine.name" ilo_user="Administrator" ilo_hostname="another-ilo.machine.name" ilo_password="<ilopassword>" ilo_can_reset="1" ilo_protocol="2.0" ilo_powerdown_method="button" \
op monitor interval="120s" timeout="40s" \
meta target-role="Started"
primitive node_one_ip ocf:heartbeat:IPaddr2 \
params ip="1.1.1.1" cidr_netmask="255.255.255.0" nic="eth0" \
op monitor interval="40s" timeout="20s"
primitive node_two_ip ocf:heartbeat:IPaddr2 \
params ip="1.1.1.2" cidr_netmask="255.255.255.0" nic="eth0" \
op monitor interval="40s" timeout="20s" \
meta target-role="Started"
group only-group node_one_ip mysql-server customservice1
property $id="cib-bootstrap-options" \
dc-version="1.0.9-89bd754939df5150de7cd76835f98fe90851b677" \
cluster-infrastructure="Heartbeat" \
no-quorum-policy="ignore" \
last-lrm-refresh="1287686604" \
default-resource-stickiness="1"
最佳答案
为了让pacemaker做到这一点,您需要将http服务器置于pacemaker的控制之下,然后在组和http守护进程之间创建一个排序约束。
从内存中,您需要确保约束的得分>0。
否则,您需要修改现有资源的脚本以在必要时重新启动HTTPD。