On Fri, Dec 07, 2012 at 14:13:06 -0500, Laine Stump wrote:
On 12/07/2012 10:08 AM, Jiri Denemark wrote:
> From: liguang <lig.fnst(a)cn.fujitsu.com>
>
> original migration did not aware of offline case,
> so, try to support offline migration quietly
> (did not disturb original migration) by pass
> VIR_MIGRATE_OFFLINE flag to migration APIs if only
> the domain is really inactive, and
> migration process will not puzzled by domain
> offline and exit unexpectedly.
> these changes did not take care of disk images the
> domain required, for them could be transferred by
> other APIs as suggested, then VIR_MIGRATE_OFFLINE
> must not combined with VIR_MIGRATE_NON_SHARED_*.
> and you must do a persistent migration at same time,
> do "virsh migrate --offline --persistent ...".
This commit message is *very* confusing. Maybe before pushing you could
rewrite it to make sense to an outsider?
Yeah, I was too focused on the code and completely ignored the commit message.
I rewrote it, squashed the following patch in and pushed. Thanks.
Jirka
diff --git i/tools/virsh-domain.c w/tools/virsh-domain.c
index 39ac9b5..561e0e7 100644
--- i/tools/virsh-domain.c
+++ w/tools/virsh-domain.c
@@ -6803,7 +6803,7 @@ static const vshCmdInfo info_migrate[] = {
static const vshCmdOptDef opts_migrate[] = {
{"live", VSH_OT_BOOL, 0, N_("live migration")},
- {"offline", VSH_OT_BOOL, 0, N_("offline (domain's inactive)
migration")},
+ {"offline", VSH_OT_BOOL, 0, N_("offline migration")},
{"p2p", VSH_OT_BOOL, 0, N_("peer-2-peer migration")},
{"direct", VSH_OT_BOOL, 0, N_("direct migration")},
{"tunneled", VSH_OT_ALIAS, 0, "tunnelled"},
diff --git i/tools/virsh.pod w/tools/virsh.pod
index 0ada19a..3687a4d 100644
--- i/tools/virsh.pod
+++ w/tools/virsh.pod
@@ -1046,10 +1046,12 @@ stats.
I<domain> I<desturi> [I<migrateuri>] [I<dname>]
[I<--timeout> B<seconds>] [I<--xml> B<file>]
-Migrate domain to another host. Add I<--live> for live migration;
-I<--offline> for offline (domain's inactive) migration; <--p2p>
+Migrate domain to another host. Add I<--live> for live migration; <--p2p>
for peer-2-peer migration; I<--direct> for direct migration; or
I<--tunnelled>
-for tunnelled migration. I<--persistent> leaves the domain persistent on
+for tunnelled migration. I<--offline> migrates domain definition without
+starting the domain on destination and without stopping it on source host.
+Offline migration may be used with inactive domains and it must be used with
+I<--persistent> option. I<--persistent> leaves the domain persistent on
destination host, I<--undefinesource> undefines the domain on the source host,
and I<--suspend> leaves the domain paused on the destination host.
I<--copy-storage-all> indicates migration with non-shared storage with full