加入 PVE 集群及备份恢复完整流程
1. 加入 PVE 集群所需时间
加入 PVE 集群的时间主要受 集群规模、网络环境 和 节点硬件 影响,通常 几分钟内 可以完成,但具体时间可能有所不同。
场景 | 预计时间 |
---|---|
干净的新节点(无 VM,无存储冲突) | 1-3 分钟 |
有 VM,需备份/删除后加入 | 5-10 分钟 |
大规模集群(>5 节点) | 5-15 分钟(取决于 corosync 状态) |
网络不稳定或 MTU 问题 | 可能超时或失败 |
2. 影响加入集群时间的因素
影响因素 | 可能影响的时间 |
节点数量 | 集群节点多时,corosync 需要同步数据,可能稍慢(一般 1-5 分钟) |
网络延迟 | 高延迟或丢包会导致 corosync 组播通信超时(可能增加到 10 分钟以上) |
存储类型 | 如果集群使用共享存储(如 Ceph),同步数据可能会花费额外时间 |
已有虚拟机 | 如果新加入的节点上已有 VM 可能导致失败,需要先处理 |
硬件性能 | 低性能 CPU 或磁盘 IO 可能导致 corosync 处理较慢 |
3. 备份、删除虚拟机及恢复流程
3.1 备份本地虚拟机
在 PVE 终端执行以下命令,以 vzdump
方式备份所有虚拟机。
# 先列出所有虚拟机 ID
qm list
# 备份单个虚拟机(ID 100)
vzdump 100 --dumpdir /mnt/backup/
# 备份所有虚拟机
vzdump --all --compress lzo --dumpdir /mnt/backup/
注意:
-
备份文件通常存放在
/var/lib/vz/dump/
,可以修改/etc/vzdump.conf
设置新路径。 -
/mnt/backup/
需要有足够的存储空间,可参考 扩展 PVE 备份分区大小。
3.2 删除虚拟机(防止 ID 冲突)
# 停止虚拟机
qm stop 100
# 删除虚拟机
qm destroy 100
4. 如何加快 PVE 加入集群的速度?
4.1 保证网络稳定
-
检查网络连通性
ping -c 5 <集群主节点 IP>
-
确保 MTU 适配 corosync
ip link show
-
mtu 1500
(默认)或mtu 9000
(jumbo frames)
-
-
查看 corosync 日志是否有异常
journalctl -xe
4.2 确保 PVE 版本一致
pveversion -v
集群所有节点的 PVE 版本、corosync 版本需要一致,否则可能失败。
4.3 手动检查 corosync 状态
systemctl status corosync
4.4 如果加入失败,手动移除并重新尝试
pvecm delnode <失败的节点>
5. 恢复虚拟机
加入集群后,可以从之前的备份恢复虚拟机:
# 列出备份文件
ls /mnt/backup/
# 恢复单个虚拟机(ID 100)
qmrestore /mnt/backup/vzdump-qemu-100-*.lzo 100
恢复后,确认虚拟机可以正常启动:
qm start 100
6. 扩展 PVE 备份存储空间
如果 /var/lib/vz/dump/
备份空间不足,可以扩展存储:
6.1 挂载新磁盘作为备份存储
# 查看磁盘情况
lsblk
fdisk -l
# 创建新分区(假设 /dev/sdb)
fdisk /dev/sdb
# 格式化
mkfs.ext4 /dev/sdb1
# 挂载新存储
mkdir -p /mnt/backup
mount /dev/sdb1 /mnt/backup
6.2 持久化挂载(防止重启丢失)
echo "/dev/sdb1 /mnt/backup ext4 defaults 0 2" >> /etc/fstab
mount -a
6.3 修改 PVE 备份目录
nano /etc/vzdump.conf
添加:
dumpdir: /mnt/backup
7. 结论
-
最快 1-3 分钟(无 VM、网络正常)
-
有 VM 需处理时 5-10 分钟
-
大规模集群或网络问题可能超过 10 分钟
-
提前备份 VM,确保 PVE 版本一致,可减少加入失败的可能性
可以使用 journalctl -xe
或 pvecm status
查看具体进度,以便诊断问题。🚀