kvm 快照(libvirt)

kvm 快照(libvirt)

我通过 libvirt 管理 kvm,并使用 qcow2 文件格式。我可以使用快照创建正在运行的 wm 的快照,但如果我将 qcow2 映像传输到另一台主机并通过 virsh define 定义传输的主机,则我无法看到之前创建的快照。有没有办法也可以传输快照?

谢谢 ;-)

答案1

假设您已经传输了图像本身,并将其定义配置为目标 libvirt 实例,那么您需要做的就是传输快照定义。这里有一个小脚本可以帮助您:

#!/bin/sh

SRC_URL=qemu:///system
SRC_DOMAIN_NAME=test
SRC_DOMAIN_UUID=`virsh -c $SRC_URL domuuid $SRC_DOMAIN_NAME`

DST_URL=qemu+ssh://example.com/system
DST_DOMAIN_NAME=test-clone
DST_DOMAIN_UUID=`virsh -c $DST_URL domuuid $DST_DOMAIN_NAME`

# Dump snapshot definitions
virsh -c $SRC_URL snapshot-list $SRC_DOMAIN_NAME | \
awk '$1 ~ /[[:digit:]]+/ { print $1 }' | \
xargs -I{} -n1 sh -c 'virsh -c "$1" snapshot-dumpxml "$2" "$3" | sed s#$4#$5# > "$2-$3.xml"' -- \
$SRC_URL $SRC_DOMAIN_NAME {} $SRC_DOMAIN_UUID $DST_DOMAIN_UUID

# Restore snapshot definitions
find . -type f -name "$SRC_DOMAIN_NAME-*.xml" | \
xargs -n1 echo virsh -c $DST_URL snapshot-create $DST_DOMAIN_NAME 

只需调整变量来匹配您的主机和域。

相关内容