Node Fairness – Lastenausgleich

Seit geraumer Zeit gibt es verstärkt die Nachfrage nach einem Pendant für System Center Virtual Machine Manager (SCVMM) Dynamic Optimization in Umgebungen ohne VMM. Mit Windows Server 2016 wird es für die dynamische Verteilung von virtuellen Maschinen ein Boardmittel geben: Node Fairness bzw. Virtual Machine Load Balancing.

Failover Cluster Node Fairness soll den Effekt verhindern, dass nach einer Wartung oder einem Neustart eines Servers und damit einhergehender Live Migration die VMs nicht mehr paritätisch auf allen Knoten eines Clusters verteilt sind. Bei einem 4-Knoten Cluster kommt es zum Beispiel nach dem Reboot eines Knoten dazu, dass dieser keine Ressourcen mehr bereitstellt und nur noch passiv am Cluster teilnimmt – hier wäre eine gleichmäßige Verteilung der Ressourcen wünschenswert und genau darum kümmert sich Node Fairness.

Metrik
Dabei wird die RAM- und CPU-Auslastung eines Knoten berechnet. Die Parameter für ein Overcommitment fließen entsprechend in die Bewertung für den automatischen Lastenausgleich ein. Entsprechend einer Priorität des Knotens mit der höchsten Last werden die VMs auf die weiteren Knoten im Cluster verteilt, deren Auslastung geringer ist.
Auf den Mechanismus kann man über die PowerShell Einfluss nehmen: Mit „AutoBalancerMode“ bestimmt man, ob und wann das Feature zum Einsatz kommen soll und „AutoBalancerLevel“ regelt den Schwellwert in drei Stufen, ab wann ein Host anfängt VMs zu verschieben.
Den Modus kann man ebenfalls über einen GUI-Dialog namens „Balancer“ in den Eigenschaften eines Clusters konfigurieren.

Siehe: » https://blogs.msdn.microsoft.com/(…)node-fairness-in-windows-server-2016

Scale-Out
Bei dem Scale-Out eines Hyper-V Clusters können Knoten in den Verbund aufgenommen werden, die danach -automatisiert dank Node Fairness- über Live Migration ohne Downtime mit VMs betankt werden. Auch das stellt ein mögliches Szenario unter Nutzung dieses neuen Windows Server 2016 Features dar.

Eine automatische Verteilung von virtuellen Maschinen basierend auf der Auslastung der an einem Cluster teilnehmenden Hyper-V Hosts bietet im Windows Server Umfeld einen echten Mehrwert: Der Cluster wird insgesamt besser ausgelastet und die Mechanismen dazu greifen im Hintergrund ohne Benutzerinteraktion ein.

Siehe » https://blogs.technet.microsoft.com/(…)whats-new-in-failover-clustering

Credits gehen an MVP Aidan Finn, der das Feature auf Uservoice angeregt hat:
» https://windowsserver.uservoice.com/(…)vm-placement-without-system-center

Windows Server Failover Cluster Node Fairness kann ab Windows Server 2016 TP5 getestet werden.

Stay tuned,
N.Own

Windows Updates – GDR & LDR

Für Windows Updates gibt es eine Unterscheidung bei der sogenannten „Service Branch“ hinsichtlich der allgemeinen Verfügbarkeit (General Distribution Release – GDR) und einer eingeschränkten Verteilung (Limited Distribution Release – LDR).
GDR Updates sind in der Regel security updates sowie reguläre updates wie feature packs oder rollups. LDR updates finden Verbreitung unter den Hotfixes und Quick Fix Engineering (QFE) updates und sind zugeschnitten auf ein bestimmtes Kundenszenario, diese sind weniger ausgiebig getestet und sollten auch nur in bestimmten Fällen installiert werden.
Diese Art von Updates ist mit folgendem Passus in den jeweiligen KB Artikeln markiert:

„Dieser Hotfix soll nur der Behebung des Problems dienen, das in diesem Artikel beschrieben wird. Verwenden Sie diesen Hotfix nur auf Systemen, bei denen dieses spezielle Problem auftritt.“

