So Much For So FewA while back I was tasked with creating an architecture for a high-availability Project Server environment. What was unusual about this deployment was that the volume was expected to be low to medium. Not surprisingly, the Microsoft documentation (Project Server 2003 Configuration Planning Guide, Project Server 2003 Disaster Recovery Guide) does not really outline a high-availability, low-volume architecture. The challenge was to design a highly available system without using a dozen servers.
I usually ask clients to reconsider whether Project Server really needs to be highly available for their environment. Would their business come to a halt if Project Server wasn't accessible for a day or two if, say, the hard drive failed on the server? Most (hopefully all) employees would be able to keep working and things would continue. Obviously it depends on the business, but it is best to make sure that the extra cost for uptime is worth while.
For this client, they decided that the high availability was worth the extra cost and effort. By their definition, highly available meant remaining operational for any one-piece hardware failure. We were not trying to design for multiple hardware failures or, for example, disasters that took out the entire building.
Here is what my co-workers and I came with:
We installed Project Server on two servers (PS1 and PS2) with Windows 2003 Standard Edition in an active-active network load balanced configuration. We setup SQL Server on two Windows 2003 Enterprise Edition servers (SQL1 and SQL2) using Microsoft Clustered Services in an Active-Passive configuration.
There's nothing really earth-shattering here. The one thing of note is that the View Processor and the Session Manager were installed on the SQL Server cluster servers. Neither service should be installed in an active-active cluster so that ruled out the Project Server machines. We did not want to introduce more hardware to host these services, so that left the SQL machines. Of course, the fact that those machines are clusters is perfect for the services, since we want redundant hardware for high availability and the active-passive configuration is appropriate for the two services.
My colleague and good buddy Ijaz rightly thought I should include one other technical detail in this write-up. As SQL Server Analysis Services was required, we installed both the SQL Server 2000 Analysis Services Service Pack 3 (SP3) and the Decision Support Objects (DSO) component of Analysis Services on all four servers since DSO should be installed where Project Server resides as well as where the View processor is installed.
The most important thing to remember when setting up an environment that has been designed to be highly available is to allocate time to test it; that is, test how the environment reacts to simulated failures. Let me say that again because it is very important: test how your environment responds to failures.