Revision 0271b044
b/lib/constants.py | ||
---|---|---|
948 | 948 |
HV_MIGRATION_BANDWIDTH = "migration_bandwidth" |
949 | 949 |
HV_MIGRATION_DOWNTIME = "migration_downtime" |
950 | 950 |
HV_MIGRATION_MODE = "migration_mode" |
951 |
HV_KVM_MIGRATION_CAPS = "migration_caps" |
|
951 | 952 |
HV_USE_LOCALTIME = "use_localtime" |
952 | 953 |
HV_DISK_CACHE = "disk_cache" |
953 | 954 |
HV_SECURITY_MODEL = "security_model" |
... | ... | |
1021 | 1022 |
HV_MIGRATION_BANDWIDTH: VTYPE_INT, |
1022 | 1023 |
HV_MIGRATION_DOWNTIME: VTYPE_INT, |
1023 | 1024 |
HV_MIGRATION_MODE: VTYPE_STRING, |
1025 |
HV_KVM_MIGRATION_CAPS: VTYPE_STRING, |
|
1024 | 1026 |
HV_USE_LOCALTIME: VTYPE_BOOL, |
1025 | 1027 |
HV_DISK_CACHE: VTYPE_STRING, |
1026 | 1028 |
HV_SECURITY_MODEL: VTYPE_STRING, |
... | ... | |
2124 | 2126 |
HV_MIGRATION_BANDWIDTH: 32, # MiB/s |
2125 | 2127 |
HV_MIGRATION_DOWNTIME: 30, # ms |
2126 | 2128 |
HV_MIGRATION_MODE: HT_MIGRATION_LIVE, |
2129 |
HV_KVM_MIGRATION_CAPS: "", |
|
2127 | 2130 |
HV_USE_LOCALTIME: False, |
2128 | 2131 |
HV_DISK_CACHE: HT_CACHE_DEFAULT, |
2129 | 2132 |
HV_SECURITY_MODEL: HT_SM_NONE, |
b/lib/hypervisor/hv_kvm.py | ||
---|---|---|
114 | 114 |
constants.HOTPLUG_TARGET_DISK: lambda d, e: (d, e) |
115 | 115 |
} |
116 | 116 |
|
117 |
_MIGRATION_CAPS_DELIM = ":" |
|
118 |
|
|
117 | 119 |
|
118 | 120 |
def _GenerateDeviceKVMId(dev_type, dev, idx=None): |
119 | 121 |
"""Helper function to generate a unique device name used by KVM |
... | ... | |
702 | 704 |
constants.HV_MIGRATION_BANDWIDTH: hv_base.REQ_NONNEGATIVE_INT_CHECK, |
703 | 705 |
constants.HV_MIGRATION_DOWNTIME: hv_base.REQ_NONNEGATIVE_INT_CHECK, |
704 | 706 |
constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK, |
707 |
constants.HV_KVM_MIGRATION_CAPS: hv_base.NO_CHECK, |
|
705 | 708 |
constants.HV_USE_LOCALTIME: hv_base.NO_CHECK, |
706 | 709 |
constants.HV_DISK_CACHE: |
707 | 710 |
hv_base.ParamInSet(True, constants.HT_VALID_CACHE_TYPES), |
... | ... | |
2520 | 2523 |
instance.hvparams[constants.HV_MIGRATION_DOWNTIME]) |
2521 | 2524 |
self._CallMonitorCommand(instance_name, migrate_command) |
2522 | 2525 |
|
2526 |
# These commands are supported in latest qemu versions. |
|
2527 |
# Since _CallMonitorCommand does not catch monitor errors |
|
2528 |
# this does not raise an exception in case command is not supported |
|
2529 |
# TODO: either parse output of command or see if the command supported |
|
2530 |
# via info help (see hotplug) |
|
2531 |
migration_caps = instance.hvparams[constants.HV_KVM_MIGRATION_CAPS] |
|
2532 |
if migration_caps: |
|
2533 |
for c in migration_caps.split(_MIGRATION_CAPS_DELIM): |
|
2534 |
migrate_command = ("migrate_set_capability %s on" % c) |
|
2535 |
self._CallMonitorCommand(instance_name, migrate_command) |
|
2536 |
|
|
2523 | 2537 |
migrate_command = "migrate -d tcp:%s:%s" % (target, port) |
2524 | 2538 |
self._CallMonitorCommand(instance_name, migrate_command) |
2525 | 2539 |
|
b/man/gnt-instance.rst | ||
---|---|---|
762 | 762 |
machine version (due to e.g. outdated drivers). In case it's not set |
763 | 763 |
the default version supported by your version of kvm is used. |
764 | 764 |
|
765 |
migration\_caps |
|
766 |
Valid for the KVM hypervisor. |
|
767 |
|
|
768 |
Enable specific migration capabilities by providing a ":" separated |
|
769 |
list of supported capabilites. QEMU version 1.7.0 defines |
|
770 |
x-rdma-pin-all, auto-converge, zero-blocks, and xbzrle. Please note |
|
771 |
that while a combination of xbzrle and auto-converge might speed up |
|
772 |
the migration process significantly, the first may cause BSOD on |
|
773 |
Windows8r2 instances running on drbd. |
|
774 |
|
|
765 | 775 |
kvm\_path |
766 | 776 |
Valid for the KVM hypervisor. |
767 | 777 |
|
Also available in: Unified diff