背景
我有一个QEMU/KVM虚拟机,其虚拟磁盘是qcow2文件。为了创建快照,我一直在使用
sudo virsh snapshot-create-as <vm_name> <snapshot_name>
现在我可以使用以下方式显示它们virsh snapshot-list --tree
:
$ sudo virsh snapshot-list --tree my_vm
snapshot_001
|
+- snapshot_002
|
+- snapshot_003
我想重命名这些快照(例如从snapshot_00X
到my_snapshot_00X
),但没有virsh snapshot-rename
命令。我能想到的两种可能的解决方法似乎都有严重的缺陷,我很高兴知道是否有更好的解决方法。
解决方法1
对于我想要重命名的每个快照,我可以这样做:
sudo snapshot-edit <vm_name> <snapshot_name> --rename
然后编辑<name>
生成的 XML 中元素的内容。
然而,man virsh
似乎强烈警告不要这样做(我的重点):
请注意,更改快照名称必须小心,因为某些快照的内容,例如单个 qcow2 文件中的内部快照,只能从原始名称访问。
因为在我的例子中,快照确实是单个 qcow2 文件中的内部快照,所以听起来好像使用virsh snapshot-edit
可能会使它们无法访问。
解决方法2
我想,我可以用来qemu-img
将内部快照转换为外部快照加一个支持文件,然后重命名它们,然后将它们重新组合成单个 qcow2 文件的内部快照。
但这并不简单,而且还需要手动编辑虚拟机来恢复我使用类似命令的能力virsh snapshot-revert
(如果没有这些命令,快照实际上毫无用处)。如果没有更好的方法,我会感到非常惊讶。
问题
与上面给出的解决方法相比,是否有更好的方法来重命名使用 创建的一系列 QEMU/KVM 内部 qcow2 快照virsh snapshot-create-as
,而不失去通过 运行它们的能力virsh snapshot-revert
?