1-1 mapping between nova-compute instance and vsphere cluster
Change-Id: Iad3a4486721615db9aa5b24275a78a7cb0aadbf6 Blueprint: 1-1-nova-compute-vsphere-cluster-mapping
This commit is contained in:
parent
07579933ee
commit
55c2fc4c30
231
specs/6.0/1-1-nova-compute-vsphere-cluster-mapping.rst
Normal file
231
specs/6.0/1-1-nova-compute-vsphere-cluster-mapping.rst
Normal file
@ -0,0 +1,231 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
====================================================
|
||||
1-1 mapping between nova-compute and vSphere cluster
|
||||
====================================================
|
||||
|
||||
https://blueprints.launchpad.net/fuel/+spec/1-1-nova-compute-vsphere-cluster-mapping
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Currently single nova-compute service instance utilizes all vSphere clusters
|
||||
(clusters that are formed by ESXi hosts) managed by a single vCenter server
|
||||
which is specified by a user. This behaviour prevents user to specify a
|
||||
vSphere's cluster on which user may launch a VM instance at. Currently this
|
||||
decision happens automatically and is controlled by nova-scheduler logic and
|
||||
vCenter DRS logic.
|
||||
|
||||
::
|
||||
|
||||
+--------------------+ +------------------+ +-------------------+
|
||||
| | | | | |
|
||||
| OpenStack | | vCenter server | | vSphere cluster 1 |
|
||||
| Controller | | +- - - - -+-------+ |
|
||||
| | | | +-------------------+
|
||||
| | | | |
|
||||
++------------------++ | | +-------------------+
|
||||
|| || | | | | |
|
||||
|| nova-compute |--------+ - - - -+- - - - -+-------+ vSphere cluster 2 |
|
||||
|| || | | | | |
|
||||
|| || | | +-------------------+
|
||||
++------------------++ | | |
|
||||
| | | | +-------------------+
|
||||
| | | | | | |
|
||||
| | | +- - - - -+-------+ vSphere cluster N |
|
||||
| | | | | |
|
||||
+--------------------+ +------------------+ +-------------------+
|
||||
|
||||
|
||||
A single nova-compute service instance also acts as a single point of failure,
|
||||
even if we defend it with Pacemaker. If the service fails for some reason a
|
||||
whole cloud loses access to compute resources.
|
||||
|
||||
Also, VMware itself recommends to avoid 1-M mapping between a nova-compute
|
||||
service and vSphere clusters.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
Launch multiple instances of nova-compute service and configure each service to
|
||||
use a single vSphere cluster. Nova-compute services will be running on
|
||||
OpenStack controller nodes like it does now. We are not proposing creation of a
|
||||
separate compute node for each nova-compute, because it requires us to
|
||||
configure additional pacemaker group that will backup nova-compute services on
|
||||
those compute nodes. It also requires a customer to procure additional hardware
|
||||
to run additional nova-compute process which might be unacceptable.
|
||||
|
||||
::
|
||||
|
||||
+--------------------+
|
||||
| |
|
||||
| OpenStack |
|
||||
| Controller |
|
||||
| |
|
||||
|+------------------+| +------------------+ +-------------------+
|
||||
|| || | | | |
|
||||
|| nova-compute-1 +--------+ - - - - - - - - -+-------+ vSphere cluster 1 |
|
||||
|| (login1/pass1) || | | | |
|
||||
|| || | | +-------------------+
|
||||
|+------------------+| | |
|
||||
| | | |
|
||||
|+------------------+| | vCenter server | +-------------------+
|
||||
|| || | | | |
|
||||
|| nova-compute-2 +--------+ - - - - - - - - -+-------+ vSphere cluster 2 |
|
||||
|| (login2/pass2) || | | | |
|
||||
|| || | | +-------------------+
|
||||
|+------------------+| | |
|
||||
| | | |
|
||||
|+------------------+| | | +-------------------+
|
||||
|| || | | | |
|
||||
|| nova-compute-N +--------+ - - - - - - - - -+-------+ vSphere cluster N |
|
||||
|| (loginN/passN) || | | | |
|
||||
|| || | | +-------------------+
|
||||
|+------------------+| +------------------+
|
||||
+--------------------+
|
||||
|
||||
Currently we will use same credentials for all nova-computes, but in future we
|
||||
must add an opportunity for user to specify different credentials for different
|
||||
vSphere clusters on web UI. Nevertheless puppet manifests must be ready for
|
||||
accepting different pairs of login/password.
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
We can leave things as they work right now: single nova-compute instance
|
||||
utilizes multiple vSphere clusters that are specified in
|
||||
*/etc/nova/nova-compute.conf*.
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
Controller node will be running number of nova-compute processes equal to
|
||||
number of specified vSphere clusters (simple deployment mode considered as
|
||||
worst case). Maximum number of ESXi hosts that are supported by vCenter is
|
||||
1000, it means that each host can form a cluster of itself, so in worst case
|
||||
maximum number of nova-compute instances might raise to 1000.
|
||||
(http://www.vmware.com/pdf/vsphere5/r55/vsphere-55-configuration-maximums.pdf).
|
||||
So controller must be able to run additional 1000 processes.
|
||||
|
||||
There is a limit on number of concurrent vSphere connections to vCenter (100
|
||||
and 180 for vSphere Web Client). Some nova-computes connections must scheduled
|
||||
across timeline.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Drafter:
|
||||
Igor Zinovik (izinovik)
|
||||
|
||||
Primary assignee:
|
||||
Andrey Danin (gcon-monolake)
|
||||
Igor Zinovik (izinovik)
|
||||
|
||||
Reviewer:
|
||||
Andrey Danin (gcon-monolake)
|
||||
Evgeniya Shumakher (eshumakher)
|
||||
|
||||
QA:
|
||||
Tatiana Dubyk (tdubyk)
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
#. Modify puppet manifests that will create multiple nova-compute instances in
|
||||
simple deployment mode. Create appropriate configuration file for each
|
||||
nova-compute instance.
|
||||
|
||||
#. Modify puppet manifests that will creates multiple pacemaker's nova-compute
|
||||
resources in HA deployment mode. Create one nova-compute resource and
|
||||
corresponding configuration file per one vSphere cluster.
|
||||
|
||||
#. Reference architecture in our documentation must be updated and reflect
|
||||
implementation of this specification.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None.
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Manual testing using checklists according to acceptance criteria below.
|
||||
|
||||
Acceptance Criteria:
|
||||
|
||||
Stage I:
|
||||
|
||||
- Verify that OpenStack environment that is running with vCenter that manages
|
||||
multiple vSphere clusters as hypervisor option runs nova-compute services on
|
||||
controllers and that each nova-compute has a single vSphere cluster in its
|
||||
configuration file.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
The proposed change modifies Reference Architecture. All vCenter related
|
||||
sections must be reviewed and updated.
|
||||
|
||||
References
|
||||
==========
|
||||
|
Loading…
Reference in New Issue
Block a user