Ask Your Question
0

HA and Load Balancing

asked 2013-11-12 05:38:22 -0500

Valentin gravatar image

Hello OpenStack geeks,

I am currently evaluating OpenStack as an infrastructure solution for a new cloud. I love the software and I love all components. However, there are a couple of things which drive me crazy and I am hoping that you guys can point me to the right directions. I am willing to read thousands of pages if necessary, but as it seems, I still don't know enough to find the right spots for information harvesting.

(1) HA As it seems, VMs on OpenStack are not "highly available" since the images files are stored locally and are not replicated between the Compute Nodes. How do others achieve HA with OpenStack VMs? In the official OpenStack guide, Pacemaker is described as the HA solution for the individual OpenStack components, but not VMs. How do others achieve HA for VMs and how do they replicate their images? Central storage? Any links for this topic)

(2) Load Balancing RHEV allows balancing between virtualization nodes (live migration of VMs etc.). I am well aware of the fact that OpenStack is not a virtualization solution only and not RHEV, but I keep asking myself if there is no Load Balancing built in at all? Since VMs are not "highly available", there can't be such a thing like Load Balancing between Computing Nodes. Am I right with this one? How do others balance the load on the Compute Nodes?

Any help is highly appreciated. I am not looking for someone to tell me all the stuff; but I would like to see someone pointing me at the right directions :-)

And another question: Is there a feature roadmap for OpenStack? I can not find one.

(I have played with OpenStack Grizzly.)

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted
1

answered 2014-02-26 20:05:10 -0500

Qiming gravatar image

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.

edit flag offensive delete link more
0

answered 2013-11-13 20:40:00 -0500

fifieldt gravatar image

updated 2013-11-13 20:42:44 -0500

Great to hear the start of your OpenStack Journey has been positive :)

Regarding "HA" - which is a topic that has many, many meanings, it sounds like most of what you want is implemeted at the hypervisor layer. For example, Hypervisors such as VMWare, Xen, KVM support live migration without trouble and the OpenStack API can be used to trigger this. If you want to do things like "re-start a VM on a different hypervisor if the physical host it was on fails", you can use shared storage and watch and re-act. It depends on your specific use case and hypervisor choice as to how you respond to the monitoring information provided. Similarly, load balancing can be dealt with by the scheduler on vm-creation time, or based on your reaction to monitoring information. OpenStack can't make the choices for you about when to move VMs between hypervisors, since every use-case is very, very different :)

Having said this, you may be interested in the discussion around a new feature that could be enabled to perform some of these tasks - see the mailing list: http://lists.openstack.org/pipermail/openstack-dev/2013-September/015326.html

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

2 followers

Stats

Asked: 2013-11-12 05:38:22 -0500

Seen: 1,015 times

Last updated: Feb 26 '14