RabbitMQ is the default AMQP server used by many OpenStack services. Making the RabbitMQ service highly available involves:
- configuring a DRBD device for use by RabbitMQ,
- configuring RabbitMQ to use a data directory residing on that DRBD device,
- selecting and assigning a virtual IP address (VIP) that can freely float between cluster nodes,
- configuring RabbitMQ to listen on that IP address,
- managing all resources, including the RabbitMQ daemon itself, with the Pacemaker cluster manager.
Note | |
---|---|
There is an alternative method of configuring RabbitMQ for high availability. That approach, known as active-active mirrored queues, happens to be the one preferred by the RabbitMQ developers — however it has shown less than ideal consistency and reliability in OpenStack clusters. Thus, at the time of writing, the Pacemaker/DRBD based approach remains the recommended one for OpenStack environments, although this may change in the near future as RabbitMQ active-active mirrored queues mature. |