Chapter 25. Performing post-upgrade actions
After you have completed the overcloud upgrade, you must perform some post-upgrade configuration to ensure that your environment is fully supported and ready for future operations.
25.1. Removing unnecessary packages and directories from the undercloud Copy linkLink copied to clipboard!
After the Leapp upgrade, remove the unnecessary packages and directories that remain on the undercloud.
Procedure
Remove the unnecessary packages
$ sudo dnf -y remove --exclude=python-pycadf-common python2*Remove the content from the
/httpbootand/tftpbootdirectories that includes old images used in Red Hat OpenStack 13:$ sudo rm -rf /httpboot /tftpboot
25.2. Removing legacy overcloud images Copy linkLink copied to clipboard!
Remove legacy overcloud images from your environment after an upgrade or minor update to avoid accumulating unused images that can interfere with your next update or upgrade. For example, accumulated legacy images use significant root disk space, which can cause a validation to fail because there is not enough free space.
Procedure
Check which images you no longer use:
$ openstack image list +--------------------------------------+-----------------------------------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------------------------------+--------+ | 93c156e3-2eae-440b-8fa9-b5aacd15a602 | bm-deploy-kernel | active | | 59b80e18-6d84-4d81-bfa7-ccdade4b46eb | bm-deploy-kernel_20200922T105130Z | active | | b8c218fb-97d1-4e13-ad15-a94a00fe9354 | bm-deploy-ramdisk | active | | 1d5b38d1-4a84-48a1-b830-d45643f11a2b | bm-deploy-ramdisk_20200922T105131Z | active | | b87a6265-cf2a-4dfa-9020-c5293300615d | overcloud-full | active | | c284c181-9dbe-4106-a30b-ac0afd1df96e | overcloud-full_20220822T092204Z | active | | c16f5c7a-02eb-441a-878d-e198b91fc138 | overcloud-full-initrd | active | | 18d654cd-1c79-4319-bc09-4ffd9da5fdae | overcloud-full-initrd_20220822T092201Z | active | | 5626bb6f-f110-4f34-b961-35b3a6b4fb74 | overcloud-full-vmlinuz | active | | 90955262-2952-4049-a7ac-b6ee92826ab7 | overcloud-full-vmlinuz_20220822T092159Z | active | +--------------------------------------+-----------------------------------------+--------+Delete each legacy image:
The following example removes all images with a timestamp in their name, such as
20200922T105130Zor20220822T092159Z:$ source ~/stackrc $ openstack image list -c Name -f value | egrep "_202[0-9]+T[0-9]+Z" | xargs openstack image deleteNoteIf you upgraded your environment from RHOSP 13.0 to 16.2, the images do not include timestamps. The following example shows how to remove images with
bm-deployin their name that are also no longer necessary:$ openstack image list -c Name -f value | egrep bm-deploy | xargs openstack image delete
25.3. Deleting users of redundant telemetry services Copy linkLink copied to clipboard!
The telemetry endpoints are disabled by default. You can use this procedure to remove any telemetry endpoints that remain after the upgrade.
Prerequisites
- You have telemetry endpoints remaining after the upgrade. You can use the procedure to identify the remaining telemetry endpoints.
Procedure
Log in to your undercloud and source the overcloud authentication file:
$ source ~/overcloudrcIdentify the telemetry endpoints that remain after the upgrade:
$ openstack endpoint list | grep -i -e aodh -e gnocchi -e pankoDelete the users of the missing endpoints:
$ openstack user delete aodh gnocchi panko
Verification
Verify that the endpoint users are absent:
$ openstack user list
25.4. Validating the post-upgrade functionality Copy linkLink copied to clipboard!
Run the post-upgrade validation group to check the post-upgrade functionality.
Procedure
Source the
stackrcfile.$ source ~/stackrcIf no inventory file exists, you must generate a static inventory file:
$ tripleo-ansible-inventory --static-yaml-inventory ~$HOME/config-download/<stack_name>/tripleo-ansible-inventory.yaml --stack <stack_name> --ansible_ssh_user heat-adminIf you are not using the default overcloud stack name, replace <stack_name> with the name of your stack.
Run the
openstack tripleo validator runcommand with the --group post-upgrade option:$ openstack tripleo validator run --group {validation} --inventory ~$HOME/config-download/<stack_name>/tripleo-ansible-inventory.yamlIf you are not using the default overcloud stack name, replace <stack_name> with the name of your stack.
Review the results of the validation report. To view detailed output from a specific validation, run the
openstack tripleo validator show run --fullcommand against the UUID of the specific validation from the report:$ openstack tripleo validator show run --full <UUID>
A FAILED validation does not prevent you from deploying or running Red Hat OpenStack Platform. However, a FAILED validation can indicate a potential issue with a production environment.
25.5. Upgrading the overcloud images Copy linkLink copied to clipboard!
You must replace your current overcloud images with new versions. The new images ensure that the director can introspect and provision your nodes using the latest version of OpenStack Platform software.
Prerequisites
- You have upgraded the undercloud to the latest version.
Procedure
-
Log in to the undercloud as the
stackuser. Source the
stackrcfile.$ source ~/stackrcInstall the packages containing the overcloud QCOW2 archives:
$ sudo dnf install rhosp-director-images rhosp-director-images-ipa-x86_64Remove any existing images from the
imagesdirectory on thestackuser’s home (/home/stack/images):$ rm -rf ~/images/*Extract the archives:
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-16.2.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-16.2.tar; do tar -xvf $i; done $ cd ~Import the latest images into the director:
$ openstack overcloud image upload --update-existing --image-path /home/stack/images/Configure your nodes to use the new images:
$ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
When you deploy overcloud nodes, ensure that the overcloud image version corresponds to the respective heat template version. For example, use the OpenStack Platform 16.2 images only with the OpenStack Platform 16.2 heat templates.
The new overcloud-full image replaces the old overcloud-full image. If you made changes to the old image, you must repeat the changes in the new image, especially if you want to deploy new nodes in the future.
25.6. Updating CPU pinning parameters Copy linkLink copied to clipboard!
Red Hat OpenStack Platform 16.2 uses new parameters for CPU pinning:
NovaComputeCpuDedicatedSet- Sets the dedicated (pinned) CPUs.
NovaComputeCpuSharedSet- Sets the shared (unpinned) CPUs.
You must migrate the CPU pinning configuration from the NovaVcpuPinSet parameter to the NovaComputeCpuDedicatedSet and NovaComputeCpuSharedSet parameters after completing the upgrade to Red Hat OpenStack Platform 16.2.
Procedure
-
Log in to the undercloud as the
stackuser. If your Compute nodes support simultaneous multithreading (SMT) but you created instances with the
hw:cpu_thread_policy=isolatedpolicy, you must perform one of the following options:Unset the
hw:cpu_thread_policythread policy and resize the instances:Source your overcloud authentication file:
$ source ~/overcloudrcUnset the
hw:cpu_thread_policyproperty of the flavor:(overcloud) $ openstack flavor unset --property hw:cpu_thread_policy <flavor>Note-
Unsetting the
hw:cpu_thread_policyattribute sets the policy to the defaultpreferpolicy, which sets the instance to use an SMT-enabled Compute node if available. You can also set thehw:cpu_thread_policyattribute torequire, which sets a hard requirements for an SMT-enabled Compute node. -
If the Compute node does not have an SMT architecture or enough CPU cores with available thread siblings, scheduling will fail. To prevent this, set
hw:cpu_thread_policytopreferinstead ofrequire. The defaultpreferpolicy ensures that thread siblings are used when available. -
If you use
hw:cpu_thread_policy=isolate, you must have SMT disabled or use a platform that does not support SMT.
-
Unsetting the
Convert the instances to use the new thread policy.
(overcloud) $ openstack server resize --flavor <flavor> <server> (overcloud) $ openstack server resize confirm <server>Repeat this step for all pinned instances using the
hw:cpu_thread_policy=isolatedpolicy.
Migrate instances from the Compute node and disable SMT on the Compute node:
Source your overcloud authentication file:
$ source ~/overcloudrcDisable the Compute node from accepting new virtual machines:
(overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable- Migrate all instances from the Compute node. For more information on instance migration, see Migrating virtual machine instances between Compute nodes.
- Reboot the Compute node and disable SMT in the BIOS of the Compute node.
- Boot the Compute node.
Re-enable the Compute node:
(overcloud) $ openstack compute service set <hostname> nova-compute --enable
Source the
stackrcfile:$ source ~/stackrc-
Edit the environment file that contains the
NovaVcpuPinSetparameter. Migrate the CPU pinning configuration from the
NovaVcpuPinSetparameter toNovaComputeCpuDedicatedSetandNovaComputeCpuSharedSet:-
Migrate the value of
NovaVcpuPinSettoNovaComputeCpuDedicatedSetfor hosts that were previously used for pinned instances. -
Migrate the value of
NovaVcpuPinSettoNovaComputeCpuSharedSetfor hosts that were previously used for unpinned instances. -
If there is no value set for NovaVcpuPinSet, then all Compute node cores should be assigned to either
NovaComputeCpuDedicatedSetorNovaComputeCpuSharedSet, depending on the type of instances you intend to host on the nodes.
For example, your previous environment file might contain the following pinning configuration:
parameter_defaults: ... NovaVcpuPinSet: 1,2,3,5,6,7 ...To migrate the configuration to a pinned configuration, set the
NovaComputeCpuDedicatedSetparameter and unset theNovaVcpuPinSetparameter:parameter_defaults: ... NovaComputeCpuDedicatedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...To migrate the configuration to an unpinned configuration, set the
NovaComputeCpuSharedSetparameter and unset theNovaVcpuPinSetparameter:parameter_defaults: ... NovaComputeCpuSharedSet: 1,2,3,5,6,7 NovaVcpuPinSet: "" ...ImportantEnsure the configuration of either
NovaComputeCpuDedicatedSetorNovaComputeCpuSharedSetmatches the configuration defined inNovaVcpuPinSet. To change the configuration for either of these, or to configure bothNovaComputeCpuDedicatedSetorNovaComputeCpuSharedSet, ensure the Compute nodes with the pinning configuration are not running any instances before updating the configuration.-
Migrate the value of
- Save the file.
Run the deployment command to update the overcloud with the new CPU pinning parameters.
(undercloud) $ openstack overcloud deploy \ --stack _STACK NAME_ \ --templates \ ... -e /home/stack/templates/<compute_environment_file>.yaml ...
Additional resources
25.7. Migrating users to the member role Copy linkLink copied to clipboard!
In Red Hat OpenStack Platform 13, the default member role is called _member_.
In Red Hat OpenStack Platform 16.2, the default member role is called member.
When you complete the upgrade from Red Hat OpenStack Platform 13 to Red Hat OpenStack Platform 16.2, users that you assigned to the _member_ role still have that role. You can migrate all of the users to the member role by using the following steps.
Prerequisites
- You have upgraded the overcloud to the latest version.
Procedure
List all of the users on your cloud that have the
_member_role:openstack role assignment list --names --role _member_ --sort-column projectFor each user, remove the
_member_role, and apply thememberrole:openstack role remove --user <user> --project <project> _member_ openstack role add --user <user> --project <project> member