Thursday, October 16, 2008

Scaling out MOSS 2007 implementation using Windows network load balance clusters (NLB)

Scaling out an existing implementation or implementing high available performance clusters are always challenge, I have hammered my head many time with the requirement with different Microsoft product like BizTalk, SQL Server, MOSS 2007, SharePoint 2003 etc. From my experience I can say to scaling out MOSS 2007 implementation or implementing high performance cluster is comparatively easier then other MicroSoft products. Well if we talk about performance, so I would say it's majorly depend on two things, back end SQL Server is the first and WFE (Web Front-End) is the second. There are some other stuff which are also important for achieving high performance and availability in implementation but here I would like to mainly focus about WFE and MOSS 2007 Farm implementation on Windows network load balance (NLB) cluster in this post.

To demonstrate, I have used two Windows Server 2003 on single NLB cluster. I would also like to discuss some other windows features which are very helpful in such implementation like network connectivity and physical connections, IIS, NLB manager tool.

  • Network connectivity and physical network design is very important to achieve best of it, network between servers should be very fast and high available and network design should have minimum possible latency between two servers. 

  • To get best out of IIS 6.0, we can implement compression stream, it also improve performance to some extend.

  • If the physical servers haven't balanced configuration then I would prefer to configure priority and also set distribution bandwidth according to amount of performance excellence between them by using NLB manager. If WFE servers across your farms are not running smiler services or not having same configuration then users or requests can experience imbalance depend on the server which is serving them.
NLB Manager

Host Properties

You can see above how to configure load distribution between servers on specific ports if requires.

Well, now we are all set to implement MOSS 2007 in Windows Server 2003 NLB environment.

I have installed Office Server 2007 on both node and selected all component to install, here it's up to need, weather you are planning to dedicate the server for WFE or not (Which will be the requirement in real world scenarios).

That's it, what am I read "That's it"!!!, yes you are right, you just need to install on NLB nodes, another important thing is load balanced URL, I have already made an entry into DNS server with NLB domain and portal URL with NLB virtual IP address, so when I create portal (SharePoint application), it can resolve header and translate name address to virtual IP.

DNS Manager

Now there could be two questions, if this is fresh installation then how to create SharePoint application on load balance or if it's scale out installation then how to extend the existing application. Not a big deal, below are the answers.

How to create new SharePoint application on NLB node?

1. Go to create application page using Application Management in Central Administration Site.

2. Configure the application as standard new SharePoint application. But make sure you are providing the DNS entry we have made for load balanced URL (which translate the virtual NLB cluster IP).

3. After creating application you can notice all load balanced IIS servers are been populated with new SharePoint application. All IIS node servers now have physical website on separate location and respective entry in IIS website.

Bingo!!!!, we are done, now you are on load balance application, let me access the application from different client machine and let's check IIS logs for the websites that which servers are serving our requests.

WIN 1 server's log:

WIN 2 server's log:

You can see above logs' snapshots and see randomly both servers are serving our HTTP GET/POST requests.

We are ON SPOT!! Again BINGO!!

Now the second question, How to extend existing SharePoint application on scaled out NLB Mode?

A very simple answer for that question, you can extend the existing SharePoint application by extending web application to another IIS application from Application Management in Central Administration portal. Make sure you use load balanced URL for the same as we have used in above example.

Hope you like this article, please give your feedback to

Thursday, October 2, 2008

Install SQL Server in Windows Cluster environment as failover cluster.

Last few weeks working on building custom cluster environments and custom applications which can support cluster. So took that chance to take some snapshots of SQL Server cluster installation. As other MicroSoft product, SQL Server Cluster installation is very much easy and simple. Let's have a look at below procedures need to follow while installing SQL Server in Windows Cluster Environment. I setup my windows cluster environment from use of Virtual Server 2005 and build two Windows environments and took them both in cluster. Windows cluster configuration is not in the scope of the this article. I will surely produce the article for Windows Cluster too. But for this article I would like to focus on SQL Server 2005 Cluster environment.

The same standard SQL Server installer allows you to set up the SQL Cluster, but if your host OS is Windows Cluster then it will enable few options while installing service for enabling failover cluster for SQL Server Database Engine and Analysis service, no other service support clustering. So let's see below steps to install Database Engine as failover cluster.

1. Follow the standard SQL Server Installation steps but at the screen while you are selecting components to install or upgrade you will notice one check box option labeling "Create a SQL Server failover cluster" for SQL Server Database Service and Analysis Service only, as these both service only support failover clustering and cluster implementation. Please have a look to the below screen, you must check the SQL Server failover cluster option to continue installation or upgrade in cluster mode.

2. If you haven't checked box for cluster installation or upgrading then it following screen will be standard installation installation wizard screen, else you will see the below screen in order to setup the cluster. Every cluster need the virtual server name, that virtual name behave mostly like named instance, you can provide the virtual server name while setting up connection strings to connect databases or while managing cluster through management studio. Please make sure few important checks before naming the SQL Cluster, to avoid conflicts in name and network resolution please provide unique network object name (like computer name, host names etc...). Refer below screen.

3. The next wizard screen is very important to configure the cluster server's virtualization configuration. The Virtual Server Configuration screen will allow you to setup virtual load balance IPs for the networks (These networks are only cluster virtual network which generally we configure while setting up Windows cluster only). You can setup load balance virtual IP for those networks, I will surely suggest you to create public and private virtual IP separately and avoid heartbeat network channel for the cluster for the performance benefits. Refer the below two screen.

4. The next screen will allow you to add the resource to respective manageable cluster group, in my setup I have just created one cluster group so there is not much choice for me to select :-) but it's a really good practice to manage proper cluster group for better and clean administration. Another important input the screen show is data file's location, it will enumerates the physical drives you have added as the resources in cluster. Ideally the drive should be accessible and shared among all cluster servers and should have valid and proper permissions for required operations. Ideally it should be SAN or SCSI device. Also would advice to cross check after installation that physical drive resource has been added to dependencies in SQL Server resource.

5. The next screen will be for configuring Cluster Node. It will allow you to select cluster nodes. It was my first cluster node installation so just displaying single node in list. Other node you can notice under the label "required node".

6. BINGO.... You are back to main land, and standard installation starts, the following steps would be smiler then regular non cluster installation.

SQL Cluster installation is very simple to install and also to manage. I hope the article helps you to install it first time on your machine. Will try to come up with new articles on clusters and installation. I recently setup my R&D environments in clusters and enjoying to working on it. Next installation will be MOSS 2007 on cluster, BizTalk 2006 R2 installation. Will come up with those articles soon.

Hope you like this article, please give your feedback to