web-dev-qa-db-ja.com

kvmスナップショット(libvirt)

Iamはlibvirtによってkvmを管理し、qcow2ファイル形式を使用します。実行中のwmのスナップショットをsnapshot-createコマンドで作成できますが、qcow2イメージを別のホストに転送し、転送されたホストをvirsh defineで定義すると、以前に作成されたスナップショットが表示されません。スナップショットを転送する方法もありますか?

ありがとう;-)

2
user94633

イメージ自体をすでに転送し、それらの定義を宛先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 

ホストとドメインに一致するように変数を調整するだけです。

2