Clusterfähiges Aktualisieren (CAU) bei AlwaysOn Verfügbarkeitsgruppen

Level – Fortgeschritten

Was ist CAU

Seit dem Windows Server 2012 gibt es die Funktion des clusterfähigen Aktualisieren. Hierüber ist es möglich einen Windows Cluster automatisch komplett zu patchen ohne Ausfallzeiten bei den Diensten.

Weitere Informationen zu CAU Cluster-Aware Updating

Problemstellung

Anders als bei AlwaysOn Cluster Instanz sind die AlwaysOn Verfügbarkeitsgruppen nicht kompatibel zum Clusterfähigen Aktualisieren. Dies liegt daran dass bei den Verfügbarkeitsgruppen der SQL Server selber die Rollenverteilung steuert und auch den Failover durchführt.

Bei den meisten anderen Clusterrollen erfolgt die Rollenverwaltung durch den Windows Cluster selber. Die Funktion des clusterfähigen Aktualisieren nutzt den Failover um die Rollen von dem zu aktualisierenden Server auf einen anderen Server zu verschieben.

Lösung

Nur weil es nicht direkt funktioniert muss man es ja nicht dabei belassen. Zum Glück bietet das Clusterfähige Aktualisieren die Möglichkeit vor und nach der Updateinstallation ein Powershell Skript zu starten. Und da man über die Powershell auch auf den SQL Server zugreifen kann, kann man den SQL Server anweisen die Verfügbarkeitsgruppe zu schwenken. Leider musste ich beim dem Versuch es umzusetzen feststellen, dass es doch nicht ganz so trivial ist wie ich vorher dachte. Schlussendlich habe ich zwar eine Lösung gefunden welche aber ein paar offensichtliche schwächen hat. Aber dazu später mehr!

Ein Beispielskript steht in der Technet Gallery zum Download bereit.

CAU konfigurieren

Die Einrichtung des clusterfähigen Aktualisieren an sich ist relativ einfach weswegen ich hier nicht zu sehr ins Detail gehen möchte.

2016-04-23 19_12_14-its-vm416.ad.its.uni-kassel.de - Remote Desktop Connection Manager v2.7

Nach dem Öffnen findet man am rechten Bildrand die Option „Selbstaktualisierung des Clusters konfigurieren“.

Der wichtigste Punkt in der Konfiguration befindet sich im vorletzten Bild des Assistenten

2016-04-23 19_13_31-its-vm416.ad.its.uni-kassel.de - Remote Desktop Connection Manager v2.7

Hier kann man bei dem Punkt „PreUpdateScript“ ein Powershell Skript angeben welches vor dem Update auf allen Servern ausgeführt wird.

Tragt man hier nun das Skript aus der Technet Gallery ein ist es möglich die primäre Rolle einer Verfügbarkeitsgruppe jeweils vor dem Update/Neustart des Servers zu welches.

2016-04-23 18_24_26-its-vm416.ad.its.uni-kassel.de - Remote Desktop Connection Manager v2.7

Da der Rollenwechsel durch den SQL Server selber erfolgt umgeht die Inkompatibilität zwischen CAU und AlwaysOn Verfügbarkeitsgruppen.

Funktionsweise

Zunächst muss man das Skript auf einen Netzwerkpfad oder besser noch, eine CLusterdisk legen auf die alle Server zugreifen können. Wichtig ist dass hier das Leserecht auf „JEDER“ gesetzt wird.

Das Skript passt man an die Servernamen und Verfügbarkeitsgruppen an.

Neue Login

Zudem muss es auf allen SQL Server Instanzen einen SQL Login geben! Dies bedeutet auch die Nutzung des gemischten Authentifizierungsmodus. Dieser Modus ist allerdings nicht überall erlaubt und auch ich bin nicht wirklich begeistert von dieser Tatsache.

Der Login braucht neben der Rolle Public noch zwei weitere Berechtigungen.

  • VIEW SERVER STATE
  • CONTROL ON AVAILABILITY GROUP
USE [master]
GO
CREATE LOGIN [Cau-Login] WITH PASSWORD=N'Pa$$wOrd', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF
GO
use [master]
GO
GRANT CONTROL ON AVAILABILITY GROUP::[AlwaysOnG1] TO [Cau-Login]
GO
GRANT VIEW SERVER STATE TO [Cau-Login]
GO

Die Login Daten müssen dann im Skript hinterlegt sein was ich als den größten Nachteil sehe. Da ich mich mit der Powershell nicht so gut auskenne gibt es bestimmt Wege diesen Mangel zu beheben. Meine ursprüngliche Idee mit dem AD Dienstkonto des Cluster Update Dienste zu arbeiten ist leider gescheitert.

Nachdem man alle Anpassungen vorgenommen hat sollte der erfolgreichen Update nichts im Wege stehen.

Ich wünsche viel Spaß bei der Umsetzung und hoffe dass es weniger Versuche braucht als bei mir.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s