Hi, I know this is a big patch set for stable-2.14 but it contains some major fixes regarding:
1) A failover issue related to the ext disk template 2) Hotplug support for QEMU 2.2 and later which is now broken 3) Buggy behavior when using hotplug on instances with disk_type=scsi 4) The way we construct the QEMU command line which is error-prone In order to fix the above I decided not to go with a quick-and-dirty solution but instead rework the whole hotplug implementation and the way the KVMHypervisor handles devices, and that is why I included a design doc (see doc/design-scsi-kvm.rst). At the end of the day we get: 1) Robust hotplug support 2) Full, generic SCSI support 3) Support for userspace-only disk access (no local block device) All the above have been discussed in GanetiCon2014. I just found the time to fix/implement them. I submitted the patches to buildbot and coverage fails occasionally [1,2]. I run it locally and always succeeds. Please note that qa-kvm-tiny is broken. Looking forward to your feedback, dimara [1] http://buildbot.ganeti.org/ganeti/builders/doclint/builds/2183 (Failed) [2] http://buildbot.ganeti.org/ganeti/builders/doclint/builds/2171 (OK) Dimitris Aragiorgis (9): Fix instance failover in case of DTS_EXT_MIRROR Export disk's userspace URI to OS scripts bdev: Allow userspace-only disk templates Add design doc for SCSI support in KVM kvm: Refactor device option handling monitor: Use hvinfo in QMP methods kvm: Work around QEMU commit 48f364dd kvm: Use the new interface during hotplug actions kvm: Add new scsi_controller_type hvparam Makefile.am | 1 + doc/design-draft.rst | 1 + doc/design-scsi-kvm.rst | 220 +++++++++++++++ doc/design-shared-storage.rst | 4 +- lib/backend.py | 10 +- lib/cmdlib/instance_migration.py | 3 +- lib/hypervisor/hv_kvm/__init__.py | 371 ++++++++++++++++++++------ lib/hypervisor/hv_kvm/monitor.py | 88 ++++-- lib/objects.py | 3 +- lib/storage/extstorage.py | 10 + man/ganeti-extstorage-interface.rst | 17 ++ man/gnt-instance.rst | 11 + src/Ganeti/Constants.hs | 40 ++- src/Ganeti/OpCodes.hs | 2 +- test/data/kvm_runtime.json | 21 +- test/py/ganeti.hypervisor.hv_kvm_unittest.py | 9 +- 16 files changed, 684 insertions(+), 127 deletions(-) create mode 100644 doc/design-scsi-kvm.rst -- 1.7.10.4
