PVE ZFS/LVM 块级存储导出虚拟机磁盘映像文件及恢复虚拟机
1 方法一:qemu-img
导出磁盘镜像
如果你只想导出磁盘本身(比如转成 RAW 或 QCOW2 文件),可以使用 qemu-img convert。
1. 1 找虚拟机磁盘路径
查看zfs存储r5上面的信息
pvesm list r5
发现一个磁盘
root@pve:~# pvesm list r5
Volid Format Type Size VMID
r5:vm-110-disk-0 raw images 34359738368 110
root@pve:~#
找磁盘的路径
pvesm path r5:vm-110-disk-0
root@pve:~# pvesm path r5:vm-110-disk-0
/dev/zvol/r5/vm-110-disk-0
root@pve:~#
此时找到虚拟机磁盘路径为:/dev/zvol/r5/vm-110-disk-0
1.2 使用 qemu-img convert
导出为本地文件
qemu-img convert -f raw -O qcow2 -c /dev/zvol/r5/vm-110-disk-0 /var/lib/vz/import/vm-110-disk-0.qcow2
提示:
- 如果目录
/var/lib/vz/import/
不存在,可以换个目录或者创建一下- 注意存储空间剩余大小避免导出失败。
- 导出磁盘需要一定时间,时间和你的磁盘大小硬盘读写速度等相关
qemu-img
工具参数说明:
-f raw
:导出的原格式,ZVOL 是原始块设备,格式为 raw,在上面的pvesm path <VMD-PATH>
命令可以看到-O qcow2
:输出格式(也可用raw
,vmdk
,qcow2
,qcow
)- 可添加
-c
参数对输出进行压缩(适用于 qcow2)
导出完成后可以在对应目录下查看文件
root@pve:~# cd /var/lib/vz/import/
root@pve:/var/lib/vz/import# ls
vm-110-disk-0.qcow2
root@pve:/var/lib/vz/import# du -sh vm-110-disk-0.qcow2
6.6G vm-110-disk-0.qcow2
root@pve:/var/lib/vz/import#
查看导出磁盘信息
qemu-img info vm-110-disk-0.qcow2
输出参考:
root@pve:/var/lib/vz/import# qemu-img info vm-110-disk-0.qcow2
image: vm-110-disk-0.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 2.43 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
filename: vm-110-disk-0.qcow2
protocol type: file
file length: 2.44 GiB (2617894912 bytes)
disk size: 2.43 GiB
root@pve:/var/lib/vz/import#
这里由于是pve9的标准导入目录,所以在web管理页面的 local存储->导入也可以看到

放到这里的硬盘,可以在虚拟机的硬件进行导入操作


2. 方法二:通过qm命令导出虚拟机为OVA/OVF
前置条件:虚拟机正常/完整
将整个 VM 导出为开放虚拟化格式(OVA),便于导入到 VMware、VirtualBox 等。
2.1 停止虚拟机
web停止或者命令:
qm stop <VMID>
qm stop 110
2.2 导出为 OVA 文件
qm export <VMID> /path/to/backup/vm-<VMID>.ova
qm export 110 /tmp/vm-110.ova
说明:
- <VMID> 是你的虚拟机 ID,如 100
- 输出文件是 .ova(tar 包),可在支持的平台上导入
- 此命令会自动处理磁盘转换(包括从 ZFS 卷读取数据)
✅ 优点:标准化、可移植
⚠️ 缺点:不能选择只导出磁盘,而是整个 VM
3. 利用ZFS快照导出
3.1 找磁盘路径
zfs list
输出参考:
root@pve:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
r5 32.5G 5.89G 128K /r5
r5/vm-110-disk-0 32.5G 33.4G 4.99G -
root@pve:~#
3.2 创建快照
zfs snapshot r5/vm-110-disk-0@export-snap
3.3 导出文件
3.3.1 导出zfs快照备份文件
提示:可用于ZFS恢复或文件传输
zfs send r5/vm-110-disk-0@export-snap > /var/lib/vz/import/vm-100-disk-0.zfs.send
3.3.2 导出转化为普通磁盘镜像
qemu-img convert -f raw -O qcow2 /var/lib/vz/import/vm-100-disk-0.zfs.send /var/lib/vz/import/vm-110-disk-0.qcow2
结果查看
root@pve:/var/lib/vz/import# du -sh *
6.5G vm-100-disk-0.zfs.send
6.5G vm-110-disk-0.qcow2
root@pve:/var/lib/vz/import#
4.导入空白虚拟机验证
4.1 空白虚拟机创建参考

4.2 导入刚才导出的磁盘
(提示:导入磁盘功能需要PVE 版本 9.x)


4.3 虚拟机引导配置

5. 开机校验
5.1 校验 qemu-img
导出磁盘情况

开机成功。
该方案适合:pve系统崩溃,虚拟机配置丢失只有存储上的磁盘还在的情况救援。
5.2 pve 整机备份校验
无需校验,官方稳。唯一是你需要操作前虚拟机正常。
该方案适合:常规备份或迁移
https://blog.xqlee.com/article/2510131558312173.html
评论