适用场景:双节点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服务,避免集群解散过程中出现异常漂移。

操作步骤

提前确认两个节点名称,假设为node1node2,请替换为自己节点的实际名称。

第一步:操作节点2,先将其从集群分离

所有命令均在node2上执行
1. 停止集群核心服务:

systemctl stop pve-cluster
systemctl stop corosync

2. 本地模式启动PVE文件系统:

pmxcfs -l

3. 删除集群核心配置:

rm -rf /etc/corosync/*
rm /etc/pve/corosync.conf

4. 重启PVE文件系统服务:

killall pmxcfs
systemctl start pve-cluster

5. 清理集群残留数据:

rm -rf /var/lib/corosync/*
# 仅保留/etc/pve/nodes/下自己节点的文件夹,删除node1的文件夹
rm -rf /etc/pve/nodes/node1

6. 清除集群SSH互信:
编辑/etc/pve/priv/authorized_keys,删除node1的公钥内容,仅保留node2自己的公钥。
7. 重启节点2

第二步:操作节点1,完成集群解散

所有命令均在node1上执行
1. 从集群中删除已分离的node2:

# 先尝试直接删除
pvecm delnode oldnode
# 如果报错(双节点集群丢失quorum),先执行以下命令再删除:
pvecm expected 1

2. 清除自身集群配置,变为独立节点:

systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm -rf /etc/corosync/*
rm /etc/pve/corosync.conf
killall pmxcfs
systemctl start pve-cluster

3. 清理集群残留数据:

rm -rf /var/lib/corosync/*
# 删除node2的残留配置文件夹
rm -rf /etc/pve/nodes/node2

4. 清除集群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. 原集群级证书、域名配置,需要针对单个节点重新单独配置

标签: none