Every Citrix Web Interface Server (WI) without any form of load balancing is a potential single point of failure in your environment. Network Load Balancing is available in both the Standard and Enterprise Editions of Windows 2008 so there shouldn’t be to many excuses for not implementing. This picture tutorial will take you through the process of creating a Network Load Balancing Cluster for your Citrix Web Interface Servers.
IP Address Overview :
winlb1.ctxlab.local   10.0.10.40
winlb2.ctxlab.local   10.0.10.41
nlb.ctxlab.local        10.0.10.42
Configure Citrix Web Interface :
- Assign static IP Address to both nodes in the NLB Cluster
- Install and create a Site on Citrix WI on Node A
- Install and create a Site on Citrix WI on Node B
- Customize, test and replicate WI Site from Node A to Node B
- RoboCopy c:\inetpub\wwwroot\Citrix \winlb2\c$\inetpub\wwwroot\Citrix /MIR
Configure Network Load Balancing :
Very informative and its nice!
Check ‘Retain suspended state …’ to avoid a webserver kicking in after rebooting during controlled maintenance
Thanks Tom, that’s correct, but this can easily be set in the Cluster Properties after if somebody missed it.
Eric
Yes, but if you for example also are running CSG on the boxes, and are just ‘looking’ on these settings afterwards, you’ll end up disconnecting the CSG sessioms.
That’s why its a good idea to set it up first, before we are getting user sessions in.
Anyway, nice documented feature of the NLB setup.
People are not always aware that this is available.
How about linking the two xenapp webinterface URLs to the nlb.ctxlab.local?
Hi Joshua,
When you have the WI working on node A and Node B separately, you should make a DNS entry e.g. nlb.ctxlab.local
Eric
Well, i am on VMware virtual machine. I have tried with both unicast and multicast options but both fails. The two nodes in NLB can talk to each other in muticast mode but not any other clients. In unicast mode only one node in the NLB works not the other node. However, all the clients can talk to this one node.
Hi,
Seems like you have routing problems. I have seen this before and I fixed this by using 5 instead of 3 IP-addresses. Which means ProdA, NLBA, ProdB, NLBB and NLBCluster IP. Then I needed to set the GW on NLBA & NLBB Nic’s.
For more information check out this resources :
Configuring Network Load Balancing (NLB) on Windows 2008 for Exchange CAS Servers
Emulating a Redirecting Load Balancer for WI and PNAgent
Eric
I already have the 5 IP scenario in multicast mode but clients are not able to talk to NLB. Any client machine can talk to the NLB in unicast mode but the two nodes in the cluster are not able to talk to each other so I am not sure clients are talking to which node in the cluster.
We are planning to do some switch reconfiguration next week and see if it helps.
It works now with modification on switch level configuration for arp resolution.
Thanks
For NLB to work on VMWare , you should have NLB in Multicast mode and ARP entry into router switch for the NLB IP. I have implemented this at many place and it works like a charm.
Thanks,
Vikash Kumar Roy
Thanks for the feeback Vikash
Some tips:
When using VMWare, vmware will do a reverse ARP. You have to publish the MAC address of the cluster in the switches.
Use IGMP Multicast, this is more efficient.
Check the clustersettings for Affinety settings.
If you are using, for example, the secure gateway also in NLB mode, be sure which host is talking to your NLB. If that’s a shared IP, the NLB mchanism will not work if your affinety settings is not right. Really check out your network design!
Also keep in mind: NLB will only redirect NEW sessions to another host if one of the nodes fails! Exisiting session will not be reidrected! Also note that NLB only saves you from hostfailures, not application failures.
Menno, thanks for sharing you LB and network knowledge.
Hi Trond,
Can we do a round robin method for WI load balancing?
Regards,
Suchith
Hi Suchith,
If you use Round Robin this will fail every second time and the user experience would not be any good.
Trond,
I have experienced the round robin failure every second time issue as you mentioned. What is the recommended way to configure WI load balancing? Thanks, Dave G.
Hi Dave,
If you are only using Round Robin you will experience this. The best free solution is to use Microsoft Network Load Balancing (NLB) as described in the article above.
in xenapp 6 which component does load balancing ?
Hi, what we’re discussing is this article is using Microsoft Load Balancing to provide DR/HA for our Citrix Web Interface Servers.
I had some issues getting this working within VMware, this post helped me out
http://www.geekshangout.com/content/configuring-windows-network-load-balancing-top-vmware-vsphere
I see this setup discussed here in relation to VMware/vSphere and the resolution to that particular hypervisor. I am wondering if there is any solution to a similar setup based on Citrix XenServer.
The setup is the same for VMware/XenServer/Hyper-V. VMware is only discussed in the comments regarding some issues.
Hello Trond Eirik Haavarstein,
Your article is very good. i have a virtual setup on citrix xenserver and i have a same problem. i am not able to ping casarray virtual ip from other vm as well as from lan. all other settings are fine. i have made manually arp entry on my layer 3 switch but the problem is not resolved. i will be very appriciated if you can help me in this regards.
thanking you,
sincerly,
Vasant Hadial
I was recently troubleshooting issues with our Windows NLB not working ideally with StoreFront. I found that Windows NLB is too slow to know when a server is offline, so it keeps sending traffic to the offline server and causes page load errors.
To resolve this, I now use a simple PowerShell command that can be used during shutdown/reboot:
Stop-NLBClusterNode -Drain
Save that command to a .ps1 file on the host, then (on the host) open gpedit.msc -> Computer Config -> Windows Settings -> Scripts (Startup/Shutdown) -> Shutdown -> PowerShell Scripts
Point it to the PowerShell script, apply, and test away. You may notice that it takes ~30 seconds longer to shutdown/restart Windows, that’s because it’s moving traffic away from the host. When the host boots back into Windows, it will automatically rejoin the cluster if the default state is ‘Started’.
The fastest test will be rebooting your #1 host and seeing if you get any page load errors. You should be able to refresh NLB from another host and notice the ‘draining’ status of the #1 host during shutdown.
Awesome, thanks for sharing.