Update the README.rst and properties

In preparation for stackforge proposal, updating the README.rst file to
include an updated set of information.  Mostly tied to the new pypowervm
python library.

Also updates the API properties to remove references to the current
location of the API server.  Makes the wording more generic.

Change-Id: I1167fa28b9120fa8833bbe7939d070cb0a157c37
This commit is contained in:
Drew Thorstensen 2015-01-17 11:08:50 -06:00
parent 4b8b3f70b0
commit 02b8d18b0c
3 changed files with 48 additions and 49 deletions

View File

@ -9,17 +9,16 @@ https://blueprints.launchpad.net/neutron/+spec/example
The IBM PowerVM hypervisor provides virtualization on POWER hardware. PowerVM
admins can see benefits in their environments by making use of OpenStack.
This driver (along with a Neutron ML2 compatible agent and Ceilometer agent)
will provide capability for admins of PowerVM (which encapsulates PHYP and
Virtual I/O Servers) to use OpenStack natively.
will provide capability for admins of PowerVM to use OpenStack natively.
Problem Description
===================
As a new ecosystem evolves around the POWER platform, there is not an
OpenStack driver that meets all of the needs for that ecosystem. The work
done here is to build a PowerVM driver in within the broader community. This
will sit alongside the existing libvirt driver utilized by PowerKVM
As ecosystems continue to evolve around the POWER platform, a single OpenStack
driver does not meet all of the needs for the varying hypervisors. The work
done here is to build a PowerVM driver within the broader community. This
will sit alongside the existing libvirt based driver utilized by PowerKVM
environments.
This new driver must meet the following:
@ -73,13 +72,13 @@ The changes proposed are the following:
The changes proposed will bring support for the PowerVM hypervisor into the
OpenStack ecosystem, following the OpenStack development model.
This development is planned to be done in StackForge in a project named
powervm. The intent is that the completion of this work will provide the
foundation to bring the PowerVM Nova driver (with supporting components) into
Nova Core via a separate BluePrint in the L release of OpenStack.
This development will be done in StackForge in a project named nova-powervm.
The intent is that the completion of this work will provide the foundation to
bring the PowerVM Nova driver (with supporting components) into Nova Core via
a separate BluePrint in a future release of OpenStack.
Until the subsequent BluePrint is proposed for the L release, this driver is
to be considered experimental.
Until a subsequent BluePrint is proposed and accepted, this driver is to be
considered experimental.
Data Model Impact
@ -124,7 +123,7 @@ The administrator will notice new logging messages in the nova compute logs.
Performance Impact
------------------
It is a goal of the driver to deploy systems with the same speed and agility
It is a goal of the driver to deploy systems with similar speed and agility
as the libvirt driver within OpenStack.
Since this process should match the OpenStack model, it is not planned to add
@ -143,11 +142,11 @@ configure OpenStack for use with a PowerVM hypervisor.
The existing configuration file attributes will be reused as much as possible.
This reduces the number of PowerVM specific items that will be needed.
However, the driver is likely to need some PowerVM specific options.
However, the driver will require some PowerVM specific options.
In this case, we plan to keep the PowerVM specifics contained within the
configuration file (and driver code). Any new configuration options will have
the prefix "powervm\_".
configuration file (and driver code). These will be documented on the
driver's wiki page.
There should be no impact to customers upgrading their cloud stack as this is
a genesis driver and should not have database impacts.
@ -160,11 +159,10 @@ The code for this driver will be contained within a powervm StackForge
project. The driver will be contained within /nova/virt/powervm/. The driver
will extend nova.virt.driver.ComputeDriver.
The code will interact with PowerVM through an Open Sourced python binding
that is being defined. This python binding is a wrapper to the PowerVM REST
API. All operations to the hypervisor will go through the PowerVM REST API
via this binding. The driver will be maintained to support future revisions
of the PowerVM REST API as needed.
The code will interact with PowerVM through the pypowervm library. This python
binding is a wrapper to the PowerVM REST API. All hypervisor operations will
interact with the PowerVM REST API via this binding. The driver will be
maintained to support future revisions of the PowerVM REST API as needed.
For ephemeral disk support, either a Virtual I/O Server hosted local disk or a
Shared Storage Pool (a PowerVM clustered file system) will be supported. For
@ -172,10 +170,9 @@ volume attachments, the driver will support Cinder based attachments via
protocols supported by the hypervisor.
For networking, a blueprint is being proposed for the Neutron project that
will provide a Neutron ML2 Agent. This too will be developed in StackForge,
and a subsequent blueprint will be created to move to Neutron Core in the L
release of OpenStack. The Agent will provide the necessary configuration on
the Virtual I/O Server. The Nova driver code will have a
will provide a Neutron ML2 Agent. This project will be developed in
StackForge alongside nova-powervm. The Agent will provide the necessary
configuration on the Virtual I/O Server. The Nova driver code will have a
/nova/virt/powervm/vif.py file that will configure the network adapter on the
client VM.
@ -187,7 +184,8 @@ provide a non-gating vote (+1 or -1).
Developers should not be impacted by these changes unless they wish to try the
driver.
Until the driver is accepted into Nova core it will be considered experimental.
Until a subsequent blueprint is proposed and accepted, unless otherwise noted,
the driver will be considered experimental.
Community Impact
@ -196,9 +194,7 @@ Community Impact
The intent of this blueprint is to bring another driver to OpenStack that
aligns with the ideals and vision of the community.
It will be discussed in the Nova IRC and mailing lists. Representatives
working on this driver will be at the design summit, though no sessions are
planned on this topic.
It will be discussed in the Nova IRC and mailing lists.
Alternatives
@ -266,8 +262,8 @@ Dependencies
utilize future versions of this specification as it becomes available:
http://ibm.co/1lThV9R
* Will build on top of a new open source python binding to previously noted
PowerVM REST API. This will be a prerequisite to utilizing the driver.
* Will build on top of the pypowervm library. This will be a prerequisite to
utilizing the driver and identified in the requirements.txt file.
Testing
@ -313,7 +309,7 @@ driver. This will include configuring the dependencies specified above.
Documentation will be done on wiki, specifically at a minimum to the following
page: http://docs.openstack.org/trunk/config-reference/content/section_compute-hypervisors.html
Interlock will be done with the OpenStack documentation team.
Interlock is planned to be done with the OpenStack documentation team.
Developer Documentation

