0.前言
corosync作为HA方案中的心跳层,管理着集群间信息传递的方式和协议。一旦心跳网络断开,对于双节点容易发生脑裂问题。尽管在前面的文章中,我给出了解决方案。作为企业级的应用,在配置心跳网络还得考虑HA的方案。
1.网卡bond-mode
多网卡bond模式,网上资料较多,可以参考http://support.huawei.com/ecommunity/bbs/10155553.html
推荐用bond4和bond6。
注:bond模式,大部分需要交换机的支持。
2.直连网络HA
在主备结点间分别配置两个直连网络。例如A主机:eth0:192.168.2.105 eth1:192.168.2.106 B主机:eth0:192.168.2.115 eth1:192.168.2.116,eth0间,eth1间分别作为一直连网络。然后配置corosync.conf
2.1 配置方式1
这种方式把四个网卡当做是4个结点的集群方式,corosync 会组合成多条心跳线,必然包含Aetho----Beth0 Aeth1---Beth1两条心跳线,这样自然达到了HA的目的。这种方式是我自己琢磨,后来去官网找到2.2的配置方式。
totem {
version: 2
secauth: off
interface {
member {
memberaddr: 192.168.2.105
}
member {
memberaddr: 192.168.2.115
}
member {
memberaddr: 192.168.2.106
}
member {
memberaddr: 192.168.2.116
}
ringnumber: 0
bindnetaddr: 192.168.2.0
mcastport: 5405
}
transport: udpu
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
2.2 配置方式2
这种方式比较标准,避免了同一主机间多网卡的心跳信息回流。注意ringnumber递增。这种方式实际是rrp (The Totem Redundant Ring Protocol)mode。
totem {
version: 2
secauth: off
rrp_mode:active
interface {
member {
memberaddr: 192.168.2.105
}
member {
memberaddr: 192.168.2.115
}
ringnumber: 0
bindnetaddr: 192.168.2.0
mcastport: 5405
}
interface {
member {
memberaddr: 192.168.2.106
}
member {
memberaddr: 192.168.2.116
}
ringnumber: 1
bindnetaddr: 192.168.2.0
mcastport: 5415
}
transport: udpu
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {