Installing SQL Server 2008 Reporting Services on Failover Cluster in already clustered instance

Deployed with: SQL Server 2008/R2 Enterprise
A way of achieving SQL Server High Availability is installing SQL Server on top of Windows Server failover cluster. Only Database Engine Services and Analysis Services are cluster aware while SQL Server Reporting Services and shared components (Integration Services, Management Studio, Business Intelligence Development Studio etc.) are not. According to available documentation installing Reporting Services in already clustered SQL Server instance is not possible. If you want the Reporting Services on the other nodes you must install them in separate SQL Server instances.

What I needed was High Availability, but I didn’t have additional servers to create the farm (with this scenario you need at least 2 additional servers for farm or NLB). Also I didn’t want to manage multiple SQL Server instances side by side. Multiple instances mean a lot of administration because each instance must be handled separately. There are scenarios when you should or want to use multiple instances, but not in this case and use of existing Windows/SQL failover cluster seemed logical.

Setup of SQL Server failover clustering has changed with SQL 2008 release. To install or upgrade a SQL Server failover cluster, you must run the Setup on each node of the failover cluster. You create a failover cluster by running Setup on first node and selecting all desired components. As I already mentioned only the Database Engine and Analysis Services support failover clustering, while other components run as a stand-alone feature without failover capability. Shared components are installed on all other nodes while adding those nodes to the existing failover cluster. To install the Reporting Services on other nodes, after adding those nodes to the existing SQL Server failover cluster, you must run setup once again. Running setup on the second node and selecting the Reporting Services will caused setup to fail with following error:
“Failed – The instance selected for installation is already installed and clustered on computer.To continue, select a different instance to  cluster.”

The solution is to run setup with option to skip check if Reporting Services are installed in already clustered instance. Don’t forget first to add SQL Server failover cluster on another node. Run the setup again with the following command at the command prompt to add Reporting Services on other nodes:

Setup.exe SkipRules=StandaloneInstall_HasClusteredOrPreparedInstanceCheck Action=Install

This will run Setup in full interaction GUI mode while skipping cluster instance check. Just follow setup to install Reporting Services in SQL Server clustered instance.

After installing Reporting Services on failover cluster please keep in mind:

  • Reporting Services running on an Active-Passive cluster handle requests on each cluster node on which the service is deployed.
  • Report server must be configured to use SQL failover cluster virtual name to connect to the report server database. This is because it is hosted on a SQL Server that is part of a failover cluster. If not, the report server will be unable to connect to the report server database if a failover occurs.

This solution provides the highly available Reporting Services with default SQL server instance and uses already deployed hardware. It is not substitute for a true Scale-out deployment of the Reporting Services, but a way of achieving high availability (we just used the existing high availability platform).