migration: Deprecate block migration
It is obsolete. It is better to use driver-mirror with NBD instead. CC: Kevin Wolf <kwolf@redhat.com> CC: Eric Blake <eblake@redhat.com> CC: Stefan Hajnoczi <stefanha@redhat.com> CC: Hanna Czenczek <hreitz@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231018115513.2163-5-quintela@redhat.com>
This commit is contained in:
parent
8846b5bfca
commit
66db46ca83
@ -486,3 +486,13 @@ Use blockdev-mirror with NBD instead.
|
|||||||
As an intermediate step the ``blk`` functionality can be achieved by
|
As an intermediate step the ``blk`` functionality can be achieved by
|
||||||
setting the ``block`` migration capability to ``true``. But this
|
setting the ``block`` migration capability to ``true``. But this
|
||||||
capability is also deprecated.
|
capability is also deprecated.
|
||||||
|
|
||||||
|
block migration (since 8.2)
|
||||||
|
'''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
Block migration is too inflexible. It needs to migrate all block
|
||||||
|
devices or none.
|
||||||
|
|
||||||
|
Please see "QMP invocation for live storage migration with
|
||||||
|
``blockdev-mirror`` + NBD" in docs/interop/live-block-operations.rst
|
||||||
|
for a detailed explanation.
|
||||||
|
@ -731,6 +731,9 @@ static int block_save_setup(QEMUFile *f, void *opaque)
|
|||||||
trace_migration_block_save("setup", block_mig_state.submitted,
|
trace_migration_block_save("setup", block_mig_state.submitted,
|
||||||
block_mig_state.transferred);
|
block_mig_state.transferred);
|
||||||
|
|
||||||
|
warn_report("block migration is deprecated;"
|
||||||
|
" use blockdev-mirror with NBD instead");
|
||||||
|
|
||||||
ret = init_blk_migration(f);
|
ret = init_blk_migration(f);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
|
#include "qemu/error-report.h"
|
||||||
#include "exec/target_page.h"
|
#include "exec/target_page.h"
|
||||||
#include "qapi/clone-visitor.h"
|
#include "qapi/clone-visitor.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
@ -473,10 +474,14 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
|
|||||||
if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
|
if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
|
||||||
error_setg(errp, "QEMU compiled without old-style (blk/-b, inc/-i) "
|
error_setg(errp, "QEMU compiled without old-style (blk/-b, inc/-i) "
|
||||||
"block migration");
|
"block migration");
|
||||||
error_append_hint(errp, "Use drive_mirror+NBD instead.\n");
|
error_append_hint(errp, "Use blockdev-mirror with NBD instead.\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (new_caps[MIGRATION_CAPABILITY_BLOCK]) {
|
||||||
|
warn_report("block migration is deprecated;"
|
||||||
|
" use blockdev-mirror with NBD instead");
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_REPLICATION
|
#ifndef CONFIG_REPLICATION
|
||||||
if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
|
if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
|
||||||
@ -1400,6 +1405,8 @@ static void migrate_params_apply(MigrateSetParameters *params, Error **errp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (params->has_block_incremental) {
|
if (params->has_block_incremental) {
|
||||||
|
warn_report("block migration is deprecated;"
|
||||||
|
" use blockdev-mirror with NBD instead");
|
||||||
s->parameters.block_incremental = params->block_incremental;
|
s->parameters.block_incremental = params->block_incremental;
|
||||||
}
|
}
|
||||||
if (params->has_multifd_channels) {
|
if (params->has_multifd_channels) {
|
||||||
|
@ -269,11 +269,15 @@
|
|||||||
# average memory load of the virtual CPU indirectly. Note that
|
# average memory load of the virtual CPU indirectly. Note that
|
||||||
# zero means guest doesn't dirty memory. (Since 8.1)
|
# zero means guest doesn't dirty memory. (Since 8.1)
|
||||||
#
|
#
|
||||||
|
# Features:
|
||||||
|
#
|
||||||
|
# @deprecated: Member @disk is deprecated because block migration is.
|
||||||
|
#
|
||||||
# Since: 0.14
|
# Since: 0.14
|
||||||
##
|
##
|
||||||
{ 'struct': 'MigrationInfo',
|
{ 'struct': 'MigrationInfo',
|
||||||
'data': {'*status': 'MigrationStatus', '*ram': 'MigrationStats',
|
'data': {'*status': 'MigrationStatus', '*ram': 'MigrationStats',
|
||||||
'*disk': 'MigrationStats',
|
'*disk': { 'type': 'MigrationStats', 'features': [ 'deprecated' ] },
|
||||||
'*vfio': 'VfioStats',
|
'*vfio': 'VfioStats',
|
||||||
'*xbzrle-cache': 'XBZRLECacheStats',
|
'*xbzrle-cache': 'XBZRLECacheStats',
|
||||||
'*total-time': 'int',
|
'*total-time': 'int',
|
||||||
@ -525,6 +529,9 @@
|
|||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
#
|
#
|
||||||
|
# @deprecated: Member @block is deprecated. Use blockdev-mirror with
|
||||||
|
# NBD instead.
|
||||||
|
#
|
||||||
# @unstable: Members @x-colo and @x-ignore-shared are experimental.
|
# @unstable: Members @x-colo and @x-ignore-shared are experimental.
|
||||||
#
|
#
|
||||||
# Since: 1.2
|
# Since: 1.2
|
||||||
@ -534,7 +541,8 @@
|
|||||||
'compress', 'events', 'postcopy-ram',
|
'compress', 'events', 'postcopy-ram',
|
||||||
{ 'name': 'x-colo', 'features': [ 'unstable' ] },
|
{ 'name': 'x-colo', 'features': [ 'unstable' ] },
|
||||||
'release-ram',
|
'release-ram',
|
||||||
'block', 'return-path', 'pause-before-switchover', 'multifd',
|
{ 'name': 'block', 'features': [ 'deprecated' ] },
|
||||||
|
'return-path', 'pause-before-switchover', 'multifd',
|
||||||
'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate',
|
'dirty-bitmaps', 'postcopy-blocktime', 'late-block-activate',
|
||||||
{ 'name': 'x-ignore-shared', 'features': [ 'unstable' ] },
|
{ 'name': 'x-ignore-shared', 'features': [ 'unstable' ] },
|
||||||
'validate-uuid', 'background-snapshot',
|
'validate-uuid', 'background-snapshot',
|
||||||
@ -835,6 +843,9 @@
|
|||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
#
|
#
|
||||||
|
# @deprecated: Member @block-incremental is deprecated. Use
|
||||||
|
# blockdev-mirror with NBD instead.
|
||||||
|
#
|
||||||
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
||||||
# are experimental.
|
# are experimental.
|
||||||
#
|
#
|
||||||
@ -850,7 +861,7 @@
|
|||||||
'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth',
|
'tls-creds', 'tls-hostname', 'tls-authz', 'max-bandwidth',
|
||||||
'avail-switchover-bandwidth', 'downtime-limit',
|
'avail-switchover-bandwidth', 'downtime-limit',
|
||||||
{ 'name': 'x-checkpoint-delay', 'features': [ 'unstable' ] },
|
{ 'name': 'x-checkpoint-delay', 'features': [ 'unstable' ] },
|
||||||
'block-incremental',
|
{ 'name': 'block-incremental', 'features': [ 'deprecated' ] },
|
||||||
'multifd-channels',
|
'multifd-channels',
|
||||||
'xbzrle-cache-size', 'max-postcopy-bandwidth',
|
'xbzrle-cache-size', 'max-postcopy-bandwidth',
|
||||||
'max-cpu-throttle', 'multifd-compression',
|
'max-cpu-throttle', 'multifd-compression',
|
||||||
@ -1011,6 +1022,9 @@
|
|||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
#
|
#
|
||||||
|
# @deprecated: Member @block-incremental is deprecated. Use
|
||||||
|
# blockdev-mirror with NBD instead.
|
||||||
|
#
|
||||||
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
||||||
# are experimental.
|
# are experimental.
|
||||||
#
|
#
|
||||||
@ -1040,7 +1054,8 @@
|
|||||||
'*downtime-limit': 'uint64',
|
'*downtime-limit': 'uint64',
|
||||||
'*x-checkpoint-delay': { 'type': 'uint32',
|
'*x-checkpoint-delay': { 'type': 'uint32',
|
||||||
'features': [ 'unstable' ] },
|
'features': [ 'unstable' ] },
|
||||||
'*block-incremental': 'bool',
|
'*block-incremental': { 'type': 'bool',
|
||||||
|
'features': [ 'deprecated' ] },
|
||||||
'*multifd-channels': 'uint8',
|
'*multifd-channels': 'uint8',
|
||||||
'*xbzrle-cache-size': 'size',
|
'*xbzrle-cache-size': 'size',
|
||||||
'*max-postcopy-bandwidth': 'size',
|
'*max-postcopy-bandwidth': 'size',
|
||||||
@ -1225,6 +1240,9 @@
|
|||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
#
|
#
|
||||||
|
# @deprecated: Member @block-incremental is deprecated. Use
|
||||||
|
# blockdev-mirror with NBD instead.
|
||||||
|
#
|
||||||
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
|
||||||
# are experimental.
|
# are experimental.
|
||||||
#
|
#
|
||||||
@ -1251,7 +1269,8 @@
|
|||||||
'*downtime-limit': 'uint64',
|
'*downtime-limit': 'uint64',
|
||||||
'*x-checkpoint-delay': { 'type': 'uint32',
|
'*x-checkpoint-delay': { 'type': 'uint32',
|
||||||
'features': [ 'unstable' ] },
|
'features': [ 'unstable' ] },
|
||||||
'*block-incremental': 'bool',
|
'*block-incremental': { 'type': 'bool',
|
||||||
|
'features': [ 'deprecated' ] },
|
||||||
'*multifd-channels': 'uint8',
|
'*multifd-channels': 'uint8',
|
||||||
'*xbzrle-cache-size': 'size',
|
'*xbzrle-cache-size': 'size',
|
||||||
'*max-postcopy-bandwidth': 'size',
|
'*max-postcopy-bandwidth': 'size',
|
||||||
|
Loading…
Reference in New Issue
Block a user