0

Can somebody with extensive experience explain me what are the selling points of hardware-based NLB over Windows NLB and what are major/main disadvantages of Windows NLB? I recently read through some materials which claim that Windows NLB is increasingly inadequate (mainly because of network level tricks it uses) in modern environments with smart switches and heavily virtualized (example , or another one of materials mentioning issues).
Can somebody provide me clear answer when Windows NLB going to cause troubles and hardware NLB will be the only options?

Mikhail
  • 1,295
  • 3
  • 19
  • 35
  • Your question is full of vague references to nebulous statements. "I read somewhere that X is bad but Y is good." How about citing and linking to some of the references that you're basing this question on? – joeqwerty Nov 03 '15 at 21:07
  • Added some links. X & Y were defined and I wanted to get input from somebody with hands on experience with NLB set ups. – Mikhail Nov 03 '15 at 21:15

1 Answers1

2

I have several years of experience with both NLB and hardware load balancers in a production environment with 10+ servers. Here is a brief list of the pros and cons of NLB vs. a hardware load balancer as I see them:

  • NLB uses software to do the load balancing. That software uses a small amount of CPU. Hardware devices offload all that CPU (and sometimes more--SSL offloading for example).
  • NLB only allows a server to participate in one load balance set per network card, so if you want the server to participate in multiple different load balancing sets, all the servers have to have the same services (you can have multiple target IP addresses and ports, but all servers in the set have to have the same services). Hardware devices are usually more flexible in this respect and they have some other nice features as well.
  • NLB is fairly reliable, but we had issues with it about once every other month, where it would get into strange states where the load balancing was not occurring correctly. Hardware devices are usually more reliable.
  • Managing NLB has to be done from a server machine on the same LAN. There is no web-based configuration.
  • NLB requires flooding the network switch with all incoming packets, or it requires network switches with special support for multicast packets.
  • NLB is inherently tolerant of total failure of servers (unless they all go down of course), whereas a hardware solution requires two separate devices properly configured to mitigate against single-device failure.
  • NLB only cares if the device is connected to the network, it doesn't care if your application is actually running. Hardware load balancers usually allow for an application-level test. You can write external software to check the applications on your servers and remove them from NLB programmatically, but that's more work and may also require fault tolerance, which can be very tricky.
James
  • 363
  • 2
  • 4
  • 16