潇湘夜雨移动版

主页 > 软件与服务 >

HA集群之CoroSync+Pacemaker+cmrsh+LNMP(7)

crm(live)configure#colocation WebSite_with_webnfs inf:  WebSite webnfs
crm(live)configure# order webnfs_before_WebSite mandatory: webnfs:start  WebSite:start
crm(live)configure#colocation mysqlnfs_with_webnfs inf: mysqlnfs webnfs
注意第一资源约束是要注意格式,不能用多余的空格或特殊字符。
此外,由于HA集群本身并不强制每个节点的性能相同或相近,所以,某些时候我们可能希望在正常时服务总能在某个性能较强的节点上运行,这可以通过位置约束来实现:
 
# crm configure location prefer-node1 WebSite 200: node1.test.com # prefer-node1为规则名称
这条命令实现了将WebSite约束在node1上,且指定其分数为200;
确保nfs在web和mysql之前启动
查看资源的实际启动顺序,可以用crm_mon命令实时查看启动顺序,crm status命令出现的资源顺序未必是资源的实际启动顺序
e).定义资源默认粘性
资源粘性生效于当前运行节点。资源运行在哪里,即在哪里生效。
01.crm(live)configure#help
02.crm(live)configure#edit
03.    //删除webserver定义的对node1的200的倾向性;
04.#crm status
05.        //此时所有服务都运行在node2
06.//配置粘性:
07.crm(live)configure#rsc-defaults resource-stickness=100
08.crm(live)configure#verify
09.crm(live)configure#show
10.crm(live)configure#commit
11.crm(live)configure#cd
12.crm(live)# status
测试:
 
01.//故障node2:
02.# service corosync stop
03.#crm status
04.    //资源转移到node1;
05.//上线node2:
06.#crm status
07.    //资源没有转移;
08.    //对当前node的粘性和为200,与对node2的倾向性相同,故留在当前节点
09.    //粘性定义,无关任一node,只生效当前所运行节点;
f).定义资源监控
1.//强行kill掉当前节点httpd
2.#killall httpd
3.#ss -tnl
4.#crm status
5.    //显示服务照常运行
6.#service httpd status
7.       //显示:httpd dead but subsys locked,subsys没有删除
8.       //kill掉服务,不会自动重启;因为,节点没有故障,所有资源不会转移,默认情况下,pacemaker不会对任何资源进行监控,所以,即便是资源关掉了,只要节点没有故障,资源依然不会转移;要想达到资源转移的目的,得定义监控(monitoer);
01.//定义监控:
02.#crm configure
03.crm(live)configure#cd
04.crm(live)#status
05.        //仍然在节点上运行着
06.crm(live)#resource
07.crm(live)resource# status
08.        //仍然显示:start,没有定义监控,意识不到httpd停掉
09.crm(live)resource# stop webserver
10.crm(live)resource# stop webip
11.crm(live)resource# status
12.crm(live)resource# cleanup webserver
13.crm(live)resource# cleanup webip
14.            //如果服务被非法关闭,需要清理,以免后续配置的一些麻烦
15.crm(live)resource# cd
16.crm(live)resource# configure
17.crm(live)configure# help monitor
18.crm(live)configure# monitor webserver 20s:15s
19.                                //监控时间:超时时间
20.crm(live)configure# verify
21.crm(live)configure#commit
22.crm(live)configure#cd
23.crm(live)# resource
24.crm(live)resource# start webip
25.crm(live)resource# start webserver
26.crm(live)resource#cd
27.crm(live)# status
28.        //资源在node2上启动;
测试:
01.# service httpd stop
02.# ss -tnl
03.    //查看日志:
04.#tail /var/log/cluster/corosync.log
05.    //查看node2的httpd是否自启:
06.#ss -tnl
07.     //启动成功;
08.//监控的意义:一旦发现服务没启动,就会尝试在当前主机上重启; (责任编辑:liangzh)