When vCenter is used as a hypervisor it can use volumes only from Cinder VMDK. And vise versa: KVM as a hypervisor cannot mount volumes from Cinder VMDK. In case of Multi-HV support with both vCenter and KVM Compute nodes deployed, it’s necessary to deploy Cinder with multiple backends - VMDK plus LVM/Ceph. A new role “Cinder with VMDK” should be introduced to provide this opportunity.
As it was said before, there is no universal Block Storage solution for both vCenter and KVM hypervisors in Fuel out-of-box. Storage types for different hypervisors:
Fuel can not deploy cinder with LVM or Ceph backend and with VMDK backend simultaneously only one backend for the whole environment. It happens because Fuel 6.0 uses the only ‘Cinder’ role to deploy both backend types. An actual backend type is selected in Puppet depending on hypervisor type. Such workflow contradicts with the main Fuel idea - keep as more business logic in Nailgun as we can. Also, the only ‘Cinder’ role makes it hard to deploy VMDK and LVM/Ceph backends in one environment simultaneously.
I want to cover the following use case within blueprint .
Be able to deploy Cinder VMDK backend simultaneously with any other Cinder backends.
Introduce a new node role called ‘cinder-vmware’. The role will deploy Cinder with VMDK backend. A Puppet code should be slightly refactored to use ‘node[role]’ value instead of ‘libvirt_type==vcenter’ to deploy Cinder VMDK backend.
An old role ‘cinder’ should keep deploying Cinder with LVM or Ceph. For clarification sake, it can be also renamed to ‘cinder-qemu’.
The following should be done:
There are no vital alternatives from my point of view.
No special upgrade impact. The new role will be provided with a new release. A Nailgun part should take proper account of release version and disable itself for old releases. Puppet manifests are located in different directories for different Fuel versions.
Two more notifications will be added into the Fuel web UI.
One error message will be added.
The new role should be presented on UI. It can be combined with any other role.
A little more network bandwith will be consumed.
There are three nearly independent parts of implementation:
No strict dependencies.
Possible dependencies are:
Our system tests are already good enough covers use-case of using cinder. But this tests depend on ostf tests, which know nothing about availability zones. Therefore OSTF tests can’t test how cinder works in multiple availability zones environment. And surely tests, which based on OSTF, are also useless.
This problem will be fixed in blueprint . When it happens, system tests should be changed for using with availability zones.
Before it the QA team may perform manual testing of declared features.
There are several changes in Users’ Guide: #. Change the corresponding screenshots. #. Add description of new role.
|||Granular deployment feature (https://blueprints.launchpad.net/fuel/+spec/granular-deployment-based-on-tasks)|
|||VMware: Dual hypervisor support (vCenter and KVM in one environment) (https://blueprints.launchpad.net/fuel/+spec/vmware-dual-hypervisor)|
|||(1, 2) VMware UI Settings Tab for FuelWeb (https://blueprints.launchpad.net/fuel/+spec/vmware-ui-setting)|
|||Modify Fuel Library to become more modular (https://blueprints.launchpad.net/fuel/+spec/fuel-library-modularization)|
|||VMware: Add a separate role for Cinder with VMDK backend (https://blueprints.launchpad.net/fuel/+spec/cinder-vmdk-role)|