Difference between revisions of "Virsh blockcommit"

From wikieduonline
Jump to navigation Jump to search
 
(18 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]] 2.1 and [[libvirt-1.2.9]].<ref>https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref>
+
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/qemu.conf]]</code>. You may need to change it to none to allow <code>virsh blockcommit</code>
 
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>
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 domblklist]] MY_DOMAIN_NAME
 
[[virsh snapshot-list]] MY_DOMAIN_NAME
 
 
virsh blockcommit MY_DOMAIN_NAME
 
error: command 'blockcommit' requires <path> option
 
  
 
  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 hdc --active --pivot
+
  virsh blockcommit MY_DOMAIN_NAME /path/to/libvirt/MY_DOMAIN_NAME_DISK --active --pivot
  error: block copy still active: disk 'hdc' already in active block job
+
  Successfully pivoted
Execute:
 
virsh blockjob MY_DOMAIN_NAME hdc --abort
 
  
 
  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
+
  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
 
  error: block copy still active: disk 'vda' already in active block job
  
Use: <code>[[virsh domblklist]] --details</code> to find your block name.
+
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 56: 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> and <code>--quiesce</code> option in <code>[[virsh snapshot-create-as]]</code>
 
* <code>[[virsh snapshot-create-as]]</code> and <code>--quiesce</code> option in <code>[[virsh snapshot-create-as]]</code>
Line 61: Line 69:
  
 
* <code>[[KVM backup.sh]]</code>
 
* <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

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]

Related terms[edit]

See also[edit]

  • https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
  • https://github.com/milkey-mouse/backup-vm/issues/17#issuecomment-547843000
  • Advertising: