Chapter 3. Installing and configuring Instance HA
Red Hat OpenStack Platform (RHOSP) director deploys Instance High Availability (HA). However, you must perform additional steps to configure a new Instance HA deployment on a new overcloud. After you complete the steps, Instance HA will run on a subset of Compute nodes with a custom role.
To enable instance HA in a different environment, such as an existing overcloud that uses standard or custom roles, perform only the procedures that are relevant to your deployment and adapt your templates accordingly.
For general information about deploying the overcloud, see Director Installation and Usage guide. For more information on custom roles, see Composable Services and Custom Roles in the Advanced Overcloud Customization guide.
3.1. Configuring the Instance HA role, flavor, and profile
You can modify the example file and role names in the following procedure according to your environment.
ComputeInstanceHArole to your
roles-data.yamlfile and regenerate the file.
$ openstack overcloud roles generate -o ~/my_roles_data.yaml Controller Compute ComputeInstanceHA
ComputeInstanceHArole includes all the services in the default
ComputeInstanceHAservices, and the
PacemakerRemoteservices. For general information about custom roles and about the
roles-data.yamlfile, see Roles in the Advanced Overcloud Customization guide.
compute-instance-haflavor to tag the Compute nodes to manage with Instance HA.
$ source ~/stackrc $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 compute-instance-ha $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute-instance-ha" compute-instance-ha $ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 --property resources:CUSTOM_BAREMETAL=1 compute-instance-ha
Tag each Compute node that you want to manage with Instance HA with the
compute-instance-haprofile, and replace
<NODE UUID>with the actual UUID:
$ openstack baremetal node set --property capabilities='profile:compute-instance-ha,boot_option:local' <NODE UUID>
ComputeInstanceHArole to the
compute-instance-haflavor by creating an environment file with the following parameter:
parameter_defaults: OvercloudComputeInstanceHAFlavor: compute-instance-ha
3.2. Enabling fencing
Enable fencing on all Controller and Compute nodes in the overcloud by creating an environment file with fencing information.
Create the environment file in an accessible location, such as ~/templates, and include the following content:
parameter_defaults: EnableFencing: true FencingConfig: devices: - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:c7 params: login: admin ipaddr: 192.168.24.1 ipport: 6230 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cb params: login: admin ipaddr: 192.168.24.1 ipport: 6231 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cf params: login: admin ipaddr: 192.168.24.1 ipport: 6232 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d3 params: login: admin ipaddr: 192.168.24.1 ipport: 6233 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d7 params: login: admin ipaddr: 192.168.24.1 ipport: 6234 passwd: password lanplus: 1
For more information about fencing and STONITH configuration, see Fencing Controller Nodes with STONITH in the High Availability Deployment and Usage guide.
Instance HA uses shared storage by default. If shared storage is not configured for your Compute instance, add the following parameter to the environment file that you created:
parameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: true
For information about how to boot from an OpenStack Block Storage (cinder) volume instead of configuring shared storage for the disk image of an instance, see Chapter 2, Planning your Instance HA deployment.
3.3. Deploying the overcloud
You can configure Instance HA for your overcloud at any time after you create the undercloud. If you already deployed the overcloud, you must rerun the
openstack overcloud deploy command with the additional Instance HA files you created.
openstack overcloud deploycommand with the
-eoption for each environment file that you created and with the compute-instanceha.yaml environment file. Replace
<FENCING_ENV_FILE>with the appropriate file names in your environment:
$ openstack overcloud deploy --templates \ -e <FLAVOR_ENV_FILE> \ -e <FENCING_ENV_FILE> \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yamlNote
Do not modify the
- Include the full path to each environment file that you want to include in the overcloud deployment.
- Do not modify the
After the deployment is complete, each Compute node includes a
STONITH device and a
3.4. Testing Instance HA evacuation
The following procedure involves deliberately crashing a Compute node, which triggers the automated evacuation of instances with Instance HA.
Start one or more instances on the overcloud.
stack@director $ . overcloudrc stack@director $ openstack server create --image cirros --flavor 2 test-failover stack@director $ openstack server list -c Name -c Status
Log in to the Compute node that hosts the instances and change to the
compute-nwith the name of the Compute node:
stack@director $ . stackrc stack@director $ ssh -l heat-admin compute-n heat-admin@compute-n $ su -
Crash the Compute node.
root@compute-n $ echo c > /proc/sysrq-trigger
Wait a few minutes for the node to restart, and then verify that the instances from the Compute node that you crash are re-created on another Compute node:
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service list