diff options
author | Max Reitz | 2018-06-13 20:18:21 +0200 |
---|---|---|
committer | Max Reitz | 2018-06-18 17:05:15 +0200 |
commit | d06107ade0ce74dc39739bac80de84b51ec18546 (patch) | |
tree | db91864d1ef290e181e2787f6cea856b0e15766d /qapi | |
parent | job: Add job_progress_increase_remaining() (diff) | |
download | qemu-d06107ade0ce74dc39739bac80de84b51ec18546.tar.gz qemu-d06107ade0ce74dc39739bac80de84b51ec18546.tar.xz qemu-d06107ade0ce74dc39739bac80de84b51ec18546.zip |
block/mirror: Add active mirroring
This patch implements active synchronous mirroring. In active mode, the
passive mechanism will still be in place and is used to copy all
initially dirty clusters off the source disk; but every write request
will write data both to the source and the target disk, so the source
cannot be dirtied faster than data is mirrored to the target. Also,
once the block job has converged (BLOCK_JOB_READY sent), source and
target are guaranteed to stay in sync (unless an error occurs).
Active mode is completely optional and currently disabled at runtime. A
later patch will add a way for users to enable it.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 20180613181823.13618-13-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r-- | qapi/block-core.json | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json index ab629d1647..96f8da1322 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -1051,6 +1051,24 @@ 'data': ['top', 'full', 'none', 'incremental'] } ## +# @MirrorCopyMode: +# +# An enumeration whose values tell the mirror block job when to +# trigger writes to the target. +# +# @background: copy data in background only. +# +# @write-blocking: when data is written to the source, write it +# (synchronously) to the target as well. In +# addition, data is copied in background just like in +# @background mode. +# +# Since: 3.0 +## +{ 'enum': 'MirrorCopyMode', + 'data': ['background', 'write-blocking'] } + +## # @BlockJobInfo: # # Information about a long-running block device operation. |