Patchwork [18/18] Introduce "kemari:" to enable FT migration mode (Kemari).

login
register
mail settings
Submitter Yoshiaki Tamura
Date Feb. 23, 2011, 1:48 p.m.
Message ID <1298468927-19193-19-git-send-email-tamura.yoshiaki@lab.ntt.co.jp>
Download mbox | patch
Permalink /patch/84146/
State New
Headers show

Comments

Yoshiaki Tamura - Feb. 23, 2011, 1:48 p.m.
When "kemari:" is set in front of URI of migrate command, it will turn
on ft_mode to start FT migration mode (Kemari).  On the receiver side,
the option looks like, -incoming kemari:<protocol>:<address>:<port>

Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hmp-commands.hx |    4 +++-
 migration.c     |   12 ++++++++++++
 qmp-commands.hx |    4 +++-
 3 files changed, 18 insertions(+), 2 deletions(-)

Patch

diff --git a/hmp-commands.hx b/hmp-commands.hx
index 372bef4..4588f38 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -760,7 +760,9 @@  ETEXI
 		      "\n\t\t\t -b for migration without shared storage with"
 		      " full copy of disk\n\t\t\t -i for migration without "
 		      "shared storage with incremental copy of disk "
-		      "(base image shared between src and destination)",
+		      "(base image shared between src and destination)"
+		      "\n\t\t\t put \"kemari:\" in front of URI to enable "
+		      "Fault Tolerance mode (Kemari protocol)",
         .user_print = monitor_user_noop,	
 	.mhandler.cmd_new = do_migrate,
     },
diff --git a/migration.c b/migration.c
index 82f4a4d..95096ef 100644
--- a/migration.c
+++ b/migration.c
@@ -48,6 +48,12 @@  int qemu_start_incoming_migration(const char *uri)
     const char *p;
     int ret;
 
+    /* check ft_mode (Kemari protocol) */
+    if (strstart(uri, "kemari:", &p)) {
+        ft_mode = FT_INIT;
+        uri = p;
+    }
+
     if (strstart(uri, "tcp:", &p))
         ret = tcp_start_incoming_migration(p);
 #if !defined(WIN32)
@@ -99,6 +105,12 @@  int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
         return -1;
     }
 
+    /* check ft_mode (Kemari protocol) */
+    if (strstart(uri, "kemari:", &p)) {
+        ft_mode = FT_INIT;
+        uri = p;
+    }
+
     if (strstart(uri, "tcp:", &p)) {
         s = tcp_start_outgoing_migration(mon, p, max_throttle, detach,
                                          blk, inc);
diff --git a/qmp-commands.hx b/qmp-commands.hx
index df40a3d..68ca48a 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -437,7 +437,9 @@  EQMP
 		      "\n\t\t\t -b for migration without shared storage with"
 		      " full copy of disk\n\t\t\t -i for migration without "
 		      "shared storage with incremental copy of disk "
-		      "(base image shared between src and destination)",
+		      "(base image shared between src and destination)"
+		      "\n\t\t\t put \"kemari:\" in front of URI to enable "
+		      "Fault Tolerance mode (Kemari protocol)",
         .user_print = monitor_user_noop,	
 	.mhandler.cmd_new = do_migrate,
     },