Chapter 4. Non-Director Environments: Upgrading OpenStack Services Simultaneously
This scenario upgrades from Red Hat OpenStack Platform 7 to Red Hat OpenStack Platform 8 in environments that do not use the director. This procedure upgrades all services on all nodes. This involves the following workflow:
- Disabling all OpenStack services
- Performing a package upgrade
- Performing synchronization of all databases
- Enabling all OpenStack services
The procedures in this chapter follow the architectural naming convention followed by all Red Hat OpenStack Platform documentation. If you are unfamiliar with this convention, refer to Architecture Guide available at: Red Hat OpenStack Platform Documentation Suite before proceeding.
4.1. Disabling all OpenStack Services
The first step to performing a complete upgrade of Red Hat OpenStack Platform on a node involves shutting down all Openstack services. This step differs based on whether the node OpenStack uses high availability tools for management (e.g. using Pacemaker on Controller nodes). This step contains instructions for both node types.
Standard Nodes
Install the openstack-utils
package on all standard nodes:
# yum install openstack-utils
Disable all OpenStack services on all standard nodes.
# openstack-service stop
High Availability Nodes
We need to disable all OpenStack services but leave the database and load balancing services active. For example, switch the HAProxy, Galera, and MongoDB services to unmanaged in Pacemaker:
# pcs resource unmanage haproxy # pcs resource unmanage galera # pcs resource unmanage mongod
Disable the remaining Pacemaker-managed resources by setting the stop-all-resources
property on the cluster. Run the following on a single member of your Pacemaker cluster:
# pcs property set stop-all-resources=true
Wait until all Pacemaker-managed resources have stopped. Run the pcs status
command to see the status of each resources.
# pcs status
HAProxy might show a broadcast message for unavailable services. This is normal behavior.
4.2. Performing a Package Upgrade
The next step upgrades all packages on a node. Perform this step on each node with OpenStack services.
Change to the Red Hat OpenStack Platform 8 repository using the subscription-manager
command.
# subscription-manager repos --disable=rhel-7-server-openstack-7.0-rpms # subscription-manager repos --enable=rhel-7-server-openstack-8-rpms
Run the yum update
command on the node:
# yum update
Wait until the package upgrade completes.
Review the resulting configuration files. The upgraded packages will have installed .rpmnew
files appropriate to the Red Hat OpenStack Platform 8 version of the service. New versions of OpenStack services may deprecate certain configuration options. You should also review your OpenStack logs for any deprecation warnings, because these may cause problems during future upgrades. For more information on the new, updated and deprecated configuration options for each service, see Configuration Reference available from: Red Hat OpenStack Platform Documentation Suite.
Perform the package upgrade on each node in your environment.
4.3. Performing Synchronization of all Databases
The next step upgrades the database for each service.
Flush expired tokens in the Identity service to decrease the time required to synchronize the database.
# keystone-manage token_flush
Upgrade the database schema for each service that uses the database. Run the following command on the node hosting the service’s database:
# openstack-db --service SERVICENAME --update
Use the service’s project name as the SERVICENAME. For example, to upgrade the database schema of the Identity service:
# openstack-db --service keystone --update
Service | Project name |
---|---|
Identity | keystone |
Image Service | glance |
Block Storage | cinder |
Orchestration | heat |
Compute | nova |
Networking | neutron |
The Telemetry service uses a separate command for database upgrades:
# ceilometer-dbsync
4.4. Enabling all OpenStack Services
The final step enables the OpenStack services on the node. This step differs based on whether the node OpenStack uses high availability tools for management. For example, using Pacemaker on Controller nodes. This step contains instructions for both node types.
Standard Nodes
Enable all OpenStack services:
# openstack-service stop
High Availability Nodes
Restart your resources through Pacemaker. Reset the stop-all-resources
property on a single member of your Pacemaker cluster. For example:
# pcs property set stop-all-resources=false
Wait until all resources have started. Run the pcs status
command to see the status of each resources.
# pcs status
Enable Pacemaker management for any unmanaged resources, such as the databases and load balancer:
# pcs resource manage haproxy # pcs resource manage galera # pcs resource manage mongod
4.5. Post-Upgrade Notes
New versions of OpenStack services may deprecate certain configuration options. You should also review your OpenStack logs for any deprecation warnings, because these may cause problems during a future upgrade. For more information on the new, updated and deprecated configuration options for each service , see Configuration Reference available from: Red Hat OpenStack Platform Documentation Suite.