VMware vCenter nova-compute driver Auto Inventory Reporting

Registered by Shawn Hartsock on 2013-08-13

The usable inventory available in vCenter can be automatically reported to OpenStack's nova scheduler and configured automatically.

Goals:
* Mode 1: enable raw-pass-through inventory reporting exposing hosts and datacenters to Nova
* Mode 2: enable aggregate level reporting of inventory clusters/resource pools as "cell-level" entities

Current driver development pushes more and more information into nova's configurations. While these should be present as overrides for savvy system administrators, most cases will benefit from a sensible default behavior that will import available hosts and clusters automatically. The configuration options are then conserved for the purpose of allowing a system admin to tailor which subset of inventory they wish to hand over to OpenStack for control.

For example: The default behavior of the driver could be to import all clusters and hosts under a logical "Folder" (a vCenter construct that is merely used to group hardware together. The vCenter admin (VIAdmin) could then add resources to OpenStack automatically by placing additional resources into the folder and remove resources from OpenStack by moving them out of the folder.

The advantage to administrators would be an easy and predictable setup for OpenStack and a simple set of Conventions for how to inter-operate OpenStack and traditional vSphere based resources.

================

In addition, the Grizzly and Havana vCenter driver (see: https://review.openstack.org/#/c/33100/) cannot make good use of raw vCenter inventory outside of clusters. The intention of this blueprint would be to allow:

* the driver to report hosts to the scheduler and allow the scheduler to dictate host-level placement
* the driver to use a host selection rule-system to allow the driver to place hosts based on scheduler hints
* the creation of a datastore selection object to encapsulate datastore placement rules and behaviors
* the ability for cloud administrators to provide their own rules and filters to both the scheduler and/or the driver to fine-tune OpenStack + vCenter interoperation as their unique clouds demand.

Note:
This will require deprecating behavior at line 402 of driver.py (in this patch https://review.openstack.org/#/c/33100/) which explicitly causes the driver to fail when clusters are not in use. Considering we do not actually have a way to enable non-clustered use of hosts by OpenStack (in grizzly and havana) ... this is a better mode than silently failing with no root cause visible.

I would want us to remove that line and instead plug-in a "host selector" object that could then interact with the inventory. The simplest selector could just listen to the scheduler, more sophisticated selectors could be smarter as needed by the cloud administrator.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Shawn Hartsock
Direction:
Needs approval
Assignee:
Shawn Hartsock
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.