]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: Add --unsafe option to migrate command
authorJiri Denemark <jdenemar@redhat.com>
Tue, 21 Feb 2012 12:19:46 +0000 (13:19 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 23 Feb 2012 13:23:26 +0000 (14:23 +0100)
tools/virsh.c
tools/virsh.pod

index e712e53872325dd25c25780c1cf912a5a4635f1e..3be86ed97bac659ce65455ac33711dfab674c2d6 100644 (file)
@@ -6819,6 +6819,7 @@ static const vshCmdOptDef opts_migrate[] = {
     {"copy-storage-inc", VSH_OT_BOOL, 0, N_("migration with non-shared storage with incremental copy (same base image shared between source and destination)")},
     {"change-protection", VSH_OT_BOOL, 0,
      N_("prevent any configuration changes to domain until migration ends)")},
+    {"unsafe", VSH_OT_BOOL, 0, N_("force migration even if it may be unsafe")},
     {"verbose", VSH_OT_BOOL, 0, N_("display the progress of migration")},
     {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
     {"desturi", VSH_OT_DATA, VSH_OFLAG_REQ, N_("connection URI of the destination host as seen from the client(normal migration) or source(p2p migration)")},
@@ -6892,6 +6893,9 @@ doMigrate (void *opaque)
     if (vshCommandOptBool (cmd, "change-protection"))
         flags |= VIR_MIGRATE_CHANGE_PROTECTION;
 
+    if (vshCommandOptBool(cmd, "unsafe"))
+        flags |= VIR_MIGRATE_UNSAFE;
+
     if (xmlfile &&
         virFileReadAll(xmlfile, 8192, &xml) < 0) {
         vshError(ctl, _("file '%s' doesn't exist"), xmlfile);
index f35244ff94610a57d5b733262847e217de055023..2956c815cdc83d892dfdd96f9af738efc9be12f1 100644 (file)
@@ -781,7 +781,7 @@ type attribute for the <domain> element of XML.
 
 =item B<migrate> [I<--live>] [I<--direct>] [I<--p2p> [I<--tunnelled>]]
 [I<--persistent>] [I<--undefinesource>] [I<--suspend>] [I<--copy-storage-all>]
-[I<--copy-storage-inc>] [I<--change-protection>] [I<--verbose>]
+[I<--copy-storage-inc>] [I<--change-protection>] [I<--unsafe>] [I<--verbose>]
 I<domain-id> I<desturi> [I<migrateuri>] [I<dname>]
 [I<--timeout> B<seconds>] [I<--xml> B<file>]
 
@@ -802,6 +802,14 @@ is implicitly enabled when supported by the hypervisor, but can be explicitly
 used to reject the migration if the hypervisor lacks change protection
 support.  I<--verbose> displays the progress of migration.
 
+In some cases libvirt may refuse to migrate the domain because doing so may
+lead to potential problems such as data corruption, and thus the migration is
+considered unsafe. For QEMU domain, this may happen if the domain uses disks
+without explicitly setting cache mode to "none". Migrating such domains is
+unsafe unless the disk images are stored on coherent clustered filesystem,
+such as GFS2 or GPFS. If you are sure the migration is safe or you just do not
+care, use I<--unsafe> to force the migration.
+
 The I<desturi> is the connection URI of the destination host, and
 I<migrateuri> is the migration URI, which usually can be omitted.
 I<dname> is used for renaming the domain to new name during migration, which