Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
14.5.16. Using blockpull to Shorten a Backing Chain
blockpull
can be used in in the following applications:
- Flattens an image by populating it with data from its backing image chain. This makes the image file self-contained so that it no longer depends on backing images and looks like this:
- Before: base.img ← Active
- After: base.img is no longer used by the guest and Active contains all of the data.
- Flattens part of the backing image chain. This can be used to flatten snapshots into the top-level image and looks like this:
- Before: base ← sn1 ←sn2 ← active
- After: base.img ← active. Note that active now contains all data from sn1 and sn2 and neither sn1 nor sn2 are used by the guest.
- Moves the disk image to a new file system on the host. This is allows image files to be moved while the guest is running and looks like this:
- Before (The original image file):
/fs1/base.vm.img
- After:
/fs2/active.vm.qcow2
is now the new file system and/fs1/base.vm.img
is no longer used.
- Useful in live migration with post-copy storage migration. The disk image is copied from the source host to the destination host after live migration completes.In short this is what happens: Before:
/source-host/base.vm.img
After:/destination-host/active.vm.qcow2
./source-host/base.vm.img
is no longer used.
Procedure 14.3. Using blockpull to Shorten a Backing Chain
- It may be helpful to run this command prior to running
blockpull
:#
virsh snapshot-create-as $dom $name - disk-only
- If the chain looks like this:
base ← snap1 ← snap2 ← active
run the following:#
virsh blockpull $dom $disk snap1
This command makes 'snap1' the backing file of active, by pulling data from snap2 into active resulting in: base ← snap1 ← active. - Once the
blockpull
is complete, the libvirt tracking of the snapshot that created the extra image in the chain is no longer useful. Delete the tracking on the outdated snapshot with this command:#
virsh snapshot-delete $dom $name - metadata
Additional applications of
blockpull
can be done as follows:
- To flatten a single image and populate it with data from its backing image chain:
# virsh blockpull example-domain vda - wait
- To flatten part of the backing image chain:
# virsh blockpull example-domain vda - base /path/to/base.img - wait
- To move the disk image to a new file system on the host:
# virsh snapshot-create example-domaine - xmlfile /path/to/new.xml - disk-only
followed by# virsh blockpull example-domain vda - wait
- To use live migration with post-copy storage migration:
- On the destination run:
# qemu-img create -f qcow2 -o backing_file=/source-host/vm.img /destination-host/vm.qcow2
- On the source run:
# virsh migrate example-domain
- On the destination run:
# virsh blockpull example-domain vda - wait