几个月没有写Proxmox VE了,必须弥补一下。
我们安装PVE创建集群的时候,默认情况下都是使用一个IP地址段,实际上PVE集群的底层支撑corosync支持多个网段,在网络本身不稳定或者一个网络意外中断的情况下,继续判断和维持集群状态。
直接修改配置文件 /etc/corosync/corosync.conf 和 /etc/pve/corosync.conf ,这两个文件完全一样的,修改一个直接复制过去就可以。
先做个备份
# cp /etc/corosync/corosync.conf /etc/corosync/corosync.conf.bak
示例配置文件如下:
logging {
debug: off
to_syslog: yes
}
nodelist {
node {
name: node011
nodeid: 1
quorum_votes: 1
ring0_addr: 172.31.254.11
ring1_addr: 10.10.11.11
}
node {
name: node012
nodeid: 2
quorum_votes: 1
ring0_addr: 172.31.254.12
ring1_addr: 10.10.11.12
}
node {
name: node013
nodeid: 3
quorum_votes: 1
ring0_addr: 172.31.254.13
ring1_addr: 10.10.11.13
}
}
quorum {
provider: corosync_votequorum
}
totem {
cluster_name: pvecluster
config_version: 15
interface {
linknumber: 0
}
interface {
linknumber: 1
}
ip_version: ipv4-6
secauth: on
version: 2
}
上面有两个网段
每台主机都有两个IP地址,在 node 中表示成 ring0 和 ring1
在 totem 中表示为 linknumber: 0 和 linknumber: 1
ip_version: 可以使用ipv4或者ipv6,默认 ipv4-6 都支持
特别注意:config_version 一定要在原来的数值上面加1,我这个原来就是14
确保六个配置文件(每个节点两个)完全一致。不要复制粘贴避免错误,用 scp 直接拷贝,如
root@node011:~# scp /etc/corosync/corosync.conf node012:/etc/corosync/corosync.conf
之后逐个节点重启集群服务
先关闭
# systemctl stop pvestatd.service
# systemctl stop pvedaemon.service
# systemctl stop pve-cluster.service
# systemctl stop corosync.service
再启动
# systemctl start corosync.service
# systemctl start pve-cluster.service
# systemctl start pvedaemon.service
# systemctl start pvestatd.service
如果觉得命令麻烦,可以图形界面操作
最后就这样
corosync是一个有多年历史的优秀的集群管理套件,Linux下面配置集群的朋友熟悉的pcs套件就是基于corosync的。