OneView driver docs explaining Dynamic Allocation

Once patch 286192 (Add Dynamic Allocation feature for the OneView drivers)
lands, we need to explain in the OneView driver docs what the Dynamic Allocation
feature is and how to use it properly. This patch changes the OneView driver
docs explaining what changes in the new allocation paradigm and details about
how to use it.

Change-Id: I19c69baa6b81f330c37f15c2fa279f93bd65e372
Co-Authored-By: Lilia Sampaio <liliars@lsd.ufcg.edu.br>
Co-Authored-By: Sinval Vieira <sinval@lsd.ufcg.edu.br>
Co-Authored-By: Gabriel Bezerra <gabrielb@lsd.ufcg.edu.br>
Closes-Bug: #1541096
This commit is contained in:
Thiago Paiva 2016-04-13 13:21:38 -03:00 committed by Chris Krelle
parent 7f4c9a5924
commit fd8192bf3e

View File

@ -10,8 +10,8 @@ Overview
HP OneView [1]_ is a single integrated platform, packaged as an appliance that
implements a software-defined approach to managing physical infrastructure.
The appliance supports scenarios such as deploying bare metal servers, for
instance. In this context, the ``HP OneView driver`` for Ironic enables the
users of OneView to use Ironic as a bare metal provider to their managed
instance. In this context, the ``HP OneView driver`` for ironic enables the
users of OneView to use ironic as a bare metal provider to their managed
physical hardware.
Currently there are two OneView drivers:
@ -20,25 +20,42 @@ Currently there are two OneView drivers:
* ``agent_pxe_oneview``
The ``iscsi_pxe_oneview`` and ``agent_pxe_oneview`` drivers implement the
core interfaces of an Ironic Driver [2]_, and use the ``python-oneviewclient``
[3]_ to provide communication between Ironic and OneView through OneView's
Rest API.
core interfaces of an ironic Driver [2]_, and use the ``python-oneviewclient``
[3]_ to provide communication between ironic and OneView through OneView's
REST API.
To provide a bare metal instance there are four components involved in the
process:
* Ironic service
* python-oneviewclient
* OneView appliance
* iscsi_pxe_oneview/agent_pxe_oneview driver
* The ironic service
* The ironic driver for OneView, which can be:
* `iscsi_pxe_oneview` or
* `agent_pxe_oneview`
* The python-oneviewclient library
* The OneView appliance
The role of Ironic is to serve as a bare metal provider to OneView's managed
The role of ironic is to serve as a bare metal provider to OneView's managed
physical hardware and to provide communication with other necessary OpenStack
services such as Nova and Glance. When Ironic receives a boot request, it
works together with the Ironic OneView driver to access a machine in OneView,
services such as Nova and Glance. When ironic receives a boot request, it
works together with the ironic OneView driver to access a machine in OneView,
the ``python-oneviewclient`` being responsible for the communication with the
OneView appliance.
The Mitaka version of the ironic OneView drivers only supported what we call
**pre-allocation** of nodes, meaning that resources in OneView are allocated
prior to the node being made available in ironic. This model is deprecated and
will be supported until OpenStack's `P` release. From the Newton release on,
OneView drivers enables a new feature called **dynamic allocation** of nodes
[6]_. In this model, the driver allocates resources in OneView only at boot
time, allowing idle resources in ironic to be used by OneView users, enabling
actual resource sharing among ironic and OneView users.
Since OneView can claim nodes in ``available`` state at any time, a set of
tasks runs periodically to detect nodes in use by OneView. A node in use by
OneView is placed in ``manageable`` state and has maintenance mode set. Once
the node is no longer in use, these tasks will make place them back in
``available`` state and clear maintenance mode.
Prerequisites
=============
@ -51,13 +68,13 @@ The following requirements apply for both ``iscsi_pxe_oneview`` and
Minimum version supported is 2.0.
* ``python-oneviewclient`` is a python package containing a client to manage
the communication between Ironic and OneView.
the communication between ironic and OneView.
Install the ``python-oneviewclient`` module to enable the communication.
Minimum version required is 2.0.2 but it is recommended to install the most
Minimum version required is 2.4.0 but it is recommended to install the most
up-to-date version.::
$ pip install "python-oneviewclient<3.0.0,>=2.0.2"
$ pip install "python-oneviewclient<3.0.0,>=2.4.0"
Tested platforms
================
@ -71,11 +88,13 @@ Tested platforms
OneView's ServerProfile. It has been tested with the following servers:
- Proliant BL460c Gen8
- Proliant BL460c Gen9
- Proliant BL465c Gen8
- Proliant DL360 Gen9 (starting with python-oneviewclient 2.1.0)
Notice here that to the driver work correctly with Gen8 and Gen9 DL servers
in general, the hardware also needs to run version 4.2.3 of iLO, with Redfish.
Notice that for the driver to work correctly with Gen8 and Gen9 DL servers
in general, the hardware also needs to run version 4.2.3 of iLO, with
Redfish enabled.
Drivers
=======
@ -91,15 +110,28 @@ Overview
Configuring and enabling the driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Add ``iscsi_pxe_oneview`` to the list of ``enabled_drivers`` in
``/etc/ironic/ironic.conf``. For example::
1. Add ``iscsi_pxe_oneview`` to the list of ``enabled_drivers`` in your
``ironic.conf`` file. For example::
enabled_drivers = iscsi_pxe_oneview
2. Update the [oneview] section of your ``ironic.conf`` file with your
OneView credentials and CA certificate files information.
3. Restart the Ironic conductor service. For Ubuntu users, do::
.. note::
If you are using the deprecated ``pre-allocation`` feature (i.e.:
``dynamic_allocation`` is set to False on all nodes), you can disable the
driver periodic tasks by setting ``enable_periodic_tasks=false`` on the
[oneview] section of ``ironic.conf``
.. note::
An operator can set the ``periodic_check_interval`` option in the [oneview]
section to set the interval between running the periodic check. The default
value is 300 seconds (5 minutes). A lower value will reduce the likelyhood
of races between ironic and OneView at the cost of being more resource
intensive.
3. Restart the ironic conductor service. For Ubuntu users, do::
$ sudo service ironic-conductor restart
@ -112,10 +144,10 @@ Here is an overview of the deploy process for this driver:
1. Admin configures the Proliant baremetal node to use ``iscsi_pxe_oneview``
driver.
2. Ironic gets a request to deploy a Glance image on the baremetal node.
2. ironic gets a request to deploy a Glance image on the baremetal node.
3. Driver sets the boot device to PXE.
4. Driver powers on the baremetal node.
5. Ironic downloads the deploy and user images from a TFTP server.
5. ironic downloads the deploy and user images from a TFTP server.
6. Driver reboots the baremetal node.
7. User image is now deployed.
8. Driver powers off the machine.
@ -134,15 +166,28 @@ Overview
Configuring and enabling the driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Add ``agent_pxe_oneview`` to the list of ``enabled_drivers`` in
``/etc/ironic/ironic.conf``. For example::
1. Add ``agent_pxe_oneview`` to the list of ``enabled_drivers`` in your
``ironic.conf``. For example::
enabled_drivers = fake,pxe_ssh,pxe_ipmitool,agent_pxe_oneview
2. Update the [oneview] section of your ``ironic.conf`` file with your
OneView credentials and CA certificate files information.
3. Restart the Ironic conductor service. For Ubuntu users, do::
.. note::
If you are using the deprecated ``pre-allocation`` feature (i.e.:
``dynamic_allocation`` is set to False on all nodes), you can disable the
driver periodic tasks by setting ``enable_periodic_tasks=false`` on the
[oneview] section of ``ironic.conf``
.. note::
An operator can set the ``periodic_check_interval`` option in the [oneview]
section to set the interval between running the periodic check. The default
value is 300 seconds (5 minutes). A lower value will reduce the likelyhood
of races between ironic and OneView at the cost of being more resource
intensive.
3. Restart the ironic conductor service. For Ubuntu users, do::
$ service ironic-conductor restart
@ -155,7 +200,7 @@ Here is an overview of the deploy process for this driver:
1. Admin configures the Proliant baremetal node to use ``agent_pxe_oneview``
driver.
2. Ironic gets a request to deploy a Glance image on the baremetal node.
2. ironic gets a request to deploy a Glance image on the baremetal node.
3. Driver sets the boot device to PXE.
4. Driver powers on the baremetal node.
5. Node downloads the agent deploy images.
@ -167,7 +212,7 @@ Here is an overview of the deploy process for this driver:
11. Driver powers on the machine.
12. Baremetal node is active and ready to be used.
Registering a OneView node in Ironic
Registering a OneView node in ironic
====================================
Nodes configured to use any of the OneView drivers should have the ``driver``
@ -181,6 +226,12 @@ etc. In this case, to be enrolled, the node must have the following parameters:
- ``server_hardware_uri``: URI of the Server Hardware on OneView.
- ``dynamic_allocation``: Boolean value to enable or disable (True/False)
``dynamic allocation`` for the given node. If this parameter is not set,
the driver will consider the ``pre-allocation`` model to maintain
compatibility on ironic upgrade. The support for this key will be dropped
in P, where only dynamic allocation will be used.
* In ``properties/capabilities``
- ``server_hardware_type_uri``: URI of the Server Hardware Type of the
@ -205,26 +256,77 @@ OneView node, do::
$ ironic node-update $NODE_UUID add \
properties/capabilities=server_hardware_type_uri:$SHT_URI,enclosure_group_uri:$EG_URI,server_profile_template_uri=$SPT_URI
In order to deploy, a Server Profile consistent with the Server Profile
Template of the node MUST be applied to the Server Hardware it represents.
Server Profile Templates and Server Profiles to be utilized for deployments
MUST have configuration such that its **first Network Interface** ``boot``
property is set to "Primary" and connected to Ironic's provisioning network.
In order to deploy, ironic will create and apply, at boot time, a Server
Profile based on the Server Profile Template specified on the node to the
Server Hardware it represents on OneView. The URI of such Server Profile will
be stored in ``driver_info.applied_server_profile_uri`` field while the Server
is allocated to ironic.
To tell Ironic which NIC should be connected to the provisioning network, do::
The Server Profile Templates and, therefore, the Server Profiles derived from
them MUST comply with the following requirements:
* The option `MAC Address` in the `Advanced` section of Server Profile/Server
Profile Template should be set to `Physical` option;
* Their first `Connection` interface should be:
* Connected to ironic's provisioning network and;
* The `Boot` option should be set to primary.
Node ports should be created considering the **MAC address of the first
Interface** of the given Server Hardware.
.. note::
Old versions of ironic using ``pre-allocation`` model (before Newton
release) and nodes with `dynamic_allocation` flag disabled shall have their
Server Profiles applied during node enrollment and can have their ports
created using the `Virtual` MAC addresses provided on Server Profile
application.
To tell ironic which NIC should be connected to the provisioning network, do::
$ ironic port-create -n $NODE_UUID -a $MAC_ADDRESS
For more information on the enrollment process of an Ironic node, see [4]_.
For more information on the enrollment process of an ironic node, see [4]_.
For more information on the definitions of ``Server Hardware``,
``Server Profile``, ``Server Profile Template`` and many other OneView
entities, see [1]_ or browse Help in your OneView appliance menu.
For more information on the definitions of ``Server Hardware``, ``Server
Profile``, ``Server Profile Template`` and other OneView entities, refer to
[1]_ or browse Help in your OneView appliance menu.
3rd Party Tools
===============
In order to ease user manual tasks, which are often time-consuming, we provide
useful tools that work nicely with the OneView drivers.
ironic-oneview-cli
^^^^^^^^^^^^^^^^^^
The ``ironic-oneView`` CLI is a command line interface for management tasks
involving OneView nodes. Its features include a facility to create of ironic
nodes with all required parameters for OneView nodes, creation of Nova flavors
for OneView nodes and, starting from version 0.3.0, the migration of nodes from
``pre-allocation`` to the ``dynamic allocation`` model.
For more details on how Ironic-OneView CLI works and how to set it up, see
[8]_.
ironic-oneviewd
^^^^^^^^^^^^^^^
The ``ironic-oneviewd`` daemon monitors the ironic inventory of resources and
providing facilities to operators managing OneView driver deployments. The
daemon supports both allocation models (dynamic and pre-allocation) as of
version 0.1.0.
For more details on how Ironic-OneViewd works and how to set it up, see [7]_.
References
==========
.. [1] HP OneView - http://www8.hp.com/us/en/business-solutions/converged-systems/oneview.html
.. [1] HP OneView - https://www.hpe.com/us/en/integrated-systems/software.html
.. [2] Driver interfaces - http://docs.openstack.org/developer/ironic/dev/architecture.html#drivers
.. [3] python-oneviewclient - https://pypi.python.org/pypi/python-oneviewclient
.. [4] Enrollment process of a node - http://docs.openstack.org/developer/ironic/deploy/install-guide.html#enrollment-process
.. [5] Ironic install guide - http://docs.openstack.org/developer/ironic/deploy/install-guide.html#installation-guide
.. [5] ironic install guide - http://docs.openstack.org/developer/ironic/deploy/install-guide.html#installation-guide
.. [6] Dynamic Allocation in OneView drivers - http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/oneview-drivers-dynamic-allocation.html
.. [7] ironic-oneviewd - https://pypi.python.org/pypi/ironic-oneviewd/
.. [8] ironic-oneview-cli - https://pypi.python.org/pypi/ironic-oneview-cli/