Network Load Balancing -- Physical or Virtual?
When applications are aware of like-configured systems providing the same services, it is a beautiful thing. The most frequent example is a Web service that has a number of VMs providing the same Web content and load balanced in some fashion. These Web server VMs each process browser traffic and provide back the same content, including any database or Web applications that need to be done to deliver back to the clients.
The issue is traffic distribution. Web server engines (such as IIS or Apache) in this example cannot maintain logic to distribute traffic from one server to another. Instead, they generally rely on one of two main technologies to manage session flow. One option is to use Network Load Balancing (NLB) on Windows systems to distribute traffic between hosts for Web traffic. The other option is to use a network-based solution, such as an F5 device or a Cisco product for traffic management. I have gone each of these ways at some point in my experience, and I can say that the network solution is the way to go.
The discussion came up recently on a Twitter post that made me revisit this topic in regards to having a traffic management solution for virtual environments. For VMware installations, you can use NLB for guest VMs but only in multicast configurations to avoid port saturation as explained in this technote.
For the sake of being "100-percent virtual" or some other threshold that may not really be that important, having traffic management done within a NLB cluster in the virtual environment is not as robust as the alternative. The network devices will implement a virtual IP address. This tier of virtualization is delivered well through network devices and, when coupled to a DNS CNAME, makes management a snap. Sure, the costs are higher this way, but functionality is also better.
Have a thought? Drop a note below or e-mail me.
Posted by Rick Vanover on 09/24/2009 at 12:47 PM