Revision 937ff984
b/lib/hypervisor/hv_kvm.py | ||
---|---|---|
115 | 115 |
constants.HOTPLUG_TARGET_DISK: lambda d, e: (d, e, None) |
116 | 116 |
} |
117 | 117 |
|
118 |
_MIGRATION_CAPS_DELIM = ":" |
|
119 |
|
|
118 | 120 |
|
119 | 121 |
def _GenerateDeviceKVMId(dev_type, dev): |
120 | 122 |
"""Helper function to generate a unique device name used by KVM |
... | ... | |
743 | 745 |
constants.HV_VGA: hv_base.NO_CHECK, |
744 | 746 |
constants.HV_KVM_EXTRA: hv_base.NO_CHECK, |
745 | 747 |
constants.HV_KVM_MACHINE_VERSION: hv_base.NO_CHECK, |
748 |
constants.HV_KVM_MIGRATION_CAPS: hv_base.NO_CHECK, |
|
746 | 749 |
constants.HV_VNET_HDR: hv_base.NO_CHECK, |
747 | 750 |
} |
748 | 751 |
|
... | ... | |
2574 | 2577 |
instance.hvparams[constants.HV_MIGRATION_DOWNTIME]) |
2575 | 2578 |
self._CallMonitorCommand(instance_name, migrate_command) |
2576 | 2579 |
|
2580 |
migration_caps = instance.hvparams[constants.HV_KVM_MIGRATION_CAPS] |
|
2581 |
if migration_caps: |
|
2582 |
for c in migration_caps.split(_MIGRATION_CAPS_DELIM): |
|
2583 |
migrate_command = ("migrate_set_capability %s on" % c) |
|
2584 |
self._CallMonitorCommand(instance_name, migrate_command) |
|
2585 |
|
|
2577 | 2586 |
migrate_command = "migrate -d tcp:%s:%s" % (target, port) |
2578 | 2587 |
self._CallMonitorCommand(instance_name, migrate_command) |
2579 | 2588 |
|
b/man/gnt-instance.rst | ||
---|---|---|
804 | 804 |
machine version (due to e.g. outdated drivers). In case it's not set |
805 | 805 |
the default version supported by your version of kvm is used. |
806 | 806 |
|
807 |
migration\_caps |
|
808 |
Valid for the KVM hypervisor. |
|
809 |
|
|
810 |
Enable specific migration capabilities by providing a ":" separated |
|
811 |
list of supported capabilites. QEMU version 1.7.0 defines |
|
812 |
x-rdma-pin-all, auto-converge, zero-blocks, and xbzrle. Please note |
|
813 |
that while a combination of xbzrle and auto-converge might speed up |
|
814 |
the migration process significantly, the first may cause BSOD on |
|
815 |
Windows8r2 instances running on drbd. |
|
816 |
|
|
807 | 817 |
kvm\_path |
808 | 818 |
Valid for the KVM hypervisor. |
809 | 819 |
|
b/src/Ganeti/Constants.hs | ||
---|---|---|
1556 | 1556 |
hvKvmMachineVersion :: String |
1557 | 1557 |
hvKvmMachineVersion = "machine_version" |
1558 | 1558 |
|
1559 |
hvKvmMigrationCaps :: String |
|
1560 |
hvKvmMigrationCaps = "migration_caps" |
|
1561 |
|
|
1559 | 1562 |
hvKvmPath :: String |
1560 | 1563 |
hvKvmPath = "kvm_path" |
1561 | 1564 |
|
... | ... | |
1741 | 1744 |
, (hvKvmFlag, VTypeString) |
1742 | 1745 |
, (hvKvmFloppyImagePath, VTypeString) |
1743 | 1746 |
, (hvKvmMachineVersion, VTypeString) |
1747 |
, (hvKvmMigrationCaps, VTypeString) |
|
1744 | 1748 |
, (hvKvmPath, VTypeString) |
1745 | 1749 |
, (hvKvmSpiceAudioCompr, VTypeBool) |
1746 | 1750 |
, (hvKvmSpiceBind, VTypeString) |
... | ... | |
3776 | 3780 |
, (hvVga, PyValueEx "") |
3777 | 3781 |
, (hvKvmExtra, PyValueEx "") |
3778 | 3782 |
, (hvKvmMachineVersion, PyValueEx "") |
3783 |
, (hvKvmMigrationCaps, PyValueEx "") |
|
3779 | 3784 |
, (hvVnetHdr, PyValueEx True)]) |
3780 | 3785 |
, (Fake, Map.fromList [(hvMigrationMode, PyValueEx htMigrationLive)]) |
3781 | 3786 |
, (Chroot, Map.fromList [(hvInitScript, PyValueEx "/ganeti-chroot")]) |
Also available in: Unified diff