b).配置nginx和mysql资源
定义nfs资源时需要在nfs服务器先建立nfs共享目录,将web源代码和数据库文件放到指定目录。
定义数据库的nfs共享目录:
crm(live)configure#primitive mysqlnfs Filesystem params device="172.18.109.236:/data/mysql/data" directory="/data/mysql/data" fstype=nfs op start timeout=30s interval=0 op stop timeout=30s interval=0 meta target-role=Started
定义web源代码的nfs共享目录:
crm(live)configure#primitive webnfs Filesystem params device="172.18.109.236:/web" directory="/var/www/html" fstype=nfs op start timeout=60s interval=0 op stop timeout=60s interval=0
crm(live)configure#primitive myserver lsb:mysql op monitor interval=20 timeout=20 on-fail=restart #定义数据库服务
crm(live)configure#primitive WebSite lsb:nginx #定义web服务
crm(live)configure# verify
crm(live)configure# show
crm(live)configure# commit
crm(live)# status
crm(live)configure# edit myserver #编辑已定义的资源对象
4.资源约束定义
若想将多个资源运行在同一个节点上,则,做成组,或定义排列约束。
资源约束则用以指定在哪些群集节点上运行资源,以何种顺序装载资源,以及特定资源依赖于哪些其它资源。
pacemaker共给我们提供了三种资源约束方法:
Resource Location(资源位置):定义资源可以、不可以或尽可能在哪些节点上运行; 2)Resource Collocation(资源排列):排列约束定义集群资源可以、不可以在某个节点上同时运行; 3)Resource Order(资源顺序):顺序约束定义集群资源在节点上启动的顺序;
这里我们定义的是lnmp服务,所以要求所有资源都必须在一个节点运行。有两种方式进行资源约束:
a).定义组,将资源运行在同一个节点上
1.//定义资源组webservice
2.crm(live)configure# help group
3.crm(live)configure# group lnmp WebIP webnfs mysqlnfs myserver WebSite
4.crm(live)configure# verify
5.crm(live)configure# commit
6.crm(live)configure# show
primitive WebIP IPaddr \
params ip=172.18.109.238
primitive WebSite lsb:nginx \
op monitor interval=20s timeout=15s
primitive myserver lsb:mysql \
op monitor interval=60 timeout=60 on-fail=restart
primitive mysqlnfs Filesystem \
params device="172.18.109.236:/data/mysql/data" directory="/data/mysql/data" fstype=nfs \
op start timeout=30s interval=0 \
op stop timeout=30s interval=0 \
meta target-role=Started
primitive webnfs Filesystem \
params device="172.18.109.236:/web" directory="/var/www/html" fstype=nfs \
op start timeout=30s interval=0 \
op stop timeout=30s interval=0
group lnmp WebIP webnfs mysqlnfs myserver WebSite
location prefer-node1 lnmp 200: node1.test.com
property cib-bootstrap-options: \
dc-version=1.1.14-8.el6-70404b0 \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes=3 \
stonith-enabled=false \
no-quorum-policy=ignore
7.crm(live)configure#cd
8.crm(live)# status
使用资源组后原来的约束会被清除,两者不能同时生效。
浏览器访问测试,成功!
测试:
01.//让node1离线,测试是否转移:
02.crm(live)# node
03.crm(live)node# help standby
04.crm(live)node# standbynode1.test.com //需要使用完整名称
05.crm(live)configure#cd
06.crm(live)# status
07. //转移到node2
08.让node1重新上线:
09.# crm node onlinenode1.test.com
10.# crm status
b).定义排列约束和位置约束
crm(live)configure#colocation myserver_with_mysqlnfs inf: myserver mysqlnfs
crm(live)configure#order mysqlnfs_before_myserver mandatory: mysqlnfs:start myserver:start
crm(live)configure#colocation WebIP_with_myserver inf: WebIP myserver
crm(live)configure#order WebIP_before_myserver mandatory: WebIP myserver
(责任编辑:liangzh) |