PVE快照复制虚拟机:模板克隆vs备份还原
前言
上周我把一台 Ubuntu 服务器调整优化到了最佳状态,Nginx、SSL、防火墙全配好了。这时候我想保存这个状态,以后还能基于它开新机器。
如果你也有类似需求,继续看。
PVE的快照和VMware不太一样,它只是个”时光书签”,记住某个时刻的磁盘状态。快照本身不能独立存在,也不能直接变成新虚拟机。但有两种方法能解决这个需求。
方法一:模板克隆
适合需要反复创建相同环境虚拟机的场景。把VM变成模板后,像复印机一样”复印”新机器。
登录PVE的Shell(节点→Shell),假设你的VM编号是100:
qm stop 100qm rollback 100 clean-install # 回滚到你想要的快照qm template 100 # 变成模板执行后这台VM会变成小方框图标,表示它现在是模板,不能直接开机了。
在Web界面里右键模板→克隆,选择完整克隆,填新VM编号和名字。或者命令行:
qm clone 100 201 --name "dev-env-for-tom" --fullqm clone 100 202 --name "dev-env-for-jerry" --full几秒钟就有了两台新机器。
速度极快,通常几秒到几分钟。但原VM变成模板后不能直接运行,需要提前规划。
方法二:备份还原
适合偶尔复制一台、跨节点迁移、需要保留原VM运行的场景。
创建备份(原VM可以开着):
vzdump 100 --mode snapshot --compress zstd --storage local--mode snapshot是快照模式备份,几乎不中断业务。Web界面操作更直观:选中VM→备份标签→立即备份。
还原成新VM:
qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 301 --unique true--unique true自动处理MAC地址冲突。Web界面:数据中心→存储→备份→选中备份→还原。
原VM继续运行,可跨节点迁移,但备份还原需要时间。
怎么选?看你的需求:
需要反复创建相同环境的VM → 用模板克隆
偶尔复制一台、跨服务器迁移 → 用备份还原
避坑建议
快照不是备份。快照依赖原磁盘文件,如果原VM的磁盘坏了,快照也救不了你。重要数据用vzdump做真正的备份。
克隆前记得改网络配置。两台一模一样的VM同时开机,IP地址和MAC地址相同会冲突。备份还原的--unique true参数就是干这个的。
链接克隆省空间但别乱删。链接克隆像快捷方式,依赖原模板。如果删了模板,链接克隆就废了。生产环境用完整克隆。
附:命令清单
qm listsnapshot 100 # 查看所有快照qm snapshot 100 before-update # 创建快照qm rollback 100 before-update # 回滚快照qm template 100 # 转为模板qm clone 100 201 --full # 完整克隆vzdump 100 --mode snapshot # 创建备份qmrestore xxx.vma.zst 301 # 还原备份推荐文章
基于标签匹配 · 智能推荐支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
喵斯基部落