Planning for Scale-Out Deployment

A report server scale-out deployment is two or more report server instances that share a single report server database. A scale-out deployment enables you to increase the number of users who concurrently access reports and improve the availability of the report server. By using this deployment topology, it is recommended that you configure report server instances with identical settings, although it is not required. You can configure each server for specific capabilities and run them as independent instances, such as when you might want to isolate interactive report processing from scheduled or subscription report processing.

The following list summarizes the scenarios supported in a scale-out deployment:

  • Run report server instances in a load-balanced solution to support high-volume, on-demand reporting.

  • Increase the availability of the report server.

  • Isolate service features on specific computers to allow for maximum use of all available system resources, yet still store and retrieve the same data from the same report server database.

The following requirements apply to a scale-out deployment.

Requirement

Description

Edition requirements

Scale-out deployment is supported in the following editions: Enterprise, Developer, and Evaluation.

Standard, Workgroup, and Express editions do not support a scale-out deployment.

Version requirements

All of the report servers must be the same major version, and they must have the same updates and service packs.

Domain requirements

All of the report servers must be in the same domain or in a trusted domain.

Authentication requirements

Report server instances in a scale-out deployment must have the same type of authentication extension. If you created a custom authentication extension, you must deploy and use that extension on all nodes. You should configure the same authentication types on each node in a scale-out deployment.

Because of this restriction, you cannot configure a scale-out deployment to support simultaneous intranet and extranet access to the same report server database through separate report server instances where each instance is configured for different authentication types and authorization rules.

The reason for this restriction is that Reporting Services does not synchronize custom permission settings between the different authentication types. If you break permission inheritance and create role-assignments on specific items, access-denied errors will occur when the item is accessed by a user who was authenticated through the other authentication provider. To work around this issue, you would have to duplicate every item-specific role assignment through both servers to get dual security policies for both authentication extensions. This labor-intensive and error-prone practice is likely to result in access-denied errors. For this reason, the scenario is not supported.

The remaining sections in this topic provide more detail about supported scenarios.

Scale-out Deployment for Load-Balanced Solutions

After you configure a report server scale-out deployment, the report server nodes can be load balanced in a Network Load Balanced (NLB) cluster to support high-volume reporting. You can use a software or hardware solution to implement the NLB cluster. Deploying Reporting Services in an NLB cluster is only necessary to increase the responsiveness of the report server or to increase the number of interactive reports that can be processed concurrently. Scheduled reports and subscription processing are faster on a scale-out deployment, but do not require an NLB cluster to get faster performance.

To create and configure the NLB cluster, you must use software and tools that support that functionality. There are load balancing features in Microsoft Windows Server operating systems and in third-party applications. By itself, Reporting Services does not provide load balancing features or the ability to define a single virtual server URL to access multiple report server nodes. The hardware or software solution you select must provide a way to define a virtual server name that provides a single point of entry to all the nodes in a report server scale-out. 

Reporting Services is not aware of Microsoft Cluster Services. If you use Microsoft Cluster Services, review the following information:

  • If Reporting Services runs on an Active-Passive cluster with Microsoft Cluster Services, the Report Server service runs and handles requests on each cluster node on which the service is deployed.

  • When a report server database is hosted on a SQL Server that is part of a failover cluster, the report server must be configured to use the virtual name of the failover cluster to connect to the report server database. Otherwise, the report server will be unable to connect to the report server database when a failover occurs.

  • You cannot deploy a report server on Microsoft Cluster Services through SQL Server failover clustering. However, you can install the report server with the files-only option during a SQL Server installation. 

To configure your deployment

  1. Configure two or more servers to run in an NLB cluster.

  2. Configure a separate server to host the report server database.

  3. Install and configure a report server scale-out deployment by installing a report server instance on each node in the NLB cluster. For more information about how to install the report servers and join them to a scale-out deployment, see How to: Configure a Report Server Scale-Out Deployment (Reporting Services Configuration).

  4. Configure view state validation and check report server configuration. For more information, see How to: Configure a Report Server on a Network Load Balancing Cluster.

  5. On each node in the scale-out deployment, configure the Hostname property of the report server to use the URL name of the NLB. This step configures the URLs that are generated by the report server to point to the NLB instead of a specific server. For more information, see How to: Configure a Report Server on a Network Load Balancing Cluster.

Scale-out Deployment for Improved Performance of Service Features

One technique for improving report server performance is to configure a scale-out deployment that assigns specific types of processing to each report server. For example, you can configure one report server to handle scheduled report and subscription processing and a second report server for interactive reporting. Because the report servers run in the same scale-out deployment, each server processes the same set of reports.

To configure your deployment

  1. Install and configure a report server scale-out deployment. For instructions, see How to: Configure a Report Server Scale-Out Deployment (Reporting Services Configuration).

  2. On the server that is used for interactive reporting, turn off scheduled report and subscription processing.

  3. On the other server that is used for background processing, turn off the Report Server Web service and Report Manager.

For more information about how to turn off specific features, see How to: Turn Reporting Services Features On or Off.