View File

@ -16,7 +16,7 @@
from oslo.config import cfg
hmc_opts = [
pvm_opts = [
cfg.FloatOpt('proc_units_factor',
default=0.1,
help='Factor used to calculate the processor units per vcpu.'
@ -27,22 +27,24 @@ hmc_opts = [
'Value should be between 1 and 255. Represents how '
'aggressively LPARs grab CPU when unused cycles are '
'available.'),
# TODO(kyleh) Temporary - Only needed since we're using an HMC
cfg.StrOpt('hmc_host_id',
# TODO(kyleh) Re-evaluate these as the auth model evolves.
cfg.StrOpt('pvm_host_mtms',
default='',
help='TEMP - the unique id of the host to manage'),
cfg.StrOpt('hmc_ip',
help='The Model Type/Serial Number of the host server to '
'manage. Format is MODELTYPE_SERIALNUM. Example is '
'828642A_1234ABC.'),
cfg.StrOpt('pvm_server_ip',
default='localhost',
help='The IP Address hosting the PowerVM REST API'),
cfg.StrOpt('pvm_user_id',
default='',
help='TEMP - the HMC IP.'),
cfg.StrOpt('hmc_user',
help='The user id for authentication into the API.'),
cfg.StrOpt('pvm_pass',
default='',
help='TEMP - the HMC user.'),
cfg.StrOpt('hmc_pass',
default='',
help='TEMP - the HMC password.')
help='The password for authentication into the API.')
]
CONF = cfg.CONF
CONF.register_opts(hmc_opts)
CONF.register_opts(pvm_opts)
CONF.import_opt('host', 'nova.netconf')

View File

@ -64,10 +64,10 @@ class PowerVMDriver(driver.ComputeDriver):
def _get_adapter(self):
# Decode the password
password = CONF.hmc_pass.decode('base64', 'strict')
password = CONF.pvm_pass.decode('base64', 'strict')
# TODO(IBM): set cert path
self.session = pvm_apt.Session(CONF.hmc_ip, CONF.hmc_user, password,
certpath=None)
self.session = pvm_apt.Session(CONF.pvm_server_ip, CONF.pvm_user_id,
password, certpath=None)
self.adapter = pvm_apt.Adapter(self.session,
helpers=log_hlp.log_helper)
@ -86,9 +86,10 @@ class PowerVMDriver(driver.ComputeDriver):
def _get_host_uuid(self):
# Need to get a list of the hosts, then find the matching one
resp = self.adapter.read(pvm_consts.MGT_SYS)
host_entry = pvm_host.find_entry_by_mtm_serial(resp, CONF.hmc_host_id)
host_entry = pvm_host.find_entry_by_mtm_serial(resp,
CONF.pvm_host_mtms)
if not host_entry:
raise Exception("Host %s not found" % CONF.hmc_host_id)
raise Exception("Host %s not found" % CONF.pvm_host_mtms)
self.host_wrapper = msentry_wrapper.ManagedSystem(host_entry)
self.host_uuid = self.host_wrapper.get_uuid()