Add a blueprint about cinder-vmdk-role
"Add a separate role for Cinder with VMDK backend" blueprint. Blueprint: cinder-vmdk-role Change-Id: I380ef956ee9618eda16412bd550c142e78443afa
This commit is contained in:
parent
f148359f64
commit
13c3f63e04
@ -28,6 +28,14 @@ Contents:
|
||||
|
||||
specs/6.0/*
|
||||
|
||||
6.1 approved specs:
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
specs/6.1/*
|
||||
|
||||
==================
|
||||
Indices and tables
|
||||
==================
|
||||
|
233
specs/6.1/cinder-vmdk-role.rst
Normal file
233
specs/6.1/cinder-vmdk-role.rst
Normal file
@ -0,0 +1,233 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
================================================
|
||||
Add a separate role for Cinder with VMDK backend
|
||||
================================================
|
||||
|
||||
https://blueprints.launchpad.net/fuel/+spec/cinder-vmdk-role
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
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:
|
||||
|
||||
* For KVM, it's Cinder with LVM or Ceph backend
|
||||
* For vCenter, it's Cinder with VMDK backend
|
||||
|
||||
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 [5]
|
||||
|
||||
Be able to deploy Cinder VMDK backend simultaneously with any other Cinder
|
||||
backends.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
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:
|
||||
|
||||
- Remove the 'VMware vCenter for volumes (Cinder)' option from the UI wizard
|
||||
and the Settings tab of the Fuel web UI. Keep 'Default (LVM)' and 'Ceph'
|
||||
only.
|
||||
- vCenter settings for Cinder should be always available on the VMware Tab of
|
||||
the Fuel web UI.
|
||||
- The new role should always be available if vCenter instance was added to
|
||||
environment so that it can be shared with any other role.
|
||||
- It's allowed to deploy more than one node with the 'cinder-vmware' role.
|
||||
- It's not necessary to use Pacemaker for that Cinder service. HA will be
|
||||
achieved by deploying multiple Cinder instances with the same 'hostname'
|
||||
stanza and vCenter settings in cinder.conf.
|
||||
- For provide possibilities combine cinder-vmware and cinder-qemu roles on the
|
||||
same node cinder-vmware role should use different name for config file.
|
||||
cinder-vmware.conf will be good choise.
|
||||
- Nailgun should validate parameters before starting deployment to ensure that
|
||||
all the necessary vCenter credentials are provided.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
There are no vital alternatives from my point of view.
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
Two more notifications will be added into the Fuel web UI.
|
||||
|
||||
#. In "Deployed Changes" window: if there is one or more vCenter instance
|
||||
added and cinder VMDK backend is enabled , but no Cinder VMDK roles. The
|
||||
message should be the following: "In order to use volumes with vCenter
|
||||
instances, please add at least one 'Cinder with VMDK' role."
|
||||
|
||||
#. In "Deployed Changes" window: if there is an HA environment but the only
|
||||
node with "Cinder with VMDK" role is provided. The message should be the
|
||||
following: "To provide HA for Cinder with VMDK backend, please select the
|
||||
'Cinder with VMDK' role for at least two nodes."
|
||||
|
||||
One error message will be added.
|
||||
|
||||
#. If the role 'cinder-vmware' is used for environment but vCenter credentials
|
||||
for Cinder incomplete or has wrong format, Nailgun should fail
|
||||
'CheckBeforeDeploymentTask' task with the message:
|
||||
"The following errors happend:
|
||||
<list of errors>"
|
||||
|
||||
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
The new role should be presented on UI. It can be combined with any other role.
|
||||
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
A little more network bandwith will be consumed.
|
||||
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
Part of fuel-library, which deploys cinder-node will be reverted to state
|
||||
before support of vmdk was enabled. New role deployment will be realized as an
|
||||
independent task for granular deployment according to [4].
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Igor Gajsin - igajsin
|
||||
|
||||
Core reviewers:
|
||||
Sergii Golovatiuk - sgolovatiuk
|
||||
|
||||
|
||||
Other contributors:
|
||||
UI part: Anton Zemlyanov - azemlyanov
|
||||
Nailgun part: Andriy Popovych - popovych-andrey
|
||||
QA section: Oleksandr Kosse - okosse, Tanya Dubyk - tdubyk
|
||||
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
There are three nearly independent parts of implementation:
|
||||
|
||||
#. Append to Fuel new role and notifications. Provide possibilities for
|
||||
separate configuration of cinder and cinder-vmware nodes.
|
||||
#. Change puppet manifests for create and configure new role. Clean old class
|
||||
from parameters of vmdk.
|
||||
#. Create or modify the corresponding system and OSTF tests.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
No strict dependencies.
|
||||
|
||||
Possible dependencies are:
|
||||
|
||||
* Granular deployment feature [1].
|
||||
* VMware: Dual hypervisor support (vCenter and KVM in one environment) [2].
|
||||
* VMware UI Settings Tab for FuelWeb [3].
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
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 [3]. 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.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
There are several changes in Users' Guide:
|
||||
#. Change the corresponding screenshots.
|
||||
#. Add description of new role.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
[1] Granular deployment feature
|
||||
(https://blueprints.launchpad.net/fuel/+spec/granular-deployment-based-on-tasks)
|
||||
[2] VMware: Dual hypervisor support (vCenter and KVM in one environment)
|
||||
(https://blueprints.launchpad.net/fuel/+spec/vmware-dual-hypervisor)
|
||||
[3] VMware UI Settings Tab for FuelWeb
|
||||
(https://blueprints.launchpad.net/fuel/+spec/vmware-ui-setting)
|
||||
[4] Modify Fuel Library to become more modular
|
||||
(https://blueprints.launchpad.net/fuel/+spec/fuel-library-modularization)
|
||||
[5] VMware: Add a separate role for Cinder with VMDK backend
|
||||
(https://blueprints.launchpad.net/fuel/+spec/cinder-vmdk-role)
|
Loading…
Reference in New Issue
Block a user