732 字
4 分钟

PVE快照复制虚拟机:模板克隆vs备份还原

前言#

上周我把一台 Ubuntu 服务器调整优化到了最佳状态,Nginx、SSL、防火墙全配好了。这时候我想保存这个状态,以后还能基于它开新机器。

如果你也有类似需求,继续看。

PVE的快照和VMware不太一样,它只是个”时光书签”,记住某个时刻的磁盘状态。快照本身不能独立存在,也不能直接变成新虚拟机。但有两种方法能解决这个需求。

方法一:模板克隆#

适合需要反复创建相同环境虚拟机的场景。把VM变成模板后,像复印机一样”复印”新机器。

登录PVE的Shell(节点→Shell),假设你的VM编号是100:

Terminal window
qm stop 100
qm rollback 100 clean-install # 回滚到你想要的快照
qm template 100 # 变成模板

执行后这台VM会变成小方框图标,表示它现在是模板,不能直接开机了。

在Web界面里右键模板→克隆,选择完整克隆,填新VM编号和名字。或者命令行:

Terminal window
qm clone 100 201 --name "dev-env-for-tom" --full
qm clone 100 202 --name "dev-env-for-jerry" --full

几秒钟就有了两台新机器。

速度极快,通常几秒到几分钟。但原VM变成模板后不能直接运行,需要提前规划。

方法二:备份还原#

适合偶尔复制一台、跨节点迁移、需要保留原VM运行的场景。

创建备份(原VM可以开着):

Terminal window
vzdump 100 --mode snapshot --compress zstd --storage local

--mode snapshot是快照模式备份,几乎不中断业务。Web界面操作更直观:选中VM→备份标签→立即备份。

还原成新VM:

Terminal window
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参数就是干这个的。

链接克隆省空间但别乱删。链接克隆像快捷方式,依赖原模板。如果删了模板,链接克隆就废了。生产环境用完整克隆。


附:命令清单#

Terminal window
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 # 还原备份

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
PVE快照复制虚拟机:模板克隆vs备份还原
https://blog.moewah.com/posts/pve-snapshot-clone-vs-backup-restore/
作者
MoeWah
发布于
2020-04-05
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
MoeWah
Hello, I'm MoeWah.
分类
标签
站点统计
文章
163
分类
9
标签
353
总字数
282,616
运行时长
0
最后活动
0 天前

目录