lunes, 10 de marzo de 2014

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

SQL Server

http://brodaric.blogspot.com.es/2011/04/installing-sql-server-2008-r2-reporting.html



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

A way of achieving SQL Server 2008 High Availability is installing SQL Server on top of Windows Server 2008 failover cluster. Only Database Engine Services and Analysis Services are cluster aware while SQL Server 2008 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 supported. If you want the Reporting Services on the other nodes you must install them in separate SQL Server instances. If you want the highly available Reporting Services they should be deployed in a farm which provides both availability and load balancing. For details see Planning and Architecture (Reporting Services) .
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 my case. Use of existing Windows/SQL failover cluster seemed logical. Described solution is tested and deployed using both SQL Server 2008 and R2 Enterprise Edition. Standard Edition of SQL Server does not support Scale-Out deployment. For details see Planning for Scale-Out Deployment.
Setup of SQL Server 2008 failover clustering has changed in this 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 caused setup to fail with following error:
" StandaloneInstall_HasClusteredOrPreparedInstanceCheck
Checks if the selected instance name is already used by an existing
cluster-prepared or clustered instance on any cluster node.

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 and skip this check to install the Reporting Services in already clustered instance.
Run the following command at the command prompt to start setup and 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.
General steps for installing SQL Server failover cluster with Reporting Services on each node are:
1.    Create SQL Server failover cluster by installing first node. Start setup and select option "New SQL Server failover cluster installation". Make sure you select Reporting Services while installing first node.
2.    Install SQL Server failover clustering on other nodes. Start setup and select option "Add node to a SQL Server failover cluster". You can not chose any features. You will add Reporting Services later.
3.    Install Reporting Services on all nodes except first node in SQL Server clustered instance. Run setup from command prompt using command mentioned above.
4.    Configure Reporting Services on each node. Run "Reporting Services Configuration tool" on each node.
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). Scale-out enables you to increase the number of users who can concurrently access/invoke reports and improves the availability of the report server.


Error al inciar RS después de instalar SP2
Una vez instalado el RS en el nodo pasivo, al iniciar el servicio se produce un error:





El workarround aplicado para solucionar el fallo del inicio del servicio de Reporting, es el Método 2 del siguiente enlace:

http://support.microsoft.com/kb/2745448/EN-US





SQL Server

http://msdn.microsoft.com/en-us/library/ms157293(SQL.90).aspx



Planning a Reporting Services Deployment

SQL Server 2005 Reporting Services offers two deployment models:
  • A standard deployment consists of a single report server instance that uses a local or remote SQL Server Database Engine to host the report server database. You can use SQL Server 2000 or SQL Server 2005 to host the report server database.
  • A scale-out deployment consists of multiple report servers that share a single report server database. The database can be installed on a remote SQL Server instance or locally with one of the report servers. The SQL Server instance that hosts the report server database can be part of a failover cluster.
    Scale-out deployment is supported in the following editions: Enterprise Edition, Developer Edition, and Evaluation Edition.
To simplify the deployment process, you can use checklists that describe the sequence of tasks that must be performed in order to complete a standard deployment. For more information, see Server Deployment Checklist. To learn more about scale-out deployment, see Configuring a Report Server Scale-Out Deployment. For more information about SQL Server 2005 licensing, see the SQL Server 2005 Licensing section on the How to Buy page of the SQL Server Microsoft Web site.

Standard Deployment


The following diagram shows the standard deployment model where the report server database is located on a remote server. You can also install it locally so that all server components are on the same computer.
Report server standard deployment
Primary considerations in choosing where to host the report server database are:
  • Processing resources
  • Disk space availability
Both the report server and the Database Engine compete for processing resources such as CPU time, memory, and disk access. Some report server operations are resource intensive. For example, a report server attempts to use all available memory for report rendering operations. Running the report server on a separate computer can reduce competition for processing resources.
Report server requirements for disk space provide a second reason for using a remote SQL Server Database Engine to store report server data. Although the footprint of a report server database may be small initially, disk space requirements can grow significantly at run time depending on how you run reports and the number of users accessing the report server. For more information, see Report Server Database Requirements.
Scale-Out Deployment
You can deploy Reporting Services in a scale-out deployment to create a highly available and scalable report server installation. Configuring a scale-out deployment is also useful if you want to improve the performance of scheduled operations and subscription delivery. A report server scale-out deployment consists of multiple report servers that share a single report server database. Each report server in the deployment is referred to as a node. Nodes participate in the scale-out if the report server is configured to use the same report server database as another report server.
Report server nodes can be load balanced to support high volume reporting. You can also create the report server database on a failover cluster to support high availability requirements.
Unsupported cluster configurations include deploying a complete report server installation (that is, a report server and its database) on each node of a multi-node cluster. Specifically, you cannot deploy Reporting Services on a two-node cluster that consists of an active node and a passive node that is used when the active node fails.

Deploying on a Network Load Balanced (NLB) Cluster

You can run report server nodes on an NLB cluster. You can use a software or hardware solution to implement the NLB cluster. To run the report servers on an NLB cluster, you must use software and tools that support that functionality. Reporting Services does not provide server cluster or virtual server management, nor does it provide a way for you to define a virtual server name that provides a single point of entry to all of the nodes in a report server scale-out.
NLB is only necessary if you want to improve report server performance for on-demand reporting and interactive reports (such as drillthrough and matrix reports). Scheduled reports and subscription processing are faster on a scale-out deployment, but do not necessarily require an NLB cluster to get faster performance.

Deploying on a SQL Server Failover Cluster

SQL Server 2005 provides failover clustering support so that you can use multiple disks for one or more SQL Server instances. Failover clustering is supported only for the report server database; you cannot run the Report Server Windows service or Web service as part of a failover cluster.
To host a report server database on a SQL Server failover cluster, the cluster must already be installed and configured. You can then select the failover cluster as the server name when you create the report server database.
Although the Report Server Windows service and Web service cannot participate in a failover cluster, you can install Reporting Services on a computer that has a SQL Server failover cluster installed. The report server runs independently of the failover cluster. If you install a report server on a computer that is part of a SQL Server failover instance, you are not required to use the failover cluster for the report server database; you can use a different SQL Server instance to host the database.

Scale-out Deployment Diagram

The following diagram shows multiple report servers and report server databases deployed in separate server clusters.
Scale-out deployment diagram