Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Well, I have spent over one year looking into this, but I still cannot give you a precise answer here.

Here are some observations and/or thoughts I can share with you.

  1. HA is a non-trivial goal to achieve, considering that you have host, guest, app and OpenStack itself to protect.
  2. A HA solution can be built within OpenStack or can be based on existing HA clustering technologies, e.g. LinuxHA, vSphere HA, PowerHA, etc. With that said, OpenStack today has very limited built-in support for HA. You can check the HARestarter resource in Heat, the ServiceGroup in Nova, the evacuation opation in Nova, the LBaaS work etc.
  3. It is unclear whether VM HA is so important to users. I myself have done some work on automatically deploying and monitoring HA clusters built at the VM layer, i.e. each VM instance is a cluster node. The 'resource' protected by the cluster are services running inside the VM. For users, this could be enough.
  4. There are still different opinions regarding whether OpenStack should do a lot inside VM instances. Some projects prefer to leave it to users, others are beginning to peek into it. If you treat VMs as black boxes, you have to do failure detection carefully. If you look into VMs, you may encounter some other problems and complexities as well.
  5. I am now working on a design to extend Heat to support building HA clusters of node groups or server groups. The goal is to enable more flexible control on availability, e.g. service groups, fail-over domains, colocation constraints, etc.
  6. One pain point in doing HA in the context of OpenStack is about network and storage, where there are so many different configurations to be considered.

Hope this write-up helps.