Difference between revisions of "Virsh blockcommit"
Jump to navigation
Jump to search
↑ https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
↑ https://github.com/milkey-mouse/backup-vm/issues/17#issuecomment-547843000
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<code>[[virsh]] blockcommit domain path [bandwidth] [--bytes] [base] [--shallow] [top] [--delete] [--keep-relative] [--wait [--async] [--verbose]] [--timeout seconds] [--active] [{--pivot | --keep-overlay}]</code> | <code>[[virsh]] blockcommit domain path [bandwidth] [--bytes] [base] [--shallow] [top] [--delete] [--keep-relative] [--wait [--async] [--verbose]] [--timeout seconds] [--active] [{--pivot | --keep-overlay}]</code> | ||
− | Requires at least [[QEMU | + | Requires at least [[QEMU releases|QEMU 2.1]] and [[libvirt-1.2.9]] (2014).<ref>https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref> |
− | Review your security_driver configuration in <code>/ect/libvirt/ | + | Review your security_driver configuration in <code>[[/ect/libvirt/qemu.conf]]</code>. You may need to change it to none to allow <code>virsh blockcommit</code> |
:<code>security_driver = "none"</code><ref>https://github.com/milkey-mouse/backup-vm/issues/17#issuecomment-547843000</ref> | :<code>security_driver = "none"</code><ref>https://github.com/milkey-mouse/backup-vm/issues/17#issuecomment-547843000</ref> | ||
Line 11: | Line 11: | ||
:<code>--wait</code> | :<code>--wait</code> | ||
:<code>--verbose</code> | :<code>--verbose</code> | ||
+ | :<code>path</code>, path specifies fully-qualified path of the disk; it corresponds to a unique target name (<target dev='name'/>) or source file (<source file='name'/>) for one of the disk devices attached to domain (see also [[domblklist]] for listing these names). Bandwidth specifies copying bandwidth limit in MiB/s, although for [[qemu]], it may be non-zero only for an online domain | ||
== Examples == | == Examples == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
virsh blockcommit MY_DOMAIN_NAME [hdc|vda|xxx] --active | virsh blockcommit MY_DOMAIN_NAME [hdc|vda|xxx] --active | ||
Line 26: | Line 21: | ||
Successfully pivoted | Successfully pivoted | ||
− | virsh blockcommit MY_DOMAIN_NAME | + | virsh blockcommit MY_DOMAIN_NAME /path/to/libvirt/MY_DOMAIN_NAME_DISK --active --pivot |
− | + | Successfully pivoted | |
− | |||
− | |||
virsh blockcommit MY_DOMAIN_NAME vda --active --pivot | virsh blockcommit MY_DOMAIN_NAME vda --active --pivot | ||
Line 37: | Line 30: | ||
Block commit: [ 22 %] | Block commit: [ 22 %] | ||
Successfully pivoted | Successfully pivoted | ||
+ | |||
+ | |||
+ | Use: <code>[[virsh domblklist]] VM_NAME --details</code> to find your block name. | ||
+ | |||
+ | |||
+ | === Examples with errors === | ||
+ | virsh blockcommit MY_DOMAIN_NAME | ||
+ | error: command 'blockcommit' requires <path> option | ||
virsh blockcommit MY_DOMAIN_NAME hda --active --pivot | virsh blockcommit MY_DOMAIN_NAME hda --active --pivot | ||
error: invalid argument: top '/path/to/libvirt/MY_DOMAIN_NAME.qcow2' in chain for 'hda' has no backing file | error: invalid argument: top '/path/to/libvirt/MY_DOMAIN_NAME.qcow2' in chain for 'hda' has no backing file | ||
− | + | virsh blockcommit stable-vm-1 /path/to/libvirt/MY_DOMAIN_NAME_DISK --active --pivot | |
+ | error: block copy still active: disk 'vda' already in active block job | ||
+ | |||
+ | virsh blockcommit MY_DOMAIN_NAME hdc --active --pivot | ||
+ | error: block copy still active: disk 'hdc' already in active block job | ||
+ | Execute: | ||
+ | [[virsh blockjob]] MY_DOMAIN_NAME hdc --abort | ||
+ | (no output) | ||
+ | virsh blockjob MY_DOMAIN_NAME vda --info | ||
+ | No current block job for vda | ||
== Journalctl errors == | == Journalctl errors == | ||
Line 53: | Line 63: | ||
== Related terms == | == Related terms == | ||
+ | * <code>[[virsh blockjob]] MY_DOMAIN_NAME vda --info</code> | ||
* <code>[[virsh blockpull]]</code> | * <code>[[virsh blockpull]]</code> | ||
− | * <code>[[virsh snapshot-create-as]]</code> | + | * <code>[[virsh snapshot-create-as]]</code> and <code>--quiesce</code> option in <code>[[virsh snapshot-create-as]]</code> |
* <code>[[virsh domblklist]]</code> | * <code>[[virsh domblklist]]</code> | ||
− | * [[KVM backup.sh]] | + | |
+ | * <code>[[KVM backup.sh]]</code> | ||
+ | * <code>[[virsh domblklist]] MY_DOMAIN_NAME</code> | ||
+ | * <code>[[virsh snapshot-list]] MY_DOMAIN_NAME</code> | ||
== See also == | == See also == |
Latest revision as of 15:42, 5 October 2020
virsh blockcommit domain path [bandwidth] [--bytes] [base] [--shallow] [top] [--delete] [--keep-relative] [--wait [--async] [--verbose]] [--timeout seconds] [--active] [{--pivot | --keep-overlay}]
Requires at least QEMU 2.1 and libvirt-1.2.9 (2014).[1]
Review your security_driver configuration in /ect/libvirt/qemu.conf
. You may need to change it to none to allow virsh blockcommit
security_driver = "none"
[2]
Options:
--active
to trigger a two-phase active commit--pivot
making base the new active image and invalidating top--wait
--verbose
path
, path specifies fully-qualified path of the disk; it corresponds to a unique target name (<target dev='name'/>) or source file (<source file='name'/>) for one of the disk devices attached to domain (see also domblklist for listing these names). Bandwidth specifies copying bandwidth limit in MiB/s, although for qemu, it may be non-zero only for an online domain
Contents
Examples[edit]
virsh blockcommit MY_DOMAIN_NAME [hdc|vda|xxx] --active Active Block Commit started
virsh blockcommit MY_DOMAIN_NAME vda --active --pivot Successfully pivoted
virsh blockcommit MY_DOMAIN_NAME /path/to/libvirt/MY_DOMAIN_NAME_DISK --active --pivot Successfully pivoted
virsh blockcommit MY_DOMAIN_NAME vda --active --pivot Commit aborted
virsh blockcommit MY_DOMAIN_NAME vda --active --pivot --wait --verbose Block commit: [ 22 %] Successfully pivoted
Use: virsh domblklist VM_NAME --details
to find your block name.
Examples with errors[edit]
virsh blockcommit MY_DOMAIN_NAME error: command 'blockcommit' requires <path> option
virsh blockcommit MY_DOMAIN_NAME hda --active --pivot error: invalid argument: top '/path/to/libvirt/MY_DOMAIN_NAME.qcow2' in chain for 'hda' has no backing file
virsh blockcommit stable-vm-1 /path/to/libvirt/MY_DOMAIN_NAME_DISK --active --pivot error: block copy still active: disk 'vda' already in active block job
virsh blockcommit MY_DOMAIN_NAME hdc --active --pivot error: block copy still active: disk 'hdc' already in active block job Execute: virsh blockjob MY_DOMAIN_NAME hdc --abort (no output) virsh blockjob MY_DOMAIN_NAME vda --info No current block job for vda
Journalctl errors[edit]
Feb 04 16:29:52 SERVER libvirtd[14189]: 2019-11-21 15:08:13.035+0000: 14192: error : qemuDomainBlockCommit:17568 : invalid argument: top '/path/to/file/VM_NAME.qcow2' in chain for 'hda' has no backing file
Feb 04 16:29:52 SERVER libvirtd[14974]: 2020-02-04 12:29:52.421+0000: 14977: error : qemuDomainBlockCommit:17555 : invalid argument: commit of 'hdc' active layer requires active flag
Activities[edit]
- Create a KVM Live backup using
virsh snapshot-create-as
andvirsh blockcommit
- Read https://www.redhat.com/archives/libvirt-users/2015-September/msg00042.html from Eric Blake (Red Hat)
Related terms[edit]
virsh blockjob MY_DOMAIN_NAME vda --info
virsh blockpull
virsh snapshot-create-as
and--quiesce
option invirsh snapshot-create-as
virsh domblklist
KVM backup.sh
virsh domblklist MY_DOMAIN_NAME
virsh snapshot-list MY_DOMAIN_NAME
See also[edit]
virsh blockcopy
,virsh blockjob
,virsh blockcommit
,virsh domblklist
,virsh blockresize
,virsh blockpull
virsh console
virsh
: Storage information, Connecting, Operations, Memory, Snapshots, Networking, CPU, release notes,virsh nodedev-list
- libvirtd:
systemctl status libvirtd
,systemctl status libvirt-guests
, Libvirt release notes, logs,libvirtd.conf
,/etc/libvirt/
,/var/log/libvirt/
Advertising: