I need to load balance between 2 or 3 TCP servers. Any recommendations ? The TCP servers use their own proprietary protocol over the connection
On the software side there's LVS.
For a broadly applicable platform F5 load-balancers have done us wonders. We have a pair in a fail-over configuration and they're handling quite a lot of load-balancing. Even multiple protocols. Over the last several years we've load-balanced:
- HTTP, lots of http
- HTTPS, which they can terminate, saving server resources
- LDAP, handy for AD Global Address Book addresses for Entourage, as well as LDAP-enabled web-app Authn.
This device-pair was purchased explicitly to load-balance a certain critical http service, but the devices have proven so useful that they're now doing more traffic not on that service than they are on it. They also have the handy benefit of a rich rules system that allows you to do very interesting things, the smallest among them being the ability to serve up a different pool/address when the main load-balanced pool is down.
Yes, they are expensive. They made sense in our case because we had one critical service that was worth the expense, and we had enough add-on usage waiting in the wings to make the investment pay off even more. If you can afford it, go for it. I haven't seen the Cisco load-balancers, but they're undoubtedly equivalent in price.
Have a look at HAProxy: its very quick, and with some decent hardware, can handle > 10k connections.
I think you'll want to evaluate how much traffic you'll actually be receiving first. You can get a "hardware" load balancer from either Cisco or F5, but if you only have 2 or 3 servers in the pool the performance and capacity of a software load balancer will almost certainly be more than adequate. HAProxy does support failover pairs, and if you choose quality hardware the reliability should be about equal to the hardware solutions.
The main benefit at your scale (as opposed to hundreds or thousands of servers in a pool) to buying "hardware" load balancers is the ability to escalate to a vendor to get them to fix whatever the problem is. This doesn't always work out any better in practice. The downside to buying commercial "hardware" load balancers is that they will be drastically more expensive. The F5s start at something like $30,000 for a pair of the lower-end 1600s and go up rapidly from there. I assume Cisco's prices are comparable.