„A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.“

Dieser Hinweis sollte ernst genommen werden, der Hotfix sollte dann nicht auf bloßen Verdacht eingespielt werden – außer der Fehlerfall tritt in der Umgebung auf, man wurde vom Support darauf hingewiesen ihn einzuspielen oder der Hotfix ist gelistet in einem KB Artikel mit dem Titel „Empfohlene Updates für…“ (Recommended Hotfixes).
Service Pack Dateien gehören beispielsweise generell immer der General Distribution Release an.

Doch was bedeutet die Service Branch?
Typischerweise erhält man GDR Updates über den Windows Update Kanal, LDR Updates erhält man in der Regel vom Microsoft Support oder über den Download eines KB Artikels zu einem Fehlerfall.
Hinweis dazu: GDR Dateien können sich in einem LDR Hotfix befinden, aber nicht umgekehrt.

Siehe dazu:
http://blogs.msdn.com/(…)difference-between-general-distribution-and-limited-distribution-releases.aspx
http://blogs.technet.com/b/mrsnrub/archive/2009/05/14/gdr-qfe-ldr-wth.aspx

Wichtig ist, dass man sich der Service Branch eines Updates bewusst ist.
Wie erkennt man welcher Service Branch die Dateien meines Systems angehören?
https://blogs.technet.microsoft.com/(…)gdr-oder-ldr-hotfix-version-qfe/

Mit Windows 8.1 respektive Windows Server 2012 R2 hat sich das Blatt gewendet, es gibt nur noch eine einheitliche Branch für alle Updates.
Das ist eine positive Entwicklung, da man sich nun bei der Verwendung eines Hotfixes keine Gedanken mehr machen muss auf einer Installation mit GDR Service Branch Dateien über ein Update eine LDR Service Branch Hotfix einzuspielen.
Da mit dem Alter einer Windows Server Installation immer mehr Updates und ggf. auch Hotfixes auf einem System landen, sollte man darauf achten, was man auf einem Windows Server 2008 R2 oder älter einspielt – vor allem, wenn es sich um kritische Systeme wie Failover Cluster handelt.
Wie beschrieben durchlaufen GDR Updates einen wesentlich härteren Testparcours als LDR Updates.

Stay tuned,
N.Own

Isolated & Quarantined Nodes

Es gibt zwei neue Failover Cluster States mit der Einführung von Windows Server 2016: Isolated und Quarantined.
Was ist ein Knoten, der isoliert oder unter Quarantäne in einem Cluster steht?

Zuerst ist anzumerken, dass es sich um zwei unterschiedliche States handelt, die eine fehlerhafte Intra-cluster Kommunikation widerspiegeln.

Der Zustand eines Knotens im isolierten Status sagt aus, dass der Knoten nicht mehr aktiv am Cluster teilnimmt. Das kann auftreten, wenn ein Knoten die übrigen Clusterknoten nicht mehr erreicht und zuvor eine oder mehrere VMs gehostet hat. Der Zustand wird in der Failover Cluster Console angezeigt und ist nun keine unbehandelte Ausnahme mehr.
Der Clusterdienst reagiert entsprechend und nimmt einen Knoten gegebenenfalls selbstständig in den Status „isolated“.
Es werden keine Ressourcengruppen mehr auf diesen Knoten verschoben, so dass der Knoten nicht mehr aktiv an einem Cluster teilnimmt.

Ein Knoten, der unter Quarantäne steht, kommt in diesen Status, wenn er z.B. drei mal innerhalb einer Stunde den Cluster unsauber verlassen hat. Es wird davon ausgegangen, dass der Knoten ein Hardware- oder sonstiges Problem hat, das ihn zwar teilweise funktional lässt, aber dennoch persistente Fehler zeigt.
Ein sogenannter „dirty node“ wird dadurch für 2 Stunden aus der Mitgliedschaft zu einem Cluster ausgeschlossen („quarantined“); die gehosteten VMs werden im laufenden Betrieb auf einen aktiven Knoten verschoben.
Dieser Status wird ebenfalls in der Console angezeigt und von einem Clusterdienst selbstständig erkannt und ausgelöst. Er kann als Folge des Zustands der Isolation eines Knotens auftreten.

