We are in the process of building a new Windows 2008 R2 cluster with SQL 2008 R2. Really nice hardware too. 20 cores and 256 GB of ram. While we were planning this new environment several other new projects came in to build additional SQL boxes. Why buy one when you can buy to right? So now we have the opportunity to setup additional clusters. The question I am asking my boss is why? Why build a cluster if the SLA or business need isn't there. We could simply mirror the databases for HA like we do for everything else. His response back was, why not build another cluster even if the SLA doesn't warrant it. Considering at this point in my career the only involvement I have had to date with clustering is reading about it and failing ours over once, I can't really offer the best explanation of why not, or why to for that matter. The geek in me wants to build it for the sole purpose of gaining additional knowledge of clustering but I would like to give a more educated response. So today's Friday fun question from me, is "What would you do and why"? I am looking forward to the responses. Cheers and everyone have a great weekend.
Why cluster when there is no business or SLA requirement to do so... - You have 50 large to spend this year so you don't lose it in next year's budget - You like the prestige or pride of ownership that comes from running a clustered environment - Some other servers have a business/SLA clustering requirement and you want to standardize your configuration - You want to take your administration skills to the "next level" Why not cluster when there is no business or SLA requirement to do so... - Clusters sometimes have LOWER uptime than standalone servers due to the additional complexity in setup, operation and maintenance (it is a giant human error magnet) - You lose flexibility with the deployment of your hardware (as in you can't just take one of the nodes and use it for something else) - Every dollar that goes into underutilized infrastructure is a dollar that isn't contributing to your salary or to the shareholders/owners/customers - It's just wasteful If the boss is dedicated to the cluster approach, I wouldn't spend any time trying to convince him otherwise. I'd get the [Pro SQL Server 2008 Failover Clustering] book ([author's blog]) and bone up on Windows and SQL Server clustering, then I'd get the OS/SAN team to let me cluster the servers, beginning with the windows cluster. Maybe cluster a couple virtual machines on your workstation for warm up. Plan on setting the cluster up more than 1 time, and make sure to communicate that intention ahead of time to your supporting teams, so there is no pressure for a mistake-free first shot. They'll get better and faster at presenting you with a clean windows install, and you'll get more expertise by running through it more than once. You might even do the base SQL Server install without the most current patches, then add them in to practice patching a clustered server. Most importantly, have a great time! It's a rare opportunity to work in an environment where they want to throw these kinds of toys at you for no other reason than "why not?" :
When it comes to the SLA do you have a requirement to meet on downtime percentage? Whether it be for maintenace on the server or patching, clustering can come in handy dealing with that uptime requirement. I mess more with clustering than I do with mirror so I don't know if mirroring has little downtime when dealing with this type of thing. I will say the clustering setup/configuration in SQL Server 2008 R2 is superb. I have not had an opportunity to work on setting one up yet, but have read it is considerably easier to install and patch, compared to SQL 2005 steps.
I have never had an opportunity to set up a cluster, but from what I understand the ROI only exists if you have a need (such as an SLA requirement in a contract) for extreme high availability. Otherwise, building the cluster will require a substantial amount of resources when you can achieve a reasonably high availability with mirroring with a much simpler setup and fewer resources used. So, in your situation I would first make sure that my boss understood that there probably would be a small ROI on this investment. Then, if he still wanted it, I would very happily set about creating one just for the practice.
If you have the infrastructure there already to provide an extra cluster, it is a good way of future proofing that particular installation (in terms of possible usage and free capacity). The situation is the same everywhere; you commission a SQL Server (nicely planned for a 5 year period with 10% growth p.a.), then along comes another manager and says "I need a database, you have a super-server in the datacentre, we're using that too". Your "stealth" cluster could then step up to the responsibility. We had a similar case here a few years back. We de-commissioned an old 2000 server and when we were sizing up the replacement, we got a good deal on 2 identical servers and went for it. The server was never in the "mission critical" group, but was soon "upgraded" to it. The machine shrugged off the extra workload, and the better uptime has been a nice extra. We now have 2 clusters (active/passive), both Win 2008 and SQL 2008 so not as good as what you'll get. It is ***REALLY*** easy to look after and allows patchdays to run ultra smooth. One thing to note is that active/passive is only licensed for the active node. This makes the case of cost much less relevant IMO (unless you are going for a second hardware monster cluster). You can get two identical servers with medium memory size and mega-cpu for less than $10k. Hardware costs nothing nowadays.