The second in a series from Red Hat® Consulting, this whitepaper examines the resiliency of cloud architectures and provides detailed best practices for setting up and configuring a highly available OpenStack deployment.
CREATING A HIGHLY AVAILABLE OPENSTACK ENVIRONMENT
A general strategy for creating a highly available OpenStack cloud environment is to use horizontal scaling to deploy clustered services wherever possible. Nonscalable resources should be protected with automated failure detection, shared resource recovery, and restart capabilities. Within this strategy, there are several concepts and components that must be addressed to provide reliability.
A basic premise in OpenStack architecture is horizontal scaling. As your environment grows, you simply add more nodes for a particular service to accommodate increases in users and demand. This clustered architecture eliminates single points of failure and increases the availability and reliability OpenStack services.
HAPROXY LOAD BALANCER
Horizontally scaled services must be load balanced for optimal performance. Load balancing of layer 7 (application layer) requests between clustered service nodes is accomplished using the HAProxy OpenStack service. For increased automation and reliability, use the Foreman OpenStack installer module to deploy load-balanced services via HAProxy.
PACEMAKER AND COROSYNC
Stateful OpenStack application programming interface (API) services cannot be horizontally scaled and must rely on another mechanism for resilient operation. The Pacemaker and Corosync administration interfaces provide highly available resource management with an open foundation for stateful services. Pacemaker manages resources between service nodes and detects and recovers application and virtual machines in the event of a disruption. Corosync enables communication between the clustered nodes.