summaryrefslogtreecommitdiffstats
path: root/qapi
diff options
context:
space:
mode:
authorMax Reitz2018-06-13 20:18:21 +0200
committerMax Reitz2018-06-18 17:05:15 +0200
commitd06107ade0ce74dc39739bac80de84b51ec18546 (patch)
treedb91864d1ef290e181e2787f6cea856b0e15766d /qapi
parentjob: Add job_progress_increase_remaining() (diff)
downloadqemu-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.json18
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.