9 Replies Latest reply: Nov 16, 2015 8:34 AM by Jason Emery RSS

    Windows Server 2012 R2 Failover Cluster and SQL 2012

    Brant Wells Newbie

      Hi All!


      I am building a failover cluster for SQL Server 2012 on Windows Server 2012R2 using our Nimble storage for my SQL data.  I have an odd problem with it that I cannot seem to figure out.


      For my shared storage, I can mount the Drive (S:) on Server 1, and Server 2 (one at a time), so all should be well.  However, once I add the storage into the failover cluster, the S: drive will only mount on Server 1.  I can Offline the disk, and move it to Server 2, and try to online the disk, I get a Semaphore timeout period has expired error (80070079).


      The Windows Failover Cluster validatoin fails with:

      cluster_validation_storage_fail.png


      I know that the Storage space was set up with the multi-initiator option.  Should that be disabled for a failover cluster...  if not, what am I missing?


      Thanks all!


      ~Brant



      (this is my first post, by the way).

        • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
          Jason Monger Adventurer

          Hi Brant

           

          Just looking at unanswered questions and wondered whether you got this resolved? If you're using iSCSI when you set up the volume did you set the 'allow multiple initiators' option?

           

          Jason

          • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
            Jonathan Zygmunt Adventurer

            Can you tell us more about how you've set up the connectivity?  Are these physical boxes or VMs?  Using RDM or VMDKs?  I'm assuming we're not talking about CSVs here.

             

            I've done plenty of clustering with the Nimble arrays, so I know they support persistent reservations.  A frequent gotcha that I see folks get tripped up on is that once the storage is added and the clustering driver is installed on the system, a reboot is required of all cluster nodes so that the storage driver/filter is loaded and applied to the drive that ensures only one OS has control of one volume at a time (it probably is what handles the SCSI reservations, but honestly I've never delved deeper into the mechanics of it).

            • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
              Jason Emery Newbie

              We have a very similar setup I believe.  We are running on a VMware environment but are initiating the iSCSI disks from directly within the Windows Servers via the Nimble connection manager.  As long as the volumes are setup as multi-initiator then it should work.  Are you able to see the ISCSI volumes in the Windows iSCSI tool on both servers at the same time?  My guess is something is wrong in the ISCSI setup, I would start there.  With that said if you are using the Nimble tools for Windows it should handle most of that on its own.

              • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
                JT Moree Wayfarer

                Using vmware 5.5 the windows admin could not get the cluster to work when both systems were virtual machines.  There are a few supported configs but the short story is that the cluster network setup (multicast) and vmware virtual nics dont play nicely.  It was difficult to figure out because the cluster validation failed with strange unrelated errors (which I dont recall).   If you want to use vms you'll need to research the supported architectures and caveats. 

                • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
                  Jason Emery Newbie

                  We have it working very well on vsphere 5.5, the main issue we ran into was some of the packet RX buffer sizes being too small by default which was causing packet loss.  A Windows 2012R2 cluster will go into failover if 5 heart beat cluster packets are lost in 5 seconds which can cause a lot of havoc if the host are not actually down.  Specifically when using VMXNet 3 adapters.  This VMWare KB fixed the issue VMware KB: Large packet loss at the guest OS level on the VMXNET3 vNIC in ESXi. You only need to set this on your network communication NICS not the iSCSI side.

                  • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
                    Jacob Wilde Wayfarer

                    Brant Wells you mentioned something about how the "Storage Space" was setup, does that mean you're using Windows Storage Spaces? If so what is the use case for this with a Nimble array? it sounds like you're over-complicating things by adding the storage spaces into the mix. Also can you elaborate more on your configuration? I know some people have thrown out about virtualized vs physical, would also be good to know about in-guest iSCSI vs RDM vs. VMDK/VHDX to help solve your problem.

                    • Re: Windows Server 2012 R2 Failover Cluster and SQL 2012
                      Brant Wells Newbie

                      Hi All,

                       

                      Thanks for the sudden set of replies!  It turns out that my server was using IPv6 instead of v4.  I also had a problem with the Storage NIC not coming up before iSCSI initiator started trying to connect. I specified the IP address in the Initiator so that it would always try to connect from that IP v4 Address instead of v6 or from one of the other NICs in the system.  My MSSQL Cluster has been working great for a few months now.  I have one VMware VM and one Physical machine that runs the SQL Server Cluster.  The iSCSI LUN is mounted as a Drive letter, and not using CSV.

                       

                      We are *NOT* Using the Microsoft Storage Spaces (I find that greatly complicates a few things that should be quite simple, such as this).

                       

                      To Recap, it looks like my NICs were using the wrong IP addresses and the Storage NIC wasn't coming up fast enough.  After I specified which IP address the iSCSI initiator was supposed to use, everything was happy again.