aboutsummaryrefslogtreecommitdiff
path: root/docs/block-replication.txt
diff options
context:
space:
mode:
authorLukas Straub <lukasstraub2@web.de>2019-10-24 16:25:57 +0200
committerJason Wang <jasowang@redhat.com>2020-03-03 18:04:47 +0800
commit90dfe59b33c9c20b81641d46a4dddbe89c5fba7a (patch)
treee4507e95f4d83b8e9ade9a9460dc8fd372d6e80a /docs/block-replication.txt
parent1973136532f75fdcf78251317e3c97b950595155 (diff)
colo: Update Documentation for continuous replication
Document the qemu command-line and qmp commands for continuous replication Signed-off-by: Lukas Straub <lukasstraub2@web.de> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'docs/block-replication.txt')
-rw-r--r--docs/block-replication.txt28
1 files changed, 18 insertions, 10 deletions
diff --git a/docs/block-replication.txt b/docs/block-replication.txt
index 6bde6737fb..108e9166a8 100644
--- a/docs/block-replication.txt
+++ b/docs/block-replication.txt
@@ -65,12 +65,12 @@ blocks that are already in QEMU.
^ || .----------
| || | Secondary
1 Quorum || '----------
- / \ ||
- / \ ||
- Primary 2 filter
- disk ^ virtio-blk
- | ^
- 3 NBD -------> 3 NBD |
+ / \ || virtio-blk
+ / \ || ^
+ Primary 2 filter |
+ disk ^ 7 Quorum
+ | /
+ 3 NBD -------> 3 NBD /
client || server 2 filter
|| ^ ^
--------. || | |
@@ -106,6 +106,10 @@ any state that would otherwise be lost by the speculative write-through
of the NBD server into the secondary disk. So before block replication,
the primary disk and secondary disk should contain the same data.
+7) The secondary also has a quorum node, so after secondary failover it
+can become the new primary and continue replication.
+
+
== Failure Handling ==
There are 7 internal errors when block replication is running:
1. I/O error on primary disk
@@ -171,16 +175,18 @@ Primary:
leading whitespace.
5. The qmp command line must be run after running qmp command line in
secondary qemu.
- 6. After failover we need remove children.1 (replication driver).
+ 6. After primary failover we need remove children.1 (replication driver).
Secondary:
-drive if=none,driver=raw,file.filename=1.raw,id=colo1 \
- -drive if=xxx,id=topxxx,driver=replication,mode=secondary,top-id=topxxx\
+ -drive if=none,id=childs1,driver=replication,mode=secondary,top-id=childs1
file.file.filename=active_disk.qcow2,\
file.driver=qcow2,\
file.backing.file.filename=hidden_disk.qcow2,\
file.backing.driver=qcow2,\
file.backing.backing=colo1
+ -drive if=xxx,driver=quorum,read-pattern=fifo,id=top-disk1,\
+ vote-threshold=1,children.0=childs1
Then run qmp command in secondary qemu:
{ 'execute': 'nbd-server-start',
@@ -234,6 +240,8 @@ Secondary:
The primary host is down, so we should do the following thing:
{ 'execute': 'nbd-server-stop' }
+Promote Secondary to Primary:
+ see COLO-FT.txt
+
TODO:
-1. Continuous block replication
-2. Shared disk
+1. Shared disk