Ask Your Question

Revision history [back]

Except for Swift's data nodes, where the accounts, containers and objects are stored, HA is not built into OpenStack. To implement HA, you have to set up an HA infrastructure under OpenStack (operating system, database, message queue etc). Luckily, most OpenStack services naturally lend themselves to active/active configurations. The HA guide mentioned by Vinoth gives you a first idea, although it is probably outdated. Only use it for inspiration. Other sources of inspiration are the commercial OpenStack distros, for example SUSE's OpenStack implementation.

Having said that:

Controllers: Usually three. There is no upper limit. For example, large clouds implement cells and have separate controllers that run each cell's Nova services.

Storage nodes: In a production system, I would say no storage nodes for Cinder at all; you would run the Cinder services on the controllers. The number of Swift proxy servers and data nodes depends on the size of your Swift cluster and is open-ended.

Network nodes: Smaller clouds don't need separate network nodes. If your cloud is larger, e.g. 50 compute nodes and up, you may want to run the network services on three separate controllers.

Compute node failover is probably uncommon. Normally, users have the responsibility for the robustness of their application. I.e. they might implement their application on several instances in separate availability zones.

On larger clouds, you may want to dedicate sets of three controllers to other tasks, in particular Metering.