Chapter 1. Environment Overview

This guide describes how to configure and manage database high availability in a Red Hat CloudForms environment. This configuration allows for disaster mitigation: a failure in the primary database does not result in downtime, as the standby database takes over the failed database’s processes. This is made possible by database replication between two or more database servers. In CloudForms, these servers are database-only CloudForms appliances which do not have evmserverd processes enabled. This is configured from the appliance_console menu at the time of deployment.

This guide describes two types of appliances used in high availability:

  • Database-only CloudForms appliances, which do not have evmserverd processes enabled or a user interface.
  • Non-database CloudForms appliances, which are standard appliances containing a user interface and which have evmserverd processes enabled.

Unlike the high availability method in older versions of CloudForms which uses pacemaker, the built-in database high availability in CloudForms 4.2 and newer is achieved by repmgr database replication with PostgreSQL.

In this configuration, a failover monitor daemon is configured and running on each non-database CloudForms appliance. The failover monitor watches the repmgr metadata about the database-only appliances present in the cluster. When the primary database-only appliance goes down, the non-database CloudForms appliances start polling each of the configured standby database-only appliances to monitor which one comes up as the new primary. The promotion is orchestrated either by repmgrd on the database-only appliances or is done manually. When the non-database CloudForms appliances find that a standby has been promoted, CloudForms reconfigures the setup by writing the new IP address in the database.yml file to point to the new primary.

Note

Manual steps are required to reintroduce the failed database node back as the standby server. See Section 3.3, “Reintroducing the Failed Node”.

Note, this procedure also does not provide scalability or a multi-master database setup. While a CloudForms environment is comprised of an engine tier and a database tier, this configuration affects only the database tier and does not provide load balancing for the appliances.

1.1. Requirements

For a high availability Red Hat CloudForms environment, you need a virtualization host containing at minimum four virtual machines with CloudForms installed, consisting of:

  • One virtual machine for the primary external database containing a minimum of 4GB dedicated disk space
  • One virtual machine for the standby external database containing a minimum of 4GB dedicated disk space
  • Two virtual machines for the non-database CloudForms appliances

See Planning in the Deployment Planning Guide for information on setting up the correct disk space for the database-only appliances.

The database-only appliances should reside on a highly reliable local network in the same location.

Important

It is essential to use the same Red Hat CloudForms appliance template version to install each virtual machine in this environment.

See the Red Hat Customer Portal to obtain the appliance download for the platform you are running CloudForms on.

Correct time synchronization is required before installing the cluster. After installing the appliances, configure time synchronization on all appliances using chronyd.

Note

Red Hat recommends using a DNS server for a high availability configuration, as DNS names can be updated more quickly than IP addresses when restoring an operation in a different location, network, or datacenter.