Author: Sanjay Mishra
Contributors: David P Smith (ServiceU)
Reviewers: Chuck Heinzelman, Mike Weiner, Prem Mehra, Kevin Cox, Jimmy May, Min He

 

Installing a SQL Server Failover Cluster Instance (FCI) usually involves performing a setup on the first node, and after that, running setup to ADD NODE on the other node(s) in the FCI. A recent SQLCAT lab engagement required a 4-node FCI; and, with the intention of saving overall setup time, we tried to be “smart” by:

  • First, running setup on Node1.
  • Then, running setup on Node2 because we wanted to test the user interface when performing an “add node” operation
  • Then, concurrently running setups on Node3 and Node4 (setup on Node4 started a few seconds later than Node3).  These were run concurrently because we just needed to get the nodes added to the FCI as quickly as possible to start application testing.

After the concurrent setups on Node3 and Node4 were complete, we looked at the properties of the FCI, and what we saw surprised us. Node3 was missing from the possible owners list of all the resources. We expected the possible owners list to be Node1, Node2, Node3, and Node4, but what we saw were Node1, Node2, and Node4 listed as possible owners, but not Node3.

After further analysis, we discovered what happened during the concurrent setup on Node3 and Node4.

  • After initial install on Node1 and Node2(possible owners = Node1 & Node2)
  • Node3 setup started (possible owners=Node1 & Node2)
  • Node4 setup started a few seconds later (possible owners=Node1 & Node2)
  • Node3 setup finished:  possible owners set to previous owners (Node1 & Node2) PLUS this node (Node3)
  • Node4 setup finished:  possible owners set to previous owners (Node1 & Node2) PLUS this node (Node4)
  • End result:  Possible owners=Node1, Node2, Node4

Expected result: Possible owners=Node1, Node2, Node3, Node4

Upon further research, we found out that SQL FCI setup is not designed for concurrent setups on multiple nodes of an FCI.  In fact, concurrent setup on multiple nodes of an FCI is not a supported operation. The correct approach to install this multi-node FCI is:

  • Run setup on Node 1, and once it is complete
  • Run setup on Node 2, and once it is complete
  • Run setup on Node 3, and once it is complete
  • Run setup on Node 4