14.5.15. Using blockcommit to Shorten a Backing Chain

This section demonstrates how to use virsh blockcommit to shorten a backing chain. For more background on backing chains, see Section 14.5.18, “Disk Image Management with Live Block Copy”.
blockcommit copies data from one part of the chain down into a backing file, allowing you to pivot the rest of the chain in order to bypass the committed portions. For example, suppose this is the current state:
      base ← snap1 ← snap2 ← active.
Using blockcommit moves the contents of snap2 into snap1, allowing you to delete snap2 from the chain, making backups much quicker.

Procedure 14.2. virsh blockcommit

  • Run the following command:
    # virsh blockcommit $dom $disk -base snap1 -top snap2 -wait -verbose
    The contents of snap2 are moved into snap1, resulting in:
    base ← snap1 ← active. Snap2 is no longer valid and can be deleted

    Warning

    blockcommit will corrupt any file that depends on the -base option (other than files that depend on the -top option, as those files now point to the base). To prevent this, do not commit changes into files shared by more than one guest. The -verbose option allows the progress to be printed on the screen.