在我们日常的corosync配置中,在安装完相关包只需要在corosync.conf中配置bindnetaddr中对应心跳IP并添加
service { name: pacemaker ver: 0 use_mgmtd: 1 }
即可启用pacemaker,然后进行资源配置。
1、遇到第一个问题,如果有多个网卡用来做心跳怎么办?
心跳IP的配置在corosync.conf中totem配置项下的interface子项。多个心跳网卡配置多个interface,并把ringnumber加1(第一个是0),但是要注意totem配置中添加rrp_mode:active或者passive不然启动orosync时会报错。acitve对应延迟较低,但是性能较差,passive表示没看到英文解释。。。默认情况下单个心跳rrp_mode是none的。
TIPs:rrp即路由冗余协议,我们接触到比较多的是keepalived里面的vrrp。
2、某地需求,一个vip,多个阵列共享盘,两个独立数据库实例,启动与停止要互不影响,但是都依赖于vip和阵列盘。
默认情况下我们都是使用一个group来组合资源,并按从上往下的顺序启动资源,而如果中间的资源出现意外停止时,集群会关掉下面的资源,再从中间往下启动,由于一个资源不能存在在多个资源组,这样当然不能符合需求。
解决方法:在configure配置时,将vip和阵列group成一个资源组,使用order命令 来定义启动顺序,即:
order database1-after-group mandatory: group1 database1 order database2-after-group mandatory: group1 database2
注解:
order :顺序约束的命令
database1-after-group#约束ID
mandatory: #指定级别(此处有三种级别:mandatory:强制, Optional:可选,Serialize:序列化)
group1 database1 #资源名,这里书写的先后顺序相当重要
但是这样会有一个问题,在备机restart corosync的时候,会出现抢资源的情况,然后colocation绑定约束就上场了。
crm(live)configure# colocation database-and-group inf: group1 database1 database2
注解:
colocation:排列约束命令
database-and-group : #约束名(ID)
inf:#(可能性,inf表示永久在一起,也可以是数值)
group1 database1 database2 #资源名称
3、资源默认不起动问题
configure下直接edite,在资源配置下方的meta后添加
meta target-role="Started"
参考:http://www.it165.net/admin/html/201404/2869.html