Questo contenuto non è disponibile nella lingua selezionata.
Chapter 4. Preparing for the Overcloud Upgrade
This process prepares the overcloud for the upgrade process.
Prerequisites
- You have upgraded the undercloud to the latest version.
4.1. Preparing Overcloud Registration Details Copia collegamentoCollegamento copiato negli appunti!
You need to provide the overcloud with the latest subscription details to ensure the overcloud consumes the latest packages during the upgrade process.
Prerequisites
- A subscription containing the latest OpenStack Platform repositories.
- If using activation keys for registration, create a new activation key including the new OpenStack Platform repositories.
Procedure
Edit the environment file containing your registration details. For example:
vi ~/templates/rhel-registration/environment-rhel-registration.yaml
$ vi ~/templates/rhel-registration/environment-rhel-registration.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the following parameter values:
rhel_reg_repos
- Update to include the new repositories for Red Hat OpenStack Platform 12.
rhel_reg_activation_key
- Update the activation key to access the Red Hat OpenStack Platform 12 repositories.
rhel_reg_sat_repo
- If using a newer version of Red Hat Satellite 6, update the repository containing Satellite 6’s management tools.
- Save the environment file.
Related Information
- For more information about registration parameters, see "Registering the Overcloud with an Environment File" in the Advanced Overcloud Customizations guide.
4.2. Preparing for Containerized Services Copia collegamentoCollegamento copiato negli appunti!
Red Hat OpenStack Platform now uses containers to host and run OpenStack services. This requires you to:
- Configure a container image source, such as a registry
- Generate an environment file with image locations on your image source
- Add the environment file to your overcloud deployment
For full instructions about generating this environment file for different use case, see "Configuring Container Registry Details" in the Director Installation and Usage guide.
The resulting environment file (/home/stack/templates/overcloud_images.yaml
) contains parameters that point to the container image locations for each service. Include this file in all future deployment operations.
4.3. Preparing for New Composable Services Copia collegamentoCollegamento copiato negli appunti!
This version of Red Hat OpenStack Platform contains new composable services. If using a custom roles_data
file, include these new services in their applicable roles.
All Roles
The following new services apply to all roles.
OS::TripleO::Services::CertmongerUser
- Allows the overcloud to require certificates from Certmonger. Only used if enabling TLS/SSL communication.
OS::TripleO::Services::Docker
-
Installs
docker
to manage containerized services. OS::TripleO::Services::MySQLClient
- Installs the overcloud database client tool.
OS::TripleO::Services::ContainersLogrotateCrond
-
Installs the
logrotate
service for container logs. OS::TripleO::Services::Securetty
-
Allows configuration of
securetty
on nodes. Enabled with theenvironments/securetty.yaml
environment file. OS::TripleO::Services::Tuned
-
Enables and configures the Linux tuning daemon (
tuned
).
Specific Roles
The following new services apply to specific roles:
OS::TripleO::Services::Clustercheck
-
Required on any role that also uses the
OS::TripleO::Services::MySQL
service, such as the Controller or standalone Database role. OS::TripleO::Services::Iscsid
-
Configures the
iscsid
service on the Controller, Compute, and BlockStorage roles. OS::TripleO::Services::NovaMigrationTarget
- Configures the migration target service on Compute nodes.
If using a custom roles_data
file, add these services to required roles.
In addition, see the "Service Architecture: Standalone Roles" section in the Advanced Overcloud Customization guide for updated lists of services for specific custom roles.
4.4. Preparing for Composable Networks Copia collegamentoCollegamento copiato negli appunti!
This version of Red Hat OpenStack Platform introduces a new feature for composable networks. If using a custom roles_data
file, edit the file to add the composable networks to each role. For example, for Controller nodes:
Check the default /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
file for further examples of syntax. Also check the example role snippets in /usr/share/openstack-tripleo-heat-templates/roles
.
The following table provides a mapping of composable networks to custom standalone roles:
Role | Networks Required |
---|---|
Ceph Storage Monitor |
|
Ceph Storage OSD |
|
Ceph Storage RadosGW |
|
Cinder API |
|
Compute |
|
Controller |
|
Database |
|
Glance |
|
Heat |
|
Horizon |
|
Ironic | None required. Uses the Provisioning/Control Plane network for API. |
Keystone |
|
Load Balancer |
|
Manila |
|
Message Bus |
|
Networker |
|
Neutron API |
|
Nova |
|
OpenDaylight |
|
Redis |
|
Sahara |
|
Swift API |
|
Swift Storage |
|
Telemetry |
|
4.5. Preparing for Deprecated Parameters Copia collegamentoCollegamento copiato negli appunti!
Note that the following parameters are deprecated and have been replaced with role-specific parameters:
Old Parameter | New Parameter |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Update these parameters in your custom environment files.
If your OpenStack Platform environment still requires these deprecated parameters, the default roles_data
file allows their use. However, if you are using a custom roles_data
file and your overcloud still requires these deprecated parameters, you can allow access to them by editing the roles_data
file and adding the following to each role:
Controller Role
Compute Role
Object Storage Role
4.6. Preparing for Ceph Storage Node Upgrades Copia collegamentoCollegamento copiato negli appunti!
Due to the upgrade to containerized services, the method for installing and updating Ceph Storage nodes has changed. Ceph Storage configuration now uses a set of playbooks in the ceph-ansible
packages, which you install on the undercloud.
Prerequisites
- Your overcloud has a director-managed Ceph Storage cluster.
Procedure
Install the
ceph-ansible
package to the undercloud:sudo yum install -y ceph-ansible
[stack@director ~]$ sudo yum install -y ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check that you are using the latest resources and configuration in your storage environment file. This requires the following changes:
-
The
resource_registry
uses containerized services from thedocker/services
subdirectory of your core Heat template collection. For example:
-
The
resource_registry: OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
resource_registry:
OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
Use the new
CephAnsibleDisksConfig
parameter to define how your disks are mapped. Previous versions of Red Hat OpenStack Platform used theceph::profile::params::osds
hieradata to define the OSD layout. Convert this hieradata to the structure of theCephAnsibleDisksConfig
parameter. For example, if your hieradata contained the following:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Then the
CephAnsibleDisksConfig
would look like this:Copy to Clipboard Copied! Toggle word wrap Toggle overflow For a full list of OSD disk layout options used in
ceph-ansible
, view the sample file in/usr/share/ceph-ansible/group_vars/osds.yml.sample
.
Related Information
- Note that environments using Hyper-Converged Infrastructure require some additional configuration. See Section 4.7, “Preparing for Hyper-Converged Infrastructure (HCI) Upgrades”.
-
For more information about
ceph-ansible
management with OpenStack Platform director, see the Deploying an Overcloud with Containerized Red Hat Ceph guide.
4.7. Preparing for Hyper-Converged Infrastructure (HCI) Upgrades Copia collegamentoCollegamento copiato negli appunti!
On a Hyper-Converged Infrastructure (HCI), the Ceph Storage and Compute services are colocated within a single role. However, you must complete the upgrade for HCI nodes in the same way as for Compute nodes. This means that you must delay the migration of the Ceph Storage services to containerized services until you have installed the core packages and enabled the container services.
Prerequisites
- Your overcloud uses a collocated role containing Compute and Ceph Storage.
Procedure
- Edit the environment file containing your Ceph Storage configuration.
Ensure that the
resource_registry
uses the Puppet resources. For example:resource_registry: OS::TripleO::Services::CephMon: ../puppet/services/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../puppet/services/ceph-osd.yaml OS::TripleO::Services::CephClient: ../puppet/services/ceph-client.yaml
resource_registry: OS::TripleO::Services::CephMon: ../puppet/services/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../puppet/services/ceph-osd.yaml OS::TripleO::Services::CephClient: ../puppet/services/ceph-client.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteUse the contents of the
/usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph.yaml
as an example.- Upgrade your Controller-based nodes to containerized services using the instructions in Section 5.1, “Upgrading the Overcloud Nodes”.
- Upgrade your HCI nodes using the instructions in Section 5.3, “Upgrading the Compute Nodes”
Edit the
resource_registry
in your Ceph Storage configuration to use the containerized services:resource_registry: OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
resource_registry: OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteUse the contents of the
/usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
as an example.Add the
CephAnsiblePlaybook
parameter to theparameter_defaults
section of your storage environment file:CephAnsiblePlaybook: /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
CephAnsiblePlaybook: /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Add the
CephAnsibleDisksConfig
parameter to theparameter_defaults
section of your storage environment file and define the disk layout. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Finalize the upgrade of your overcloud using the instructions in Section 5.4, “Finalizing the Upgrade”.
Related Information
-
For more information about configuring
ceph-ansible
management with OpenStack Platform director, see the Deploying an Overcloud with Containerized Red Hat Ceph guide. HCI NUMA pinning for OSD nodes
Red Hat OpenStack Platform (RHOSP) 11 included a post-deploy script to start OSDs with numactl to implement resource isolation. For more information, see Configure Ceph NUMA Pinning in the Hyper-Converged Infrastructure guide. There is no option to implement a NUMA preference in RHOSP12.
During a sequential upgrade from RHOSP11 to RHOSP12 to RHOSP13, when your cluster is temporarily running RHOSP12 with Red Hat Ceph Storage 2, the OSDs do not have a NUMA preference. However, during the cluster upgrade from RHOSP12 to RHOSP13, Ceph upgrades from Red Hat Ceph Storage 2 to Red Hat Ceph Storage 3. When this happens, the init script that
ceph-ansible
provides can pass resource isolation options to the OSDs when the container manager starts the OSD containers.Procedure
When you upgrade from RHOSP12 to RHOSP13, update your heat template to pass Ceph options. The following example shows the CPU and Memory in NUMA node 0. For your environment, use the values that are appropriate to your hardware. The example also includes the
is_hci
parameter set totrue
to optimize memory management.CephAnsibleExtraConfig: ceph_osd_docker_cpuset_cpus: "0,2,4,6,8,10,12,14" ceph_osd_docker_cpuset_mems: "0" is_hci: true
CephAnsibleExtraConfig: ceph_osd_docker_cpuset_cpus: "0,2,4,6,8,10,12,14" ceph_osd_docker_cpuset_mems: "0" is_hci: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8. Preparing Access to the Undercloud’s Public API over SSL/TLS Copia collegamentoCollegamento copiato negli appunti!
The overcloud requires access to the undercloud’s OpenStack Object Storage (swift) Public API during the upgrade. If your undercloud uses a self-signed certificate, you need to add the undercloud’s certificate authority to each overcloud node.
Prerequisites
- The undercloud uses SSL/TLS for its Public API
Procedure
The director’s dynamic Ansible script has updated to the OpenStack Platform 12 version, which uses the
RoleNetHostnameMap
Heat parameter in the overcloud plan to define the inventory. However, the overcloud currently uses the OpenStack Platform 11 template versions, which do not have theRoleNetHostnameMap
parameter. This means you need to create a temporary static inventory file, which you can generate with the following command:openstack server list -c Networks -f value | cut -d"=" -f2 > overcloud_hosts
$ openstack server list -c Networks -f value | cut -d"=" -f2 > overcloud_hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create an Ansible playbook (
undercloud-ca.yml
) that contains the following:Copy to Clipboard Copied! Toggle word wrap Toggle overflow This playbook contains multiple tasks that perform the following on each node:
-
Copy the undercloud’s certificate authority file (
ca.crt.pem
) to the overcloud node. The name of this file and its location might vary depending on your configuration. This example uses the name and location defined during the self-signed certificate procedure (see "SSL/TLS Certificate Configuration" in the Director Installation and Usage guide). - Execute the command to update the certificate authority trust database on the overcloud node.
- Checks the undercloud’s Object Storage Public API from the overcloud node and reports if successful.
-
Copy the undercloud’s certificate authority file (
Run the playbook with the following command:
ansible-playbook -i overcloud_hosts undercloud-ca.yml
$ ansible-playbook -i overcloud_hosts undercloud-ca.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This uses the temporary inventory to provide Ansible with your overcloud nodes.
The resulting Ansible output should show a debug message for node. For example:
ok: [192.168.24.100] => { "msg": "overcloud-controller-0 can access the undercloud's Public API" }
ok: [192.168.24.100] => { "msg": "overcloud-controller-0 can access the undercloud's Public API" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Related Information
- For more information on running Ansible automation on your overcloud, see "Running Ansible Automation" in the Director Installation and Usage guide.
4.9. Preparing for Pre-Provisioned Nodes Upgrade Copia collegamentoCollegamento copiato negli appunti!
Pre-provisioned nodes are nodes created outside of the director’s management. An overcloud using pre-provisioned nodes requires some additional steps prior to upgrading.
Prerequisites
- The overcloud uses pre-provisioned nodes.
Procedure
Run the following commands to save a list of node IP addresses in the
OVERCLOUD_HOSTS
environment variable:source ~/stackrc export OVERCLOUD_HOSTS=$(openstack server list -f value -c Networks | cut -d "=" -f 2 | tr '\n' ' ')
$ source ~/stackrc $ export OVERCLOUD_HOSTS=$(openstack server list -f value -c Networks | cut -d "=" -f 2 | tr '\n' ' ')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following script:
/usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh
$ /usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Proceed with the upgrade.
When upgrading Compute or Object Storage nodes, use the following:
-
Use the
-U
option with theupgrade-non-controller.sh
script and specify thestack
user. This is because the default user for pre-provisioned nodes isstack
and notheat-admin
. Use the node’s IP address with the
--upgrade
option. This is because the node are not managed with the director’s Compute (nova) and Bare Metal (ironic) services and do not have a node name.For example:
upgrade-non-controller.sh -U stack --upgrade 192.168.24.100
$ upgrade-non-controller.sh -U stack --upgrade 192.168.24.100
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Use the
Related Information
- For more information on pre-provisioned nodes, see "Configuring a Basic Overcloud using Pre-Provisioned Nodes" in the Director Installation and Usage guide.
4.10. Preparing an NFV-Configured Overcloud Copia collegamentoCollegamento copiato negli appunti!
When you upgrade from Red Hat OpenStack Platform 11 to Red Hat OpenStack Platform 12, the OVS package also upgrades from version 2.6 to version 2.7. To support this transition when you have OVS-DPDK configured, follow these guidelines.
Red Hat OpenStack Platform 12 operates in OVS client mode.
Prerequisites
- Your overcloud uses Network Functions Virtualization (NFV).
Procedure
When you upgrade the Overcloud from Red Hat OpenStack Platform 11 to Red Hat OpenStack Platform 12 with OVS-DPDK configured, you must set the following additional parameters in an environment file.
In the
parameter_defaults
section, add a network deployment parameter to runos-net-config
during the upgrade process to associate the OVS 2.7 PCI address with DPDK ports:parameter_defaults: ComputeNetworkDeploymentActions: ['CREATE', 'UPDATE']
parameter_defaults: ComputeNetworkDeploymentActions: ['CREATE', 'UPDATE']
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The parameter name must match the name of the role you use to deploy DPDK. In this example, the role name is
Compute
so the parameter name isComputeNetworkDeploymentActions
.NoteThis parameter is not needed after the initial upgrade and should be removed from the environment file.
In the
resource_registry
section, override theComputeNeutronOvsAgent
service to theneutron-ovs-dpdk-agent
puppet service:resource_registry: OS::TripleO::Services::ComputeNeutronOvsAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-ovs-dpdk-agent.yaml
resource_registry: OS::TripleO::Services::ComputeNeutronOvsAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-ovs-dpdk-agent.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenStack Platform 12 added a new service (
OS::TripleO::Services::ComputeNeutronOvsDpdk
) to support the addition of the newComputeOvsDpdk
role. The example above maps this externally for upgrades.
Include the resulting environment file as part of the openstack overcloud deploy
command in Section 5.1, “Upgrading the Overcloud Nodes”.
4.11. General Considerations for Overcloud Upgrades Copia collegamentoCollegamento copiato negli appunti!
The following items are a set of general reminders to consider before upgrading the overcloud:
- Custom ServiceNetMap
-
If upgrading an Overcloud with a custom
ServiceNetMap
, ensure you include the latestServiceNetMap
for the new services. The default list of services is defined with theServiceNetMapDefaults
parameter located in thenetwork/service_net_map.j2.yaml
file. For information on using a customServiceNetMap
, see Isolating Networks in Advanced Overcloud Customization. - External Load Balancing
- If using external load balancing, check for any new services to add to your load balancer. See also "Configuring Load Balancing Options" in the External Load Balancing for the Overcloud guide for service configuration.
- Deprecated Deployment Options
-
Some options for the
openstack overcloud deploy
command are now deprecated. You should substitute these options for their Heat parameter equivalents. For these parameter mappings, see "Creating the Overcloud with the CLI Tools" in the Director Installation and Usage guide.