我在 CentOS 7 上创建了两个节点:
- 节点1:192.168.0.1
- 节点2:192.168.0.2
安装这样的工具:
# yum install -y pacemaker corosync pcs crmsh
还使用 HAProxy 进行负载均衡。
一切准备就绪后,我重启了 node1 来测试高可用性。当 node1 启动时,从这种方式只能看到一个节点:
# pcs status corosync
这样可以看到两个节点:
# crm status
但另外一个是UNCLEAN
!
Stack: corosync
Current DC: node1 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum
2 nodes and 0 resources configured
Node node2: UNCLEAN (offline)
Online: [ node1 ]
No resources
从node2检查状态,另一个也是UNCLEAN
!
Stack: corosync
Current DC: node2 (version 1.1.15-11.el7_3.5-e174ec8) - partition WITHOUT quorum
2 nodes and 0 resources configured
Node node1: UNCLEAN (offline)
Online: [ node2 ]
No resources
如何处理?
添加
我这样做了:
# pcs property set stonith-enabled=false
corosync 配置:
totem {
version: 2
secauth: off
cluster_name: lbcluster
transport: udpu
}
nodelist {
node {
ring0_addr: node1
nodeid: 1
}
node {
ring0_addr: node2
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
logging {
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: yes
}
答案1
让 UDP 5404 和 5405 通过防火墙;这些是 Corosync 默认要用于通信的端口。