PVE双节点集群解散
适用场景:双节点Proxmox VE集群解散,操作后两个节点均变为独立单节点,所有虚拟机、存储、配置100%保留,无需重装系统。
操作前准备
1. 全局备份(必做)
两个节点分别执行备份,防止操作失误可随时回滚:
cp -a /etc/pve /root/pve-backup-$(date +%Y%m%d)
cp -a /var/lib/pve-cluster /root/pve-db-backup-$(date +%Y%m%d)2. 共享存储处理
如果使用了集群共享存储(NFS/Ceph/iSCSI等),必须先完成以下操作:
- 将所有虚拟机/容器全部迁移到对应节点的本地存储,禁止留在共享存储上
- 从集群配置中删除所有共享存储,或者为两个节点分配完全独立的专属存储
- 绝对禁止两个节点同时访问同一块共享存储,会直接导致数据损坏
- 确认所有虚拟机均运行在本地存储上,无任何共享存储依赖
3. 关闭HA配置
如果开启了HA高可用,先删除所有HA资源,停止HA服务,避免集群解散过程中出现异常漂移。
操作步骤
提前确认两个节点名称,假设为node1、node2,请替换为自己节点的实际名称。
第一步:操作节点2,先将其从集群分离
所有命令均在node2上执行
1. 停止集群核心服务:
systemctl stop pve-cluster
systemctl stop corosync2. 本地模式启动PVE文件系统:
pmxcfs -l3. 删除集群核心配置:
rm -rf /etc/corosync/*
rm /etc/pve/corosync.conf4. 重启PVE文件系统服务:
killall pmxcfs
systemctl start pve-cluster5. 清理集群残留数据:
rm -rf /var/lib/corosync/*
# 仅保留/etc/pve/nodes/下自己节点的文件夹,删除node1的文件夹
rm -rf /etc/pve/nodes/node16. 清除集群SSH互信:
编辑/etc/pve/priv/authorized_keys,删除node1的公钥内容,仅保留node2自己的公钥。
7. 重启节点2
第二步:操作节点1,完成集群解散
所有命令均在node1上执行
1. 从集群中删除已分离的node2:
# 先尝试直接删除
pvecm delnode oldnode
# 如果报错(双节点集群丢失quorum),先执行以下命令再删除:
pvecm expected 12. 清除自身集群配置,变为独立节点:
systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm -rf /etc/corosync/*
rm /etc/pve/corosync.conf
killall pmxcfs
systemctl start pve-cluster3. 清理集群残留数据:
rm -rf /var/lib/corosync/*
# 删除node2的残留配置文件夹
rm -rf /etc/pve/nodes/node24. 清除集群SSH互信:
编辑/etc/pve/priv/authorized_keys,删除node2的公钥内容,仅保留node1自己的公钥。
5. 重启节点1
操作结果验证
两个节点重启完成后,分别执行以下验证:
1. 集群状态验证:执行pvecm status,显示Error: Corosync config '/etc/pve/corosync.conf' does not exist - is this node part of a cluster?
2. 虚拟机验证:打开WebUI,所有本地虚拟机正常显示,可正常开机、操作
3. 互信验证:两个节点互相SSH连接,需要输入密码,说明集群互信已清除成功
4. 存储验证:本地存储正常挂载,所有文件、虚拟机磁盘完整无损坏
收尾注意事项
1. 解散后两个节点完全独立,VMID可重复使用,不会再出现ID冲突
2. 后续如果需要将节点加入新集群,直接按正常加集群流程操作即可,旧配置已完全清理无残留
3. 原集群的定时备份、监控、告警等集群级配置,需要在两个单节点上重新单独配置
4. 原集群级证书、域名配置,需要针对单个节点重新单独配置