Chapter 19. Scaling overcloud nodes
The content for this feature is available in this release as a Documentation Preview, and therefore is not fully verified by Red Hat. Use it only for testing, and do not use in a production environment.
If you want to add or remove nodes after the creation of the overcloud, you must update the overcloud.
Do not use openstack server delete to remove nodes from the overcloud. Follow the procedures in this section to remove and replace nodes correctly.
Ensure that your bare metal nodes are not in maintenance mode before you begin scaling out or removing an overcloud node.
Use the following table to determine support for scaling each node type:
| Node type | Scale up? | Scale down? | Notes |
| Controller | N | N | You can replace Controller nodes using the procedures in Chapter 20, Replacing Controller nodes. |
| Compute | Y | Y | |
| Ceph Storage nodes | Y | N | You must have at least 1 Ceph Storage node from the initial overcloud creation. |
| Object Storage nodes | Y | Y |
Ensure that you have at least 10 GB free space before you scale the overcloud. This free space accommodates image conversion and caching during the node provisioning process.
19.1. Adding nodes to the overcloud Copy linkLink copied to clipboard!
You can add more nodes to your overcloud.
A fresh installation of Red Hat OpenStack Platform does not include certain updates, such as security errata and bug fixes. As a result, if you are scaling up a connected environment that uses the Red Hat Customer Portal or Red Hat Satellite Server, RPM updates are not applied to new nodes. To apply the latest updates to the overcloud nodes, you must do one of the following:
- Complete an overcloud update of the nodes after the scale-out operation.
-
Use the
virt-customizetool to modify the packages to the base overcloud image before the scale-out operation. For more information, see the Red Hat Knowledgebase solution Modifying the Red Hat Linux OpenStack Platform Overcloud Image with virt-customize.
Procedure
Create a new JSON file called
newnodes.jsonthat contains details of the new node that you want to register:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Register the new nodes:
source ~/stackrc (undercloud)$ openstack overcloud node import newnodes.json
$ source ~/stackrc (undercloud)$ openstack overcloud node import newnodes.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Launch the introspection process for each new node:
openstack overcloud node introspect \ --provide <node_1> [node_2] [node_n]
(undercloud)$ openstack overcloud node introspect \ --provide <node_1> [node_2] [node_n]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Use the
--provideoption to reset all the specified nodes to anavailablestate after introspection. -
Replace
<node_1>,[node_2], and all nodes up to[node_n]with the UUID of each node that you want to introspect.
-
Use the
Configure the image properties for each new node:
openstack overcloud node configure <node>
(undercloud)$ openstack overcloud node configure <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.2. Scaling up bare-metal nodes Copy linkLink copied to clipboard!
To increase the count of bare-metal nodes in an existing overcloud, increment the node count in the overcloud-baremetal-deploy.yaml file and redeploy the overcloud.
Prerequisites
- The new bare-metal nodes are registered, introspected, and available for provisioning and deployment. For more information, see Registering nodes for the overcloud and Creating an inventory of the bare-metal node hardware.
Procedure
Source the
stackrcundercloud credential file:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Open the
overcloud-baremetal-deploy.yamlnode definition file that you use to provision your bare-metal nodes. Increment the
countparameter for the roles that you want to scale up. For example, the following configuration increases the Object Storage node count to 4:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optional: Configure predictive node placement for the new nodes. For example, use the following configuration to provision a new Object Storage node on
node03:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Optional: Define any other attributes that you want to assign to your new nodes. For more information about the properties you can use to configure node attributes in your node definition file, see Bare-metal node provisioning attributes.
-
If you use the Object Storage service (swift) and the whole disk overcloud image,
overcloud-hardened-uefi-full, configure the size of the/srvpartition based on the size of your disk and your storage requirements for/varand/srv. For more information, see Configuring whole disk partitions for the Object Storage service. Provision the overcloud nodes:
openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<stack>with the name of the stack for which the bare-metal nodes are provisioned. If not specified, the default isovercloud. -
Replace
<deployment_file>with the name of the heat environment file to generate for inclusion in the deployment command, for example/home/stack/templates/overcloud-baremetal-deployed.yaml.
-
Replace
Monitor the provisioning progress in a separate terminal. When provisioning is successful, the node state changes from
availabletoactive:watch openstack baremetal node list
(undercloud)$ watch openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Add the generated
overcloud-baremetal-deployed.yamlfile to the stack with your other environment files and deploy the overcloud:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.3. Scaling down bare-metal nodes Copy linkLink copied to clipboard!
To scale down the number of bare-metal nodes in your overcloud, tag the nodes that you want to delete from the stack in the node definition file, redeploy the overcloud, and then delete the bare-metal node from the overcloud.
Prerequisites
- A successful undercloud installation. For more information, see Installing director on the undercloud.
- A successful overcloud deployment. For more information, see Configuring a basic overcloud with pre-provisioned nodes.
If you are replacing an Object Storage node, replicate data from the node you are removing to the new replacement node. Wait for a replication pass to finish on the new node. Check the replication pass progress in the
/var/log/swift/swift.logfile. When the pass finishes, the Object Storage service (swift) adds entries to the log similar to the following example:Mar 29 08:49:05 localhost object-server: Object replication complete. Mar 29 08:49:11 localhost container-server: Replication run OVER Mar 29 08:49:13 localhost account-server: Replication run OVER
Mar 29 08:49:05 localhost object-server: Object replication complete. Mar 29 08:49:11 localhost container-server: Replication run OVER Mar 29 08:49:13 localhost account-server: Replication run OVERCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Source the
stackrcundercloud credential file:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Decrement the
countparameter in theovercloud-baremetal-deploy.yamlfile, for the roles that you want to scale down. -
Define the
hostnameandnameof each node that you want to remove from the stack, if they are not already defined in theinstancesattribute for the role. Add the attribute
provisioned: falseto the node that you want to remove. For example, to remove the nodeovercloud-objectstorage-1from the stack, include the following snippet in yourovercloud-baremetal-deploy.yamlfile:Copy to Clipboard Copied! Toggle word wrap Toggle overflow After you redeploy the overcloud, the nodes that you define with the
provisioned: falseattribute are no longer present in the stack. However, these nodes are still running in a provisioned state.NoteTo remove a node from the stack temporarily, deploy the overcloud with the attribute
provisioned: falseand then redeploy the overcloud with the attributeprovisioned: trueto return the node to the stack.Delete the node from the overcloud:
openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<stack>with the name of the stack for which the bare-metal nodes are provisioned. If not specified, the default isovercloud.NoteDo not include the nodes that you want to remove from the stack as command arguments in the
openstack overcloud node deletecommand.
Provision the overcloud nodes to generate an updated heat environment file for inclusion in the deployment command:
openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<deployment_file>with the name of the heat environment file to generate for inclusion in the deployment command, for example/home/stack/templates/overcloud-baremetal-deployed.yaml.
-
Replace
Add the
overcloud-baremetal-deployed.yamlfile generated by the provisioning command to the stack with your other environment files, and deploy the overcloud:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.4. Removing or replacing a Compute node Copy linkLink copied to clipboard!
In some situations you need to remove a Compute node from the overcloud. For example, you might need to replace a problematic Compute node. When you delete a Compute node the node’s index is added by default to the denylist to prevent the index being reused during scale out operations.
You can replace the removed Compute node after you have removed the node from your overcloud deployment.
Prerequisites
The Compute service is disabled on the nodes that you want to remove to prevent the nodes from scheduling new instances. To confirm that the Compute service is disabled, use the following command:
openstack compute service list
(overcloud)$ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow If the Compute service is not disabled then disable it:
openstack compute service set <hostname> nova-compute --disable
(overcloud)$ openstack compute service set <hostname> nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow TipUse the
--disable-reasonoption to add a short explanation on why the service is being disabled. This is useful if you intend to redeploy the Compute service.- The workloads on the Compute nodes have been migrated to other Compute nodes. For more information, see Migrating virtual machine instances between Compute nodes.
If Instance HA is enabled, choose one of the following options:
-
If the Compute node is accessible, log in to the Compute node as the
rootuser and perform a clean shutdown with theshutdown -h nowcommand. If the Compute node is not accessible, log in to a Controller node as the
rootuser, disable the STONITH device for the Compute node, and shut down the bare metal node:pcs stonith disable <stonith_resource_name> source stackrc openstack baremetal node power off <UUID>
[root@controller-0 ~]# pcs stonith disable <stonith_resource_name> [stack@undercloud ~]$ source stackrc [stack@undercloud ~]$ openstack baremetal node power off <UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
If the Compute node is accessible, log in to the Compute node as the
Procedure
Source the undercloud configuration:
source ~/stackrc
(overcloud)$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Decrement the
countparameter in theovercloud-baremetal-deploy.yamlfile, for the roles that you want to scale down. -
Define the
hostnameandnameof each node that you want to remove from the stack, if they are not already defined in theinstancesattribute for the role. Add the attribute
provisioned: falseto the node that you want to remove. For example, to remove the nodeovercloud-compute-1from the stack, include the following snippet in yourovercloud-baremetal-deploy.yamlfile:Copy to Clipboard Copied! Toggle word wrap Toggle overflow After you redeploy the overcloud, the nodes that you define with the
provisioned: falseattribute are no longer present in the stack. However, these nodes are still running in a provisioned state.NoteIf you want to remove a node from the stack temporarily, you can deploy the overcloud with the attribute
provisioned: falseand then redeploy the overcloud with the attributeprovisioned: trueto return the node to the stack.Delete the node from the overcloud:
openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace
<stack>with the name of the stack for which the bare-metal nodes are provisioned. If not specified, the default isovercloud.NoteDo not include the nodes that you want to remove from the stack as command arguments in the
openstack overcloud node deletecommand.
Provision the overcloud nodes to generate an updated heat environment file for inclusion in the deployment command:
openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<stack>with the name of the stack for which the bare-metal nodes are provisioned. If not specified, the default isovercloud. -
Replace
<deployment_file>with the name of the heat environment file to generate for inclusion in the deployment command, for example/home/stack/templates/overcloud-baremetal-deployed.yaml.
-
Replace
If Instance HA is enabled, perform the following actions:
Clean up the Pacemaker resources for the node:
sudo pcs resource delete <scaled_down_node> sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>' sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>' sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>' sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --force
$ sudo pcs resource delete <scaled_down_node> $ sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>' $ sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>' $ sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>' $ sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<scaled_down_node>with the name of the removed node.
-
Replace
Delete the STONITH device for the node:
sudo pcs stonith delete <device-name>
$ sudo pcs stonith delete <device-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- If you are replacing the removed Compute node on your overcloud deployment, see Replacing a removed Compute node.
19.4.1. Removing a Compute node manually Copy linkLink copied to clipboard!
If the openstack overcloud node delete command failed due to an unreachable node, then you must manually complete the removal of the Compute node from the overcloud.
Prerequisites
-
Performing the Removing or replacing a Compute node procedure returned a status of
UPDATE_FAILED.
Procedure
Source the undercloud configuration:
source ~/stackrc
(overcloud)$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
openstack tripleo launch heatcommand to launch the ephemeral heat process:openstack tripleo launch heat --heat-dir /home/stack/overcloud-deploy/overcloud/heat-launcher --restore-db
(undercloud)$ openstack tripleo launch heat --heat-dir /home/stack/overcloud-deploy/overcloud/heat-launcher --restore-dbCopy to Clipboard Copied! Toggle word wrap Toggle overflow The command exits after launching the heat process. The heat process continues to run in the background as a podman pod.
Use the
podman pod pscommand to verify that theephemeral-heatprocess is running:sudo podman pod ps POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS 958b141609b2 ephemeral-heat Running 2 minutes ago 44447995dbcf 3
(undercloud)$ sudo podman pod ps POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS 958b141609b2 ephemeral-heat Running 2 minutes ago 44447995dbcf 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
exportcommand to export theOS_CLOUDenvironment:export OS_CLOUD=heat
(undercloud)$ export OS_CLOUD=heatCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
openstack stack listcommand to list the installed stacks:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Identify the UUID of the node that you want to manually delete:
openstack baremetal node list
(undercloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Move the node that you want to delete to maintenance mode:
openstack baremetal node maintenance set <node_uuid>
(undercloud)$ openstack baremetal node maintenance set <node_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Wait for the Compute service to synchronize its state with the Bare Metal service. This can take up to four minutes.
Source the overcloud configuration:
source ~/overcloudrc
(undercloud)$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the network agents for the node that you deleted:
for AGENT in $(openstack network agent list --host <scaled_down_node> -c ID -f value) ; do openstack network agent delete $AGENT ; done
(overcloud)$ for AGENT in $(openstack network agent list --host <scaled_down_node> -c ID -f value) ; do openstack network agent delete $AGENT ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<scaled_down_node>with the name of the node to remove.
-
Replace
Confirm that the Compute service is disabled on the deleted node on the overcloud, to prevent the node from scheduling new instances:
openstack compute service list
(overcloud)$ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow If the Compute service is not disabled, disable it:
openstack compute service set <hostname> nova-compute --disable
(overcloud)$ openstack compute service set <hostname> nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Remove the deleted Compute service as a resource provider from the Placement service:
openstack resource provider list openstack resource provider delete <uuid>
(overcloud)$ openstack resource provider list (overcloud)$ openstack resource provider delete <uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the host from IdM. If your IdM domain has integrated DNS, use the
--updatednsoption to remove the associated records of any kind for the host from the DNS:ipa host-del --updatedns <hostname_to_delete>
$ ipa host-del --updatedns <hostname_to_delete>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<hostname_to_delete>with the host that you want to delete.
-
Replace
- Log in as the root user on the Compute node that you want to delete.
Delete the System Profile of the system that is registered with Red Hat Subscription Management:
subscription-manager remove --all subscription-manager unregister subscription-manager clean
# subscription-manager remove --all # subscription-manager unregister # subscription-manager cleanCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteIf you cannot reach the Compute node, you can delete the System Profile on the Red Hat Customer Portal. For more information, see How to delete System Profiles of the systems registered with Red Hat Subscription Management (RHSM)?.
Source the undercloud configuration:
source ~/stackrc
(overcloud)$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the Compute node from the stack:
openstack overcloud node delete --stack <overcloud> <node> --baremetal-deployment <baremetal_deployment_file>
(undercloud)$ openstack overcloud node delete --stack <overcloud> <node> --baremetal-deployment <baremetal_deployment_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Replace
<overcloud>with the name or UUID of the overcloud stack. -
Replace
<node>with the Compute service host name or UUID of the Compute node that you want to delete. Replace
<baremetal_deployment_file>with the name of the bare metal deployment file.NoteIf the node has already been powered off, this command returns a
WARNINGmessage:Ansible failed, check log at `~/ansible.log` WARNING: Scale-down configuration error. Manual cleanup of some actions may be necessary. Continuing with node removal.
Ansible failed, check log at `~/ansible.log` WARNING: Scale-down configuration error. Manual cleanup of some actions may be necessary. Continuing with node removal.Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can ignore this message.
-
Replace
- Wait for the overcloud node to delete.
Check the status of the overcloud stack when the node deletion is complete:
openstack stack list
(undercloud)$ openstack stack listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Expand Table 19.2. Result Status Description UPDATE_COMPLETEThe delete operation completed successfully.
UPDATE_FAILEDThe delete operation failed.
If the overcloud node fails to delete while in maintenance mode, then the problem might be with the hardware.
If Instance HA is enabled, perform the following actions:
Clean up the Pacemaker resources for the node:
sudo pcs resource delete <scaled_down_node> sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>' sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>' sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>' sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --force
$ sudo pcs resource delete <scaled_down_node> $ sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>' $ sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>' $ sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>' $ sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the STONITH device for the node:
sudo pcs stonith delete <device-name>
$ sudo pcs stonith delete <device-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If you are not replacing the removed Compute node on the overcloud, then decrease the
ComputeCountparameter in the environment file that contains your node counts. This file is usually namedovercloud-baremetal-deploy.yaml. For example, decrease the node count from four nodes to three nodes if you removed one node:parameter_defaults: ... ComputeCount: 3 ...
parameter_defaults: ... ComputeCount: 3 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Decreasing the node count ensures that director does not provision any new nodes when you run
openstack overcloud deploy.If you are replacing the removed Compute node on your overcloud deployment, see Replacing a removed Compute node.
19.4.2. Replacing a removed Compute node Copy linkLink copied to clipboard!
To replace a removed Compute node on your overcloud deployment, you can register and inspect a new Compute node or re-add the removed Compute node. You must also configure your overcloud to provision the node.
Procedure
Optional: To reuse the index of the removed Compute node, configure the
RemovalPoliciesModeand theRemovalPoliciesparameters for the role to replace the denylist when a Compute node is removed:parameter_defaults: <RoleName>RemovalPoliciesMode: update <RoleName>RemovalPolicies: [{'resource_list': []}]parameter_defaults: <RoleName>RemovalPoliciesMode: update <RoleName>RemovalPolicies: [{'resource_list': []}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace the removed Compute node:
- To add a new Compute node, register, inspect, and tag the new node to prepare it for provisioning. For more information, see Configuring and deploying the overcloud.
To re-add a Compute node that you removed manually, remove the node from maintenance mode:
openstack baremetal node maintenance unset <node_uuid>
(undercloud)$ openstack baremetal node maintenance unset <node_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Rerun the
openstack overcloud deploycommand that you used to deploy the existing overcloud. - Wait until the deployment process completes.
Confirm that director has successfully registered the new Compute node:
openstack baremetal node list
(undercloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow If you performed step 1 to set the
RemovalPoliciesModefor the role toupdate, then you must reset theRemovalPoliciesModefor the role to the default value,append, to add the Compute node index to the current denylist when a Compute node is removed:parameter_defaults: <RoleName>RemovalPoliciesMode: append
parameter_defaults: <RoleName>RemovalPoliciesMode: appendCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Rerun the
openstack overcloud deploycommand that you used to deploy the existing overcloud.
19.5. Replacing Ceph Storage nodes Copy linkLink copied to clipboard!
You can use director to replace Ceph Storage nodes in a director-created cluster. For more information, see the Deploying Red Hat Ceph Storage and Red Hat OpenStack Platform together with director guide.
19.6. Using skip deploy identifier Copy linkLink copied to clipboard!
During a stack update operation puppet, by default, reapplies all manifests. This can result in a time consuming operation, which may not be required.
To override the default operation, use the skip-deploy-identifier option.
openstack overcloud deploy --skip-deploy-identifier
openstack overcloud deploy --skip-deploy-identifier
Use this option if you do not want the deployment command to generate a unique identifier for the DeployIdentifier parameter. The software configuration deployment steps only trigger if there is an actual change to the configuration. Use this option with caution and only if you are confident that you do not need to run the software configuration, such as scaling out certain roles.
If there is a change to the puppet manifest or hierdata, puppet will reapply all manifests even when --skip-deploy-identifier is specified.
19.7. Blacklisting nodes Copy linkLink copied to clipboard!
You can exclude overcloud nodes from receiving an updated deployment. This is useful in scenarios where you want to scale new nodes and exclude existing nodes from receiving an updated set of parameters and resources from the core heat template collection. This means that the blacklisted nodes are isolated from the effects of the stack operation.
Use the DeploymentServerBlacklist parameter in an environment file to create a blacklist.
Setting the blacklist
The DeploymentServerBlacklist parameter is a list of server names. Write a new environment file, or add the parameter value to an existing custom environment file and pass the file to the deployment command:
parameter_defaults:
DeploymentServerBlacklist:
- overcloud-compute-0
- overcloud-compute-1
- overcloud-compute-2
parameter_defaults:
DeploymentServerBlacklist:
- overcloud-compute-0
- overcloud-compute-1
- overcloud-compute-2
The server names in the parameter value are the names according to OpenStack Orchestration (heat), not the actual server hostnames.
Include this environment file with your openstack overcloud deploy command:
source ~/stackrc (undercloud) $ openstack overcloud deploy --templates \ -e server-blacklist.yaml \ [OTHER OPTIONS]
$ source ~/stackrc
(undercloud) $ openstack overcloud deploy --templates \
-e server-blacklist.yaml \
[OTHER OPTIONS]
Heat blacklists any servers in the list from receiving updated heat deployments. After the stack operation completes, any blacklisted servers remain unchanged. You can also power off or stop the os-collect-config agents during the operation.
- Exercise caution when you blacklist nodes. Only use a blacklist if you fully understand how to apply the requested change with a blacklist in effect. It is possible to create a hung stack or configure the overcloud incorrectly when you use the blacklist feature. For example, if cluster configuration changes apply to all members of a Pacemaker cluster, blacklisting a Pacemaker cluster member during this change can cause the cluster to fail.
- Do not use the blacklist during update or upgrade procedures. Those procedures have their own methods for isolating changes to particular servers.
-
When you add servers to the blacklist, further changes to those nodes are not supported until you remove the server from the blacklist. This includes updates, upgrades, scale up, scale down, and node replacement. For example, when you blacklist existing Compute nodes while scaling out the overcloud with new Compute nodes, the blacklisted nodes miss the information added to
/etc/hostsand/etc/ssh/ssh_known_hosts. This can cause live migration to fail, depending on the destination host. The Compute nodes are updated with the information added to/etc/hostsand/etc/ssh/ssh_known_hostsduring the next overcloud deployment where they are no longer blacklisted. Do not modify the/etc/hostsand/etc/ssh/ssh_known_hostsfiles manually. To modify the/etc/hostsand/etc/ssh/ssh_known_hostsfiles, run the overcloud deploy command as described in the Clearing the Blacklist section.
Clearing the blacklist
To clear the blacklist for subsequent stack operations, edit the DeploymentServerBlacklist to use an empty array:
parameter_defaults: DeploymentServerBlacklist: []
parameter_defaults:
DeploymentServerBlacklist: []
Do not omit the DeploymentServerBlacklist parameter. If you omit the parameter, the overcloud deployment uses the previously saved value.