我们有两台带有Pacemaker(crm)设置的服务器,可以启用主/备用群集。目前有两个由Pacemaker控制/监控的服务,如果其中任何一个发生故障,将导致故障转移到备用数据库,我们自己的自定义服务(以下称为customservice1)和mysql。
customservice1和mysql在备用数据库上停止并在主数据库上运行(显然)。当发生故障转移时,看起来起搏器将停止两者(或者如果只有一个因任何原因失败而确保它们停止,我在这一点上不太清楚),更改主要和备用的IP地址(以便DNS中的别名将始终转到主数据库,然后在以前的备用数据库上启动customservice1和mysql。
我想在起搏器的控制下添加一个步骤,只要发生故障转移就会重启httpd。 httpd目前始终在主数据库和备用数据库上运行。 httpd中的故障当前不会导致故障转移,我对添加监控并不感兴趣,我只是希望起搏器在备用设备成为主设备时运行相当于“service httpd 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"
答案 0 :(得分:0)
为了让Pacemaker执行此操作,您需要将http服务器置于Pacemaker的控制之下,然后在组和http守护程序之间创建一个排序约束。 从记忆中你需要确保得分&gt;约束为0。
否则,您需要修改现有资源的脚本以根据需要重新启动httpd。
答案 1 :(得分:0)
您需要在Pacemaker上添加httpd原语:
primitive apache2 ocf:heartbeat:apache \
params configfile="/etc/apache2/apache2.conf" \
op monitor interval="30s" timeout="20s" \
op start interval="0" timeout="40s" \
op stop interval="0" timeout="60s"
或者,如果你想使用脚本LSB:
primitive apache2 lsb:apache2 \
op monitor interval="30s" timeout="20s" \
op start interval="0" timeout="40s" \
op stop interval="0" timeout="60s"
在'only-group'组中添加'apache2'(关心订单)
group only-group node_one_ip mysql-server customservice1 apache2