Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 3. Adding a node to the overcloud
The overcloud can grow to meet an increase in demand by adding a new Nova compute and Ceph OSD node to the overcloud.
Prerequisites
- A running RHHI Cloud solution.
- The MAC addresses for the network interface cards (NICs).
- IPMI User name and password
Procedure
Do the following steps on the Red Hat OpenStack Platform director node, as the stack user.
Create and populate a host definition file for the Ironic service to manage the new node.
Create a new JSON host definition file:
[stack@director ~]$ touch ~/new_node.jsonAdd a definition block for the new node between the
nodesstanza square brackets ({"nodes": []}) using this template:{ "pm_password": "IPMI_USER_PASSWORD", "name": "NODE_NAME", "pm_user": "IPMI_USER_NAME", "pm_addr": "IPMI_IP_ADDR", "pm_type": "pxe_ipmitool", "mac": [ "NIC_MAC_ADDR" ], "arch": "x86_64", "capabilities": "node:_NODE_ROLE-INSTANCE_NUM_,boot_option:local" }- Replace…
- IPMI_USER_PASSWORD with the IPMI password.
- NODE_NAME with a descriptive name of the node. This is an optional parameter.
- IPMI_USER_NAME with the IPMI user name that has access to power the node on or off.
- IPMI_IP_ADDR with the IPMI IP address.
- NIC_MAC_ADDR with the network card MAC address handling the PXE boot.
NODE_ROLE-INSTANCE_NUM with the node’s role, along with a node number. This solution uses two roles:
controllerandosd-compute.{ "nodes": [ { "pm_password": "AbC1234", "name": "m630_slot2", "pm_user": "ipmiadmin", "pm_addr": "10.19.143.62", "pm_type": "pxe_ipmitool", "mac": [ "c8:1f:66:65:33:42" ], "arch": "x86_64", "capabilities": "node:osd-compute-3,boot_option:local" } ] }
Import the nodes into the Ironic database:
[stack@director ~]$ openstack baremetal import ~/new_node.jsonVerify that the
openstack baremetal importcommand populated the Ironic database with the new node:[stack@director ~]$ openstack baremetal node list
Set the new node into maintenance mode:
ironic node-set-maintenance $UUID true- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ ironic node-set-maintenance 7250678a-a575-4159-840a-e7214e697165 true
Inspect the new node’s hardware:
openstack baremetal introspection start $UUID- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ openstack baremetal introspection start 7250678a-a575-4159-840a-e7214e697165 trueThe introspection process can take some time to complete. Verify that the status of the introspection process:
[stack@director ~]$ openstack baremetal introspection bulk statusExample Output
+--------------------------------------+----------+-------+ | Node UUID | Finished | Error | +--------------------------------------+----------+-------+ | a94b75e3-369f-4b2d-b8cc-8ab272e23e89 | True | None | | 7ace7b2b-b549-414f-b83e-5f90299b4af3 | True | None | | 8be1d83c-19cb-4605-b91d-928df163b513 | True | None | | e8411659-bc2b-4178-b66f-87098a1e6920 | True | None | | 04679897-12e9-4637-9998-af8bee30b414 | True | None | | 48b4987d-e778-48e1-ba74-88a08edf7719 | True | None | | 7250678a-a575-4159-840a-e7214e697165 | True | None | +--------------------------------------+----------+-------+
Disable maintenance mode on the new node:
ironic node-set-maintenance $UUID false- Replace…
$UUIDwith the UUID of the new node. See the output from step 2a to get the new node’s UUID.Example
[stack@director ~]$ ironic node-set-maintenance 7250678a-a575-4159-840a-e7214e697165 false
Assign the full overcloud kernel and ramdisk image to the new node:
[stack@director ~]$ openstack baremetal configure bootOpen the
~/templates/layout.yamlfile for editing.-
Under the
parameter_defaultssection, change theOsdComputeCountoption from3to4. -
Under the
OsdComputeIPssection, add the new node’s IP addresses for each isolated network.
-
Under the
Apply the new overcloud configuration by rerunning the
openstack overcloud deploycommand with the same TripleO Heat templates from the initial overcloud deployment:Example
[stack@director ~]$ openstack overcloud deploy --templates \ -r ~/templates/custom-roles.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml \ -e ~/templates/network.yaml \ -e ~/templates/ceph.yaml \ -e ~/templates/compute.yaml \ -e ~/templates/layout.yamlVerify the addition of the new node:
[stack@director ~]$ openstack server listNoteIf the node status is
ACTIVE, then the new node was added successfully to the overcloud.