12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- LIVE BLOCK OPERATIONS
- =====================
- High level description of live block operations. Note these are not
- supported for use with the raw format at the moment.
- Snapshot live merge
- ===================
- Given a snapshot chain, described in this document in the following
- format:
- [A] -> [B] -> [C] -> [D]
- Where the rightmost object ([D] in the example) described is the current
- image which the guest OS has write access to. To the left of it is its base
- image, and so on accordingly until the leftmost image, which has no
- base.
- The snapshot live merge operation transforms such a chain into a
- smaller one with fewer elements, such as this transformation relative
- to the first example:
- [A] -> [D]
- Currently only forward merge with target being the active image is
- supported, that is, data copy is performed in the right direction with
- destination being the rightmost image.
- The operation is implemented in QEMU through image streaming facilities.
- The basic idea is to execute 'block_stream virtio0' while the guest is
- running. Progress can be monitored using 'info block-jobs'. When the
- streaming operation completes it raises a QMP event. 'block_stream'
- copies data from the backing file(s) into the active image. When finished,
- it adjusts the backing file pointer.
- The 'base' parameter specifies an image which data need not be streamed from.
- This image will be used as the backing file for the active image when the
- operation is finished.
- In the example above, the command would be:
- (qemu) block_stream virtio0 A
- Live block copy
- ===============
- To copy an in use image to another destination in the filesystem, one
- should create a live snapshot in the desired destination, then stream
- into that image. Example:
- (qemu) snapshot_blkdev ide0-hd0 /new-path/disk.img qcow2
- (qemu) block_stream ide0-hd0
|