Skip to content
  • Jeff Cody's avatar
    qapi: Introduce blockdev-group-snapshot-sync command · 8802d1fd
    Jeff Cody authored
    
    
    This is a QAPI/QMP only command to take a snapshot of a group of
    devices. This is similar to the blockdev-snapshot-sync command, except
    blockdev-group-snapshot-sync accepts a list devices, filenames, and
    formats.
    
    It is attempted to keep the snapshot of the group atomic; if the
    creation or open of any of the new snapshots fails, then all of
    the new snapshots are abandoned, and the name of the snapshot image
    that failed is returned.  The failure case should not interrupt
    any operations.
    
    Rather than use bdrv_close() along with a subsequent bdrv_open() to
    perform the pivot, the original image is never closed and the new
    image is placed 'in front' of the original image via manipulation
    of the BlockDriverState fields.  Thus, once the new snapshot image
    has been successfully created, there are no more failure points
    before pivoting to the new snapshot.
    
    This allows the group of disks to remain consistent with each other,
    even across snapshot failures.
    
    Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
    Acked-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    8802d1fd