SQL Failover Cluster

In feite is het installeren van een SQL Failover Cluster niet eens zo heel veel werk. De Windows Server feature ‘Failover Cluster’ installeren op alle nodes en daarna op de eerste node een SQL Server installatie voor clustering is ook een kwestie van een paar maal op ‘Next…‘ klikken. SQL-nodes toevoegen aan een cluster idem dito. Nee, het echte werk voor clustering zit ‘m in de voorbereiding! Uiteraard ga ik dit installeren in mijn speeltuin.

iSCSI LUN’s

Hiervoor dienen we de iSCSI-storage voor te bereiden en LUN’s aan te maken voor de diverse volumes. De SAN-storage is dubbel uitgevoerd, dat wil zeggen dat twee opslag-systemen in een RAID-1 (mirror) staan. Op de SAN maken we nu de onderstaande LUN’s aan zodat de iSCSI initiator van de nodes er straks bij kan.

  • 100Gb voor de System- en User Databases,
  • 100Gb voor de Database-Logfiles,
  • 200Gb voor de Backup en
  • 50Gb voor de TempDB.
  • 10Gb voor een quorum disk voor de failover clustering.

iscsi-volumes

Networking

De Failover Cluster gaat bestaan uit twee nodes, beiden virtuele machines onder Hyper-V. Binnen Hyper-V hebben we de beschikking over Virtuele Switches:

  • een public netwerk (CorpNet),
  • een tweede public network voor de storage
  • en een private network voor de heart-beat tussen de nodes van de cluster

virtual Switches

iSCSI Initiator

Op beide nodes, SQL01 en SQL02, dient de iSCSI Initiator met de LUN’s te connecten. De eerste maal dat je deze start wordt gevraagd of de iSCSI Initiator service op automatisch starten gezet moet worden. Duh…

Op het tabblad ‘Discovery‘ vullen we het IP adres van de SAN in en via poort 3260 worden de IQN’s van de target gevonden. Op tabblad ‘Targets‘ kiezen we ervoor om ze te connecten.

iscsi-targets

Met behulp van Server Manager -> File and Storage Services -> Disks kunnen we de disks ‘on-line‘ zetten en er een volume op plaatsen. Voor performance, zet de Allocation Size op 64K voor alle volumes waar SQL-data op komt, dus databases, log-files en tempDB. Standaard worden de disks GPT partities.

iscsi-disks

Windows Failover Cluster

Via de Server Manager -> Add Roles and Features van de servers SQL01 en SQL02 gaan we de Failover Cluster Feature toevoegen.De management tools hiervoor accepteren we uiteraard ook en na een reboot van de server kunnen we de Failover Manager gebruiken.

fc-feature

Start de ‘Failover Cluster Manager‘ en kies voor ‘Validate Configuration’. Voeg beide nodes toe, in dit geval dus SQL01 en SQL02, en kies ervoor om alle tests uit te voeren.

validate

Als alle test goed doorlopen zijn, verschijnt de ‘Create Cluster Wizard’ en kun je de clusternaam kiezen en het IP adres.

In één van de laatste stappen kun je de disks selecteren die aan de cluster gekoppeld moeten worden. Plaats een vinkje bij alle disks die beschikbaar zijn. Als alles goed gaat zullen de disks online komen.

available-disks

Wellicht een goed idee is het om nu de Cluster in de AD Users and Computers op te zoeken en deze lid te maken van de Domain Admins groep. Hiermee voorkom je dat de cluster straks de domain-entries niet mag maken voor de SQL-cluster.

ServiceAccount

Nu we toch daar zijn, maak een gebruiker aan die straks de SQL services mag starten. Bijvoorbeeld SQLService of SQLAdmin. Deze gebruiker dient nu read/write-rechten te hebben op alle disks die gebruikt gaan worden in de SQL-cluster! .

Op de beide cluster-nodes dient nu de Local Security Policy aangepast te worden en geven we dit SQL-Account de volgende rechten:

  • Lock Pages in Memory

locak-pagesDoe hetzelfde voor de volgende settings:

  • Perform Volume maintenance tasks

Om event-logs te kunnen schrijven, voeg het account ook toe aan:

  • Generate Security Audits
  • Manage auditing and security log.

 

SQL Cluster Installatie

Hierna mounten we de iso voor de SQL installatie en starten op de SQL01 (de 1e node) de setup.exe. Kies voor een nieuw aan te maken SQL fail-over cluster.

SQL-setup

Geef de SQL cluster een naam:

SQLcl01

Accepteer de gegenereerde naam voor de ‘Cluster Resource Group’…SQLcl02

Gebruik al de beschikbare Cluster Disks…

LET OP! Als de disk als ReFS volume zijn geformateerd volgt een foutmelding dat de ‘mount point’ niet gevonden kan worden. Formateerd de disks als NTFS!

SQLcl03

Geef de SQL-Cluster een statisch IP adres…SQLcl04

Gebruik de eerder aangemaakte SQL-Service account…SQLcl05

Gebruik de ‘Data Directories’ op de iSCSI drives…

Mocht je nou de disks in de ‘Failover Cluster Manager‘ als ‘Cluster Shared Volume‘ hebben geconfigureerd, dan kan het zijn dat SQL de data directories niet kan vinden in de linked locatie. CSV’s zijn bedoeld voor Hyper-V gedeelde volumes voor HA (Live Migration) en niet als opslag voor de lokale SQL server. Laat de disks dus als ‘Available Storage‘ staan zodat ook de drive-letters blijven staan.

SQLcl06

Als het goed gaat en de installatie is gereed, test de SQL server door met ‘SQL Server Management Studio‘ in te loggen en bv. de query ‘exec sp_who2’ uit te voeren.

ssms

Hierna kan de 2e node toegevoegd worden. Mount de SQL-iso aan de 2e node en start ook daar de setup.exe Kies nu voor ‘Add node to a SQL Failover Cluster‘.

sql-setup2

De cluster wordt automatisch gevonden en we hoeven alleen de standaards aan te houden.

SQLcl07

Na het invullen van het wachtwoord voor de SQL-service account en een paar maal Next… is de 2e node toegevoegd. Hiermee is de SQL-Failover cluster configuratie compleet!

fc-manager

(wellicht handig om de Failover Cluster Manager in de Published RemoteApps voor Systeembeheer te plaatsen)