• F
    block: add event when disk usage exceeds threshold · e2462113
    Francesco Romani 提交于
    Managing applications, like oVirt (http://www.ovirt.org), make extensive
    use of thin-provisioned disk images.
    To let the guest run smoothly and be not unnecessarily paused, oVirt sets
    a disk usage threshold (so called 'high water mark') based on the occupation
    of the device,  and automatically extends the image once the threshold
    is reached or exceeded.
    
    In order to detect the crossing of the threshold, oVirt has no choice but
    aggressively polling the QEMU monitor using the query-blockstats command.
    This lead to unnecessary system load, and is made even worse under scale:
    deployments with hundreds of VMs are no longer rare.
    
    To fix this, this patch adds:
    * A new monitor command `block-set-write-threshold', to set a mark for
      a given block device.
    * A new event `BLOCK_WRITE_THRESHOLD', to report if a block device
      usage exceeds the threshold.
    * A new `write_threshold' field into the `BlockDeviceInfo' structure,
      to report the configured threshold.
    
    This will allow the managing application to use smarter and more
    efficient monitoring, greatly reducing the need of polling.
    
    [Updated qemu-iotests 067 output to add the new 'write_threshold'
    property. --Stefan]
    [Changed g_assert_false() to !g_assert() to fix the build on older glib
    versions. --Kevin]
    Signed-off-by: NFrancesco Romani <fromani@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Message-id: 1421068273-692-1-git-send-email-fromani@redhat.com
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    e2462113
Makefile 23.1 KB