在我们日常的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命令 来定义启动顺序,即:

 crm(live)configure# order  database1-after-group mandatory: group1  database1
 crm(live)configure# 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