Weiterhin gibt es einen neuen State, der den Ressourcentyp einer virtuellen Maschine (VM) betrifft: Unmonitored.
Dabei kann eine VM in den Unmonitored Status übergehen, wenn der Cluster den Zustand der VM auf Grund von Fehlern auf einem Knoten nicht mehr überwacht. Auch diesem Zustand wird Rechnung getragen und zur Anzeige in der Failover Cluster Console gebracht.
Dieser Status kann als Folge eines isolierten Knotens auftreten, auf dem die VM dann als „unmonitored“ markiert wird.

Hier der Microsoft Blog Artikel, mit dem die neuen Funktionen angekündigt werden:
» https://blogs.msdn.microsoft.com/(…)virtual-machine-compute-resiliency(…)

Es sind dort auch Parameter beschrieben, mit denen die Funktionen im Detail auf die eigene Umgebung angepasst werden können. Die Konfiguration kann per PowerShell durchgeführt werden und betrifft vor allem Schwell- und Timeout-Werte.

Die neuen, erweiterten Failover Cluster States von Windows Server 2016 helfen letztendlich die Stabilität des Clusters einzuschätzen und zu erhöhen, vormals unbehandelte Fehler werden auf diese Weise automatisch erkannt und angezeigt. Ebenso werden unsaubere Knoten automatisch für einen gewissen Zeitraum ausgeschlossen.
Das erhöht die Belastbarkeit eines Clusters und vermeidet unschöne Folgefehler, Microsoft spricht hier von „Virtual Machine Compute Resiliency“ – also von einer höheren Elastizität für vorübergehende Fehler eines Knotens.

Stay tuned,
N.Own

Rolling Upgrade is back

Ein Rolling Upgrade unter Nutzung gemischter Betriebssystemversionen im gleichen Cluster ist für Migrationszwecke sehr praktisch. So erlaubte Windows Server 2003 eine gemischte OS-Version unter den Knoten eines Clusters, was es einem ermöglichte Knoten mit Windows 2000 Server und Windows Server 2003 im gleichen Cluster zu betreiben.
Das Vorgehen war denkbar einfach: Failover aller Ressourcen auf einen Clusterknoten, pausieren des nun passiven Knoten und anschließende Aktualisierung der Windowsversion. Danach das Pausieren des passiven Knotens aufheben und Failover der Ressourcengruppen auf den vormals passiven Knoten, nun kann der vormals aktive Knoten pausiert und aktualisiert werden. Nach einer anschließenden Entfernung der Pausierung hat man das Upgrade seiner Clusterknoten erledigt.
Das Szenario ergibt natürlich nur Sinn, um den Cluster auf einfache Weise auf 2003 zu aktualisieren: Ein Betriebsszenario mit gemischten Knoten wird niemand ernsthaft für längere Zeit betreiben wollen.

Was ist der Vorteil des Ganzen? Nun, man vermeidet eine längere Downtime und spart sich Hardware und das ist bei einem Cluster meistens eine teure Angelegenheit, wenn man die LUNs auf der Shared Storage berücksichtigt.
Leider gab es die Möglichkeit ein „Cluster Operating System Rolling Upgrade“ zu nutzen bei Windows Server 2008 (R2) und Windows Server 2012 (R2) nicht mehr – die Komponenten erlagen einem starken Wandel bei der Architektur und haben das Szenario schlichtweg nicht mehr unterstützt.

Welche Versionen unterstützen ein Cluster OS Mixed Mode, um ein Rolling Upgrade zu realisieren?
Rolling Upgrade Matrix - © 2016 N.Own
Microsoft hat erkannt, dass das Feature für Kunden und IT-Dienstleister eine enorme Erleichterung bei einem Upgrade darstellt und wird das Feature mit Windows Server 2016 wieder einführen. Eine Migration von Windows Server 2012 R2 zu Windows Server 2016 wird also wieder weitestgehend unterbrechungsfrei möglich sein:

» https://technet.microsoft.com/en-us/library/dn850430.aspx

Mit der Wiedereinführung dieses Features wird eine Planung und Durchführung eines OS-Upgrade der an einem Cluster beteiligten Serverknoten wesentlich vereinfacht. Eine Migration von Windows Server 2012 R2 zu Windows Server 2016 erlaubt damit die Nutzung derselben Hardware.

Stay tuned,
N.Own

Active Directory Abhängigkeiten

Windows Server Failover Cluster benötigen bisher ein Active Directory, da sie auf die Vorteile einer zentralen Benutzerverwaltung zurückgreifen – die Abhängigkeiten eines Clusters zu den Active Directory Domain Services (AD DS) haben sich allerdings über die letzten Versionen geändert.

Windows Server 2003 hat noch zwingend ein AD benötigt: Der Clusterdienst auf den jeweiligen Nodes wurden im Kontext eines Dienstekontos ausgeführt – dieses musste ein AD Konto sein.
Der sog. „Cluster Service Account“ (CSA) hat die Anlage der Netzwerknamen übernommen, die „Virtual Computer Objects“ (VCO, Computerkonten) hat der Dienst im Kontext des CSA angelegt und modifiziert. Über so ein Computerkonto wird eine durchgängige Kerberos Authentifizierung für virtuelle Netzwerknamen im einem Cluster z.B. für File Services erreicht. Dabei schreibt der Clusterdienst auch die passenden Attribute für das Computerkonto: ServicePrincipalName (SPN), DnsHostName und DisplayName.

Mit Windows Server 2008 wurde der CSA obsolet, damit vereinfachte sich das Setup und die Achillesferse eines Benutzerkontos mit zu wenig Rechten als potentieller Schwachpunkt für den Clusterbetrieb wurde abgeschafft. Der Clusterdienst läuft nun im Kontext von local system, das Cluster Name Object (CNO) legt fortan die Netzwerknamen an (VCO). Die VCOs bilden den „Client Access Point“ (CAP) für die Zugriffe der Benutzer auf den Cluster. Das CNO ist ebenfalls zuständig für die Kennwortänderungen der VCOs im Active Directory.

Mit Windows Server 2012 R2 ist wiederum ein Schritt in Richtung Unabhängigkeit von AD DS implementiert worden: Man kann nun einen Cluster weitgehend ohne AD betreiben (AD-detached cluster) und für den Bootvorgang eines Knoten (form/join Cluster) muss ein DC nicht mehr zwingend erreichbar sein (AD-less cluster bootstrapping). Für virtualisierte DCs auf einem Hyper-V Cluster ist das Zucker.

Active Directory-less Cluster Bootstrapping
» http://blogs.technet.com/(…)enhanced-integration-with-active-directory-ad.aspx
Ein wichtiges Feature, um Domain Controller weitestgehend virtualisieren zu können und dafür Hyper-V Failover Cluster zu nutzen. Das Henne-Ei-Problem, das ein Cluster nicht ohne AD starten kann und ein DC nicht ohne Cluster auf dem er virtualisiert wurde ist damit passé.

Active Directory-Detached Cluster (Active Directory-less Cluster)
» https://technet.microsoft.com/en-us/library/dn265972.aspx#BKMK_ADAg
Diese Option sollte auf Grund der Einschränkungen gut überlegt werden:
» https://technet.microsoft.com/en-us/library/dn265970.aspx
Auch ist diese Möglichkeit nicht für jede Anwendung geeignet, die auf einem Cluster laufen soll. Selbst wenn man eine weitgehende Loslösung von Abhängigkeiten zu einem Active Directory erreichen kann, sollte man sich immer überlegen zu welchem Zweck und für welche Anwendungsfälle.
Hier ist noch einiges im Fluß für vNext und es gibt Kundenwünsche und Bestrebungen z.B. SQL Server Cluster gänzlich ohne ein Active Directory zu betreiben.
Wie ist Eure Meinung dazu? Hinterlasst mir einen Kommentar… 😉

Stay tuned,
N.Own