mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 22:03:54 -06:00
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>
This commit is contained in:
parent
62f1360059
commit
d06107ade0
2 changed files with 265 additions and 5 deletions
|
@ -1050,6 +1050,24 @@
|
|||
{ 'enum': 'MirrorSyncMode',
|
||||
'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:
|
||||
#
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue