在pacemaker的经典文档Clusters from Scratch 中,使用到了cman 这个红帽cluster套件中的工具;
奇怪的是,一开始使用的是corosync作为集群的通信层,而到了gfs作为文件系统的active/active时却换成了cman;
同时,corosync.conf中配置的参数貌似也都不起作用了,想要配置两条心跳线也不知道要怎么搞了;
corosync和cman到底是什么关系,到底能不能配置多条心跳线呢?
在cman的配置文件cluster.conf中只需要提供集群中节点的机器名就可以了,不需要设置心跳地址;
cman会取出$HOSTNAME,然后在cluster.conf中寻找对应的信息(找不到就把dnsdomainname去掉然后再匹配;实在不行,就取出机器的ip地址,然后再去cluster.conf文件中匹配)
当前,在寻找心跳ip的过程中,hosts文件起了至关重要的作用
cman会自动生成multicast地址,端口号,还有其他的totem参数
如果想要知道cman生成corosync参数是什么,可以执行下面的命令
# corosync-objctl -a|grep ^totem
cman首先找到机器的心跳ip地址,并设置好muliticast信息
totem.interface.ringnumber=0 totem.interface.bindnetaddr=192.168.1.29 totem.interface.mcastaddr=239.192.209.5 totem.interface.mcastport=5405
然后,cman会将下面的这些参数设置的比一般的corosync集群稍微高一些
totem.token=10000 totem.join=60 totem.fail_recv_const=2500 totem.consensus=12000
下来,cman开启通信加密(根据节点的数量,设置rrp_mode的值)
totem.rrp_mode=none totem.secauth=1 totem.key=composers
最后,cman将集群的quorum提供者设置成它自己
quorum.provider=quorum_cman
cman的第一条心跳线是根据hosts文件取出的(当然,也可以在clusternode的name中直接写ip地址)
比如:
<clusternode name='LIN01-adm' nodeid='1' votes='1' />
cman会从host文件中取LIN01-adm对应的ip地址作为心跳地址;
需要添加多条心跳线时,就要增加altername选项了
比如:
<clusternode name='cent1' nodeid='1'> <altname name='192.148.1.1'/> </clusternode>
这样,就多了一条192.168.1.1的心跳线了(当然也可以写名字,然后cman自动从hosts文件中解析地址)
既然使用了cman,就索性把红帽的其他工具也好好用一下
ccs-红帽的集群配置工具(专门用来写cluster.conf文件的)
建立集群
ccs -f /etc/cluster/cluster.conf --createcluster cluster_name
添加节点
ccs -f /etc/cluster/cluster.conf --addnode nodename
删除节点
ccs -f /etc/cluster/cluster.conf --rmnode nodename
添加备用名(备用心跳)
ccs -f /etc/cluster/cluster.conf --addalt nodename alt_name
删除备用名
ccs -f /etc/cluster/cluster.conf --rmalt nodename alt_name
其他命令 man ccs 即可
cman_tool
写好了 custer.conf 文件,我们就需要在集群中发布一下,也很简单
前提条件,设置好 ricci 用户的密码,开启 ricci 服务
service ricci start && chkconfig ricci on password ricci
分发配置文件
cman_tool versiom -r
联系客服