It has been a long time since I posted anything. Regardless, life has been busy. I am currently creating a workshop/office in my basement and a woodshop in my garage which consume most of my time. Not to mention being a parent to two kids and two pets. However, lets talk about Microsoft’s built in Network Load Balancer and how it can be combined with SSRS Scale-Out to effectively balance your reporting load.
Growing pressure from the reports
I had the pleasure of deploying a SSRS Scale-Out setup for work recently, only to find that Microsoft SQL Server Reporting Services does not, inherently, load balance. In Microsoft’s defense, it technically “is.” The kicker is that its separating “scheduled” report generations to other servers added to the deployment, where the main Reporting Server is taking on all of those wonderful user requests. Luckily, there is another option that will help us achieve actual load balancing.
Enter, Microsoft’s NLB
Microsoft provides the NLB free in Window Server and its relatively easy to setup. For SSRS, there are a few things you have to do for it to behave as intended. First, you need to have a working SSRS Scale-Out deployment. For this example, lets call it Reporting 1 and Reporting 2.
On Reporting 1, go to the start menu and open Server Manager. From here, click “Add roles and features” to install the Network Load Balancer. Progress through the menus until you get to “Features” and click the check box for “Network Load Balancing.” Proceed to install this feature.
When the installation is complete, you should see the NLB app available in your start menu, or you can search for it. Open the application and we are one step closer to creating our NLB Cluster.
Here, you will see the main view for the NLB Manager. Click on Cluster in the menu bar and select “New.” In this window, you will enter the first server in the “host” section. So in this case, its “Reporting 1” and hit connect. If successful, you will see the Ethernet interface the server uses. Click Next.
In Host Parameters, your first server should already be displayed here. You can add the other server IPS that you wish to load balance. Ensure you have NLB Manager installed on each device before doing so. I am not 100 percent positive if you need to have this installed on all devices or not, but I figure why risk it for the biscuit. After you have all the server ips added, click next.
In Cluster IP Addresses, click add. Enter the IP address for the Cluster IP. I would stick with the same subnet as your servers, but the last IP octet should be something like “.10” if that is possible for your network. Once added, proceed to the next step.
With the Cluster IP set, it is time to put the “Full Internet Name” in. Typically this will be already determined by your SSRS site name. To clarify, if your reporting server is “reporting.lots-PROD/reports”, then the Full Internet Name will be “reporting.lots-PROD.” In Cluster Operation, select “Multicast.” Proceed by click next.
Finally, you are present with the option to setup port rules. I suggest deleting the ports selected by default. You will want to add the following ports; 1433 (SQL), 80 (HTTP), and 443 (HTTPS). Hit okay and the cluster will being doing its thing. You might become disconnected shortly, but you will reconnect.
If everything worked as it should, you will see all the servers in your cluster, with a status of Converged and green icon indicating connection status.
Now, for this NLB to work for SSRS, there are a few configurations on the server side that need to be done. I will leave that for another post, but you can find the instructions here.