Software RAID: Add documentation
Update the RAID documentation in the admin guide with the IPA support for Software RAID. Change-Id: I3383e4b4b3c5a887e6795043ad8126d4d4a216d2 Story: #2004581 Task: #33643
This commit is contained in:
parent
46533ebea2
commit
2f5ac84211
@ -30,11 +30,16 @@ command ``openstack baremetal node validate <node-uuid>``.
|
|||||||
Build agent ramdisk which supports RAID configuration
|
Build agent ramdisk which supports RAID configuration
|
||||||
=====================================================
|
=====================================================
|
||||||
|
|
||||||
For doing in-band RAID configuration, Ironic needs an agent ramdisk bundled
|
For doing in-band hardware RAID configuration, Ironic needs an agent ramdisk
|
||||||
with a hardware manager which supports RAID configuration for your hardware.
|
bundled with a hardware manager which supports RAID configuration for your
|
||||||
For example, the :ref:`DIB_raid_support` should be used for HPE
|
hardware. For example, the :ref:`DIB_raid_support` should be used for HPE
|
||||||
Proliant Servers.
|
Proliant Servers.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
For in-band software RAID, the agent ramdisk does not need to be bundled
|
||||||
|
with a hardware manager as the generic hardware manager in the Ironic
|
||||||
|
Python Agent already provides (basic) support for software RAID.
|
||||||
|
|
||||||
RAID configuration JSON format
|
RAID configuration JSON format
|
||||||
==============================
|
==============================
|
||||||
The desired RAID configuration and current RAID configuration are represented
|
The desired RAID configuration and current RAID configuration are represented
|
||||||
@ -134,6 +139,8 @@ The RAID properties can be split into 4 different types:
|
|||||||
The values for these properties are hardware dependent.
|
The values for these properties are hardware dependent.
|
||||||
|
|
||||||
- ``controller`` - The name of the controller as read by the RAID interface.
|
- ``controller`` - The name of the controller as read by the RAID interface.
|
||||||
|
In order to trigger the setup of a Software RAID via the Ironic Python
|
||||||
|
Agent, the value of this property needs to be set to "software".
|
||||||
- ``physical_disks`` - A list of physical disks to use as read by the
|
- ``physical_disks`` - A list of physical disks to use as read by the
|
||||||
RAID interface.
|
RAID interface.
|
||||||
|
|
||||||
@ -144,6 +151,11 @@ The RAID properties can be split into 4 different types:
|
|||||||
will fail (because the appropriate backing physical disks could
|
will fail (because the appropriate backing physical disks could
|
||||||
not be found).
|
not be found).
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
For software RAID as provided by the generic hardware manager that ships
|
||||||
|
with the Ironic Python Agent, only the mandatory properties (plus the
|
||||||
|
required ``controller`` property) are currently supported.
|
||||||
|
|
||||||
Examples for ``target_raid_config``
|
Examples for ``target_raid_config``
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -224,6 +236,22 @@ HDD::
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*Example 5*. Software RAID with two RAID devices::
|
||||||
|
|
||||||
|
{
|
||||||
|
"logical_disks": [
|
||||||
|
{
|
||||||
|
"size_gb": 100,
|
||||||
|
"raid_level": "1",
|
||||||
|
"controller": "software"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size_gb": "MAX",
|
||||||
|
"raid_level": "0",
|
||||||
|
"controller": "software"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
Current RAID configuration
|
Current RAID configuration
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -243,7 +271,8 @@ Workflow
|
|||||||
========
|
========
|
||||||
|
|
||||||
* Operator configures the bare metal node with a hardware type that has
|
* Operator configures the bare metal node with a hardware type that has
|
||||||
a ``RAIDInterface`` other than ``no-raid``.
|
a ``RAIDInterface`` other than ``no-raid``. For instance, for Software RAID,
|
||||||
|
this would be ``agent``.
|
||||||
|
|
||||||
* For in-band RAID configuration, operator builds an agent ramdisk which
|
* For in-band RAID configuration, operator builds an agent ramdisk which
|
||||||
supports RAID configuration by bundling the hardware manager with the
|
supports RAID configuration by bundling the hardware manager with the
|
||||||
@ -254,11 +283,11 @@ Workflow
|
|||||||
`Target RAID configuration`_. The target RAID configuration is set on
|
`Target RAID configuration`_. The target RAID configuration is set on
|
||||||
the Ironic node::
|
the Ironic node::
|
||||||
|
|
||||||
openstack baremetal --os-baremetal-api-version 1.15 node set <node-uuid-or-name> \
|
openstack baremetal node set <node-uuid-or-name> \
|
||||||
--target-raid-config <JSON file containing target RAID configuration>
|
--target-raid-config <JSON file containing target RAID configuration>
|
||||||
|
|
||||||
The CLI command can accept the input from standard input also:
|
The CLI command can accept the input from standard input also:
|
||||||
openstack baremetal --os-baremetal-api-version 1.15 node set <node-uuid-or-name> \
|
openstack baremetal node set <node-uuid-or-name> \
|
||||||
--target-raid-config -
|
--target-raid-config -
|
||||||
|
|
||||||
* Create a JSON file with the RAID clean steps for manual cleaning. Add other
|
* Create a JSON file with the RAID clean steps for manual cleaning. Add other
|
||||||
@ -283,13 +312,33 @@ Workflow
|
|||||||
* Bring the node to ``manageable`` state and do a ``clean`` action to start
|
* Bring the node to ``manageable`` state and do a ``clean`` action to start
|
||||||
cleaning on the node::
|
cleaning on the node::
|
||||||
|
|
||||||
openstack baremetal --os-baremetal-api-version 1.15 node clean <node-uuid-or-name> \
|
openstack baremetal node clean <node-uuid-or-name> \
|
||||||
--clean-steps <JSON file containing clean steps created above>
|
--clean-steps <JSON file containing clean steps created above>
|
||||||
|
|
||||||
* After manual cleaning is complete, the current RAID configuration can be
|
* After manual cleaning is complete, the current RAID configuration is
|
||||||
viewed using::
|
reported in the ``raid_config`` field when running::
|
||||||
|
|
||||||
openstack baremetal --os-baremetal-api-version 1.15 node show <node-uuid-or-name>
|
openstack baremetal node show <node-uuid-or-name>
|
||||||
|
|
||||||
|
Current Limitations of Software RAID
|
||||||
|
====================================
|
||||||
|
|
||||||
|
There are certain limitations to be aware of when setting up a Software RAID via the
|
||||||
|
Ironic Python Agent:
|
||||||
|
|
||||||
|
* There is no way to select the disks which are used to set up the software RAID,
|
||||||
|
so the Ironic Python Agent will use all available disks. This seems appropriate
|
||||||
|
for servers with 2 or 4 disks, but needs to be considered when disk arrays are
|
||||||
|
attached.
|
||||||
|
|
||||||
|
* The number of created Software RAID devices must be 1 or 2. If there is only one
|
||||||
|
Software RAID device, it has to be a RAID-1. If there are two, the first one has
|
||||||
|
to be a RAID-1, while the RAID level for the second one can 0, 1, or 1+0. As the
|
||||||
|
first RAID device will be the deployment device, enforcing a RAID-1 reduces the
|
||||||
|
risk of ending up with a non-booting node in case of a disk failure.
|
||||||
|
|
||||||
|
* There is no support for partition images, only whole-disk images are supported with
|
||||||
|
Software RAID.
|
||||||
|
|
||||||
Using RAID in nova flavor for scheduling
|
Using RAID in nova flavor for scheduling
|
||||||
========================================
|
========================================
|
||||||
|
Loading…
Reference in New Issue
Block a user