mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
virsh: Add support for VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES migration parameter
Expose the new parameter as '--migrate-disks-detect-zeroes' option. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
621f879adf
commit
89ce634253
@ -3389,7 +3389,9 @@ migrate
|
|||||||
[--postcopy-after-precopy] [--postcopy-resume] [--zerocopy]
|
[--postcopy-after-precopy] [--postcopy-resume] [--zerocopy]
|
||||||
domain desturi [migrateuri] [graphicsuri] [listen-address] [dname]
|
domain desturi [migrateuri] [graphicsuri] [listen-address] [dname]
|
||||||
[--timeout seconds [--timeout-suspend | --timeout-postcopy]]
|
[--timeout seconds [--timeout-suspend | --timeout-postcopy]]
|
||||||
[--xml file] [--migrate-disks disk-list] [--disks-port port]
|
[--xml file]
|
||||||
|
[--migrate-disks disk-list] [--migrate-disks-detect-zeroes disk-list]
|
||||||
|
[--disks-port port]
|
||||||
[--compressed] [--comp-methods method-list]
|
[--compressed] [--comp-methods method-list]
|
||||||
[--comp-mt-level] [--comp-mt-threads] [--comp-mt-dthreads]
|
[--comp-mt-level] [--comp-mt-threads] [--comp-mt-dthreads]
|
||||||
[--comp-xbzrle-cache] [--comp-zlib-level] [--comp-zstd-level]
|
[--comp-xbzrle-cache] [--comp-zlib-level] [--comp-zstd-level]
|
||||||
@ -3420,6 +3422,10 @@ images on source host to the images found at the same place on the destination
|
|||||||
host. By default only non-shared non-readonly images are transferred. Use
|
host. By default only non-shared non-readonly images are transferred. Use
|
||||||
*--migrate-disks* to explicitly specify a list of disk targets to
|
*--migrate-disks* to explicitly specify a list of disk targets to
|
||||||
transfer via the comma separated ``disk-list`` argument.
|
transfer via the comma separated ``disk-list`` argument.
|
||||||
|
The *--migrate-disks-detect-zeroes* option which takes a comma separated list of
|
||||||
|
disk target names enables zeroed block detection for the listed migrated disks.
|
||||||
|
These blocks are not transferred or allocated on destination, effectively
|
||||||
|
sparsifying the disk at the cost of CPU overhead.
|
||||||
With *--copy-storage-synchronous-writes* flag used the disk data migration will
|
With *--copy-storage-synchronous-writes* flag used the disk data migration will
|
||||||
synchronously handle guest disk writes to both the original source and the
|
synchronously handle guest disk writes to both the original source and the
|
||||||
destination to ensure that the disk migration converges at the price of possibly
|
destination to ensure that the disk migration converges at the price of possibly
|
||||||
|
@ -10691,6 +10691,11 @@ static const vshCmdOptDef opts_migrate[] = {
|
|||||||
.completer = virshDomainMigrateDisksCompleter,
|
.completer = virshDomainMigrateDisksCompleter,
|
||||||
.help = N_("comma separated list of disks to be migrated")
|
.help = N_("comma separated list of disks to be migrated")
|
||||||
},
|
},
|
||||||
|
{.name = "migrate-disks-detect-zeroes",
|
||||||
|
.type = VSH_OT_STRING,
|
||||||
|
.completer = virshDomainMigrateDisksCompleter,
|
||||||
|
.help = N_("comma separated list of disks to be migrated with zero detection enabled")
|
||||||
|
},
|
||||||
{.name = "disks-port",
|
{.name = "disks-port",
|
||||||
.type = VSH_OT_INT,
|
.type = VSH_OT_INT,
|
||||||
.unwanted_positional = true,
|
.unwanted_positional = true,
|
||||||
@ -10909,6 +10914,27 @@ doMigrate(void *opaque)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vshCommandOptString(ctl, cmd, "migrate-disks-detect-zeroes", &opt) < 0)
|
||||||
|
goto out;
|
||||||
|
if (opt) {
|
||||||
|
g_autofree char **val = NULL;
|
||||||
|
|
||||||
|
if (!(flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_MIGRATE_NON_SHARED_INC))) {
|
||||||
|
vshError(ctl, "'--migrate-disks-detect-zeroes' requires one of '--copy-storage-all', '--copy-storage-inc'");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
val = g_strsplit(opt, ",", 0);
|
||||||
|
|
||||||
|
if (virTypedParamsAddStringList(¶ms,
|
||||||
|
&nparams,
|
||||||
|
&maxparams,
|
||||||
|
VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES,
|
||||||
|
(const char **)val) < 0) {
|
||||||
|
goto save_error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (vshCommandOptString(ctl, cmd, "comp-methods", &opt) < 0)
|
if (vshCommandOptString(ctl, cmd, "comp-methods", &opt) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
if (opt) {
|
if (opt) {
|
||||||
|
Loading…
Reference in New Issue
Block a user