unraid虚拟机快照的实现

利用qcow2的快照功能,实现虚拟机快照

先决条件

  • BIOS:SeaBIOS
  • 主要 虚拟磁盘类型:qcow2

SeaBIOS对应传统启动方式,是mbr分区;OVMF对应是UEFI启动方式,是gpt分区。

很多标着UEFI启动的iso其实也是支持传统引导的,但标传统引导的一般是不支持UEFI的。

建议关机后再拍快照

因为unraid虚拟机创建后不允许修改BIOS引导启动方式,并且BIOS引导启动方式的选择还将影响磁盘内部的分区格式,所以必须在创建虚拟机时就选好了,后续不能更改,否则无法顺利引导进入系统

必须全部都是qcow2的磁盘,不能有raw类型的磁盘,直通的硬件建议取消直通再拍快照

#列出全部的虚拟机,包括关机着的
virsh list --all

#控制指定虚拟机,alpine-test是虚拟机名称
virsh start alpine-test #开机
virsh shutdown alpine-test #关机
virsh destroy alpine-test #强制关机(类似于断电,不建议在大量读写时进行)
virsh suspend alpine-test #暂停(冻结)
virsh resume alpine-test #从暂停(冻结)恢复运行

#创建虚拟机快照
virsh snapshot-create-as --domain alpine-test --name alpine-test.kz1 --description "虚拟机快照描述"

参数说明:
--domain alpine-test,是虚拟机名称
--name alpine-test.kz1,是快照名称,可以自己设定,用于区分多个快照
--disk-only --quiesce,是尝试冻结已开机的虚拟机来拍快照,拍完恢复,以保持文件一致性。开机时拍快照才需要使用
--description "虚拟机快照描述",是虚拟机快照描述,可以记录一些说明信息


#列出某个虚拟机的快照
virsh snapshot-list alpine-test

#还原虚拟机到某个快照,会直接丢失当前状态
#如果可能需要回滚,建议先再拍一次现在状态的快照,然后再回滚
virsh snapshot-revert alpine-test alpine-test.kz1

其他命令:

#查看磁盘文件(可以写绝对路径)是否是qcow2格式
file /mnt/cache/domains/alpine-test/vdisk1.img

#以下输出则代表是qcow2格式的
/mnt/cache/domains/alpine-test/vdisk1.img: QEMU QCOW Image (v3), 5368709120 bytes (v3), 5368709120 bytes


#转换磁盘格式。
#不能随便转,OVMF(UEFI)引导的转换为qcow2可能会启动不了的,SeaBIOS的一般没问题
qemu-img convert -f raw -O qcow2 /mnt/cache/domains/alpine-test/vdisk1.img /mnt/cache/domains/alpine-test/vdisk1.qcow2

qcow2无法在OVMF引导上拍快照,不拍快照是没问题可以正常使用的

root@unraid:/mnt/cache/domains/alpine-test2# virsh snapshot-create-as --domain alpine-test2 --name alpine-test2.kz1
error: Operation not supported: internal snapshots of a VM with pflash based firmware are not supported
  
 非常抱歉,根据您提供的错误信息,Unraid系统中的虚拟机可能使用了pflash固件,因此不支持创建内部快照。

pflash固件是一种用于虚拟机的固件类型,它通常用于模拟UEFI固件。在某些情况下,使用pflash固件的虚拟机可能不支持内部快照功能。

如果您需要创建快照,您可以尝试使用外部快照,这需要您手动创建一个镜像文件并将其用作快照存储。您可以使用qemu-img命令创建一个新的镜像文件,然后使用virsh snapshot-create命令将其作为外部快照添加到虚拟机中。

请注意,使用外部快照需要更多的手动管理和配置,并且可能不具备一些内部快照的便利性和性能优势。在使用快照功能之前,请确保您了解其工作原理和潜在的限制。

如果您需要更多关于Unraid系统中虚拟机快照的信息,建议参考Unraid的官方文档或社区支持,以获取更准确的指导和解决方案。

是的  测试出来了   unraid的OVMF(UEFI)引导启动,是不支持qcow2的快照功能,必须选SeaBIOS才行