PVE 迁移翻车自救

2024-10-1300 分钟
type
status
date
slug
summary
tags
category
icon
password
 
这两天刚购入了一台天钡 wrtpro 作为新 Homelab 和 NAS。到手后也安装了 PVE,打算组一个 PVE Cluster,将部分业务迁移到新机器上
 
但 PVE 这个 Cluster 功能非常不产品化,如果当前有任何 LXC 或 VM 正在运行,就不能加入进 Cluster 中
官方论坛给出了一个方案,可以临时移走 /etc/pve/lxc/etc/pve/qemu-server 下的配置文件,这样 PVE 就认为当前节点上不存在 LXC 和 VM 了,待加入 Cluster 后再恢复配置文件:
 
于是我就将配置文件都 rename 了一下,成功加入了 Cluster。而在 rename 回来的时候发现!!!配置文件所在的目录都被清空了!!!
notion image
 
两眼一黑,所有 LXC 和 VM 都丢了,真正 all in bomb。但冷静下来后看了下,还好虚拟磁盘都在,应该还能从这里恢复数据
notion image
 
丢失的 LXC 和 VM 配置已经找不回来,只能凭着记忆重写一份。或者创建新的再指定磁盘:
notion image
有了配置文件后,LXC 也都显示在了界面上,逐个启动确认正常或再次调整配置
notion image
现在 Cluster 已经有了,就可以直接在节点之间一键迁移 LXC 和 VM。不过这个 Cluster 比较弱智的另一点是,要求两端的存储在「名字」上是一样的,而不是提供目标节点存储选项,所以不一样的话还得先迁移一下磁盘所在的存储或想办法改个名
notion image
然后就可以直接迁移到另一个节点上
notion image
等待所有 LXC 和 VM 都迁移完成后,再次检查业务是否正常
notion image
 
总结一下,只要磁盘还在,数据就还能保住,只要恢复 LXC 和 VM 本身的配置文件即可,或者直接重新创建新的 LXC 和 VM,将磁盘挂载进去也行
从这件事也可以看出,PVE 在一些企业级一点的功能上还远不够产品化,自己操作上也不够谨慎,应该考虑其它的备份目录和方式
 
PS:最后,PVE 这个 Cluster 设计是没有 master 节点的,看起来只是单纯的 quorum 操作完成同步(查了下是基于 corosync 实现的),每个节点的所有 LXC 和 VM 配置都会通过 pmxcfs 同步到其他节点上,所以这也可能是加入集群后文件被清空的原因(配置文件夹在初次同步后被覆盖了)
notion image
 

下一篇

译:使 Rust library 兼容 no_std

Loading...