I'm trying to begin load balancing on an ElasticHosts cloud server, and their system doesn't allow the user of VRRP.
Does anyone know of any non-VRRP load balancers that are pre-packaged for standard Debian/Ubuntu?
I've tried the non-VRRP UltraMonkey, but the software looks like it's getting old and it's no longer packaged nicely - the last release was for Debian Sarge.
Advice gratefully received.
UltraMonkey is essentially just an umbrella project for several components that are useful when building a load balancer on a Linux box. The components are:
ipvs
. Present in the vast majority of distros' stock kernel (2.6 and later), compiled as a module. Runmodinfo ip_vs
to see if present in your kernel. Still in current development; and has had ipv6 support added quite recently. Code has to be up to kernel standards, and yields extremely good performance. See http://www.linuxvirtualserver.org/software/ipvs.html for more info.ipvsadm
. A command-line tool used to administer IPVS, allowing you to add and remove backend servers from a virtual group, set server weights, choose the scheduling algorithm (e.g. round robin, weighted least connection), and more. I can't speak for Debian but ipvsadm v1.2.5-1 is present in the standard Ubuntu repos, and there is a v1.26 available which was released in Feb 2011. So it's likely you can run a:sudo apt-get install ipvsadm
and then aman ipvsadm
on your system to give you the full details.ldirectord
. This is a health-checking daemon written in Perl, that also serves as a convenient interface to ipvsadm. It allows you to maintain a config file of your ipvs configuration, rather than having to script multiple ipvsadm commands yourself. Many different types of health-check can be performed on the backend servers. Again, ldirectord can be installed (in Ubuntu at least) via the standard repos, and is still under current development (IPv6 changes made in June 2011).I imagine that the lack of maintenance of the UltraMonkey project may be down to the fact that each individual component is now widely available (in binary format) in popular distros, which would have not have been the case 5+ years ago.
Note that using these componenets in the way described above may differ from your original plan, in that the load balancer is a dedicated machine; you don't install all this stuff on your application servers. Instead, the ipvs box would sit in front of your backend servers and "direct" traffic to them according to its scheduling algorithms and other config parameters (weights etc).
Unless you have a specific need to load balance at layer 4 (usually for performance reasons), you may also want to take a look at HAProxy, which is a layer 7 proxy with ample load balancing functionality. There are many well-answered HAProxy questions on ServerFault. Also, with regards to heartbeats/failover and managing your virtual IPs, you may want to look at keepalived as an alternative to Linux-HA's Heartbeat.
http://haproxy.1wt.eu/
http://www.keepalived.org/