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