Skip to content

Windows2008/SQL2008 Clustering

July 7, 2009

Three little words of advice: Cluster Validation Report.

After years of working with SQL clusters, I had become fairly familiar with the idiosyncrasies of SQL2005 running on a Windows2003 cluster. Tools like Cluster Administrator and Computer Management became as familiar as Management Studio and Profiler. You want client tools on the passive node? Oh yeah, that’s a separate install. Stuff like that.

That is, until the day we entered the brave new world of 2008. First surprise: unlearn everything and start all over again. Where’s Cluster Administrator? Hmmm .. okay, it has been replaced by something called Failover Cluster Manager – which, by the way, doesn’t let you do a whole heck of a lot unless you’re logged on as an administrator (surprise #2). Very shortly thereafter you find out that the SQL2008 cluster install sequence has been completely redesigned (surprise #3) – and is much cleaner, in my opinion (if you overlook the painfully complicated installation of all the prerequisite bits). Still, we had to rewrite all of our SQL install documentation pretty much from scratch.

So aside from a few bumps, everything sounds great. What’s the catch? It’s a little piece of new clustering magic called “cluster validation”. Without going into too much detail, Microsoft decided in their wisdom that for Windows2008, they would let you cluster just about anything to anything, as long as what you’ve built passes validation. This makes things much easier for the systems people as it takes out some of the stringent rules behind building a cluster. Your system either passes … or it doesn’t.

Which brings me to the issue we ran into a few days ago. We built out a Windows2008 cluster running SQL2008 for a customer … or I should say “tried to build”. Skipping over a lot of boring unnecessary fluff, we were building it initially as a one-node cluster, and adding the second node later (we had our reasons). First node install … pop in the SQL disc, start the installer, set up a new cluster, so far so good. No problems. Later in the week, the second node was built and added to the cluster. Pop in the disc, log on, and start the SQL install on the second node … wait, what’s that rules check message? That can’t be good. Something about a cluster validation problem. Not a warning, an actual error. The NEXT button was greyed out! I couldn’t get past the rules checker to install the passive node!

After doing some digging, I quickly found that SQL2008 will not install on a Windows2008 cluster that has failed validation. SQL2005? No problem. It’ll happily run all day on any old cluster. But SQL2008 is a picky son of a … well let’s just say it’s picky. I was running into a problem where the Windows cluster would not validate when both nodes of the cluster were running. Shut down either node, no problem. Both nodes, game over. Since having more than one node in a cluster is kind of the whole point, we were at a stand-still while I did a little research on the validation error. Ran into this little gem of a post. Apparently we’re not the first to see this problem (I am deliberately not going into detail on the validation error; if you’re curious, click the link above)

Once we disabled the Teredo device, and re-validated the cluster (which now came through clean) SQL installed without further complaint.

So, moral of this long story is, make sure the Cluster Validation Report is showing a clean, green bill of health before starting a SQL2008 install. Have your systems people promise that they won’t ever build you an invalid cluster! Because if you don’t check, you can be sure that the SQL2008 installer will, and it will complain mightily if it finds problems. And at that point you’re no longer playing DBA but instead playing (take your pick) Windows admin, network admin, or storage admin.

There is an even longer story behind the pooch we were left with after upgrading SQL2005 to SQL2008 on an invalid Win2008 cluster, but that’s a tale for another day.


Comments are closed.

%d bloggers like this: