HTTP GET HEADER: This will make a HTTP GET request to the web server and typically check for a header response such as 200 OK.
HTTP GET CONTENTS: (negotiate or regex) This will make a HTTP GET and check the actual content body for a correct response. Can be useful to check a dynamic web page that returns 'OK' only if some application health checks work i.e. backend database query validates.
Custom check: Custom health checks are often used for many services FTP / RADIUS / SIP etc.. and you can often design your own checks.
Our Opinion: These kind of health checks are all fairly standard from load balancer vendors.... DNS Load Balancing
DNS load balancing is to distribute requests to different servers though resolving the domain name to different IP addresses of servers. When a DNS request comes to the DNS server to resolve the domain name, it gives out one of the server IP addresses based on scheduling strategies, such as simple round-robin scheduling or geographical scheduling. This redirects the request to one of the servers in a server group. Once the domain is resolved to one of the servers in specified time-to-live, subsequent requests from the clients using the same local caching DNS
.
More information is on the
DNS Load Balancing page. PowerDNS link here?
Our Opinion: Much maligned this can be a great way to properly load balance a site... What do you think Google uses!?.. OK they probably do a bit of GSLB and health checking as well but at the end of the day I'm sure they use a GSLB based DNS solution with an LVS backend.... but who am I to guess?
Checkout
UltraDNS.com and
AutoFailover.com...
Link Load Balancing
Link load balancing is to balance traffic among multiple links from different ISPs or one ISP for better scalability and availability of Internet connectivity, and also cost saving.
See
Link Load Balancing for more information.
SmoothWall,
FatPipe,
Xrio et al provide appliances to do this.
Our Opinion: Lots of people want this.... and lots of people say that it doesn't work very well... and lots of vendors say its a nightmare to try and support...We think the core problem is that it only really works if your ISP supports the link balancing technology. Load Balancing Optimization / Compression
Several vendors enable inline compression for optimization, as far as load balancing appliances are concerned this means HTTP gzip compression which all web servers do anyway, so its a bit daft...
F5 has a hardware card for this but it costs a fortune and is a bit daft
Our Opinion: Never heard of anything so stupid, also relates to the quote from Willy about CPU intensive tasks.
WAN Load Balancing Optimization / Compression
Several vendors enable inline compression for optimization with or without link balancing,
BlueCoat and
Riverbed come to mind.... mainly for corporate networks to save on bandwidth costs.
Our Opinion: Easy to fix at the application layer to be honest, but a valuable tool in the corporate cost cutting department.
Database Load Balancing
Database load balancing is to balance database access requests among a cluster of database servers, in order to achieve database scalability and high availability.
Our Opinion: Really easy to do this with read only replicas.. kind of tricky for writeable databases (Requires Oracle RAC / MySQL Cluster or similar)...
Or middleware like conexant or MySQL load balancing proxy.
SIP Load Balancing
SIP Load Balancing is to load balance SIP related services, in order to achieve performance scalability and high availability of the services.
Our Opinion: Pretty easy at Layer 4 as long as the servers support a backend persistent data store... if they don't you may need SIP caller ID packet inspection from an F5, Zeus or Citrix type appliance.
Update: We've just been working with Horms to get SIP caller ID packet inspection for LVS in the Linux Kernel...ClusterScale appliances now support SIP load balancing for the telco market with NEBS AC & DC options.
Other options: OpenSIPS is more than a SIP proxy/router as it includes application-level functionalitiy.
Computing Load Balancing
Computing load balancing is to split a computational task across many different nodes in the cluster, so that the whole cluster system can provide increased performance. This kind of cluster systems is also known as
High-performance cluster, which is most commonly used in scientific computing.
Beowulf type HPCs etc... loads of stuff in Linux Magazine about this kind of specialist area......
Free BSD stuff CARP, PF and hoststated
I don't know an awful lot about the FreeBSD side of things so here are some links:
PF: Address Pools and Load Balancing
Redundant firewalls with OpenBSD, CARP and pfsync
Hoststated
Our Opinion: What is FreeBSD? Isn't that what F5 use? :-).
Load Balancing Appliance vendors
A10 Networks
F5
Citrix
CISCO
Brocade (aka. Foundry)
Zeus (UK)
ClusterScale
Loadbalancer.org (UK, USA & Canada)
Kemp
CoyotePoint
Barracuda
CAI
Radware (Alteon)
Exceliance (France)