Eine der entscheidenden Anforderungen für virtuelle Infrastrukturen, insbesondere in großen Rechenzentren, ist die Beseitigung eines einzelnen Ausfallschwerpunkts und die Sicherstellung der Hochverfügbarkeit von Diensten und Anwendungen. In einer Hyper-V-Umgebung steht die Microsoft-Failover-Clustering-Technologie zur Verfügung, um mehrere Hyper-V-Hosts (oder Knoten) zu konfigurieren, die die Last übernehmen können, wenn ein Host ausfällt.
In dieser Schritt-für-Schritt-Anleitung erfahren Sie die praktischen Aspekte der Konfiguration des Hyper-V-Failover-Clustering, einschließlich der initialen Host- und Netzwerkkonfiguration, der Installation der Hyper-V-Rolle und der Erstellung des Clusters.
Hyper-V-Hostkonfiguration
Um Hosts für den Failover-Clustering vorzubereiten, sollten wir ein Betriebssystem auswählen, das auf allen Hosts installiert werden soll, die in einem bestimmten Cluster verwendet werden. Anschließend müssen wir eine grundlegende Konfiguration der Umgebung, einschließlich aller Hosts, durchführen, um sie für die Einrichtung des Hyper-V-Clusters vorzubereiten.
Auswahl eines Betriebssystems zur Installation
In diesem Setup verwenden wir zwei Installationen von Windows Server 2016 Server Core, um bewegliche Teile zu minimieren und die Sicherheit zu verbessern. Die Verwendung der Installation von Windows Server 2016 Server Core beseitigt viele unnötige Komponenten und reduziert den Footprint. Der erhöhte Verwaltungsaufwand mit Server Core wird durch die Vorteile von Effizienz und Sicherheit ausgeglichen. Sie können auch neuere Versionen von Windows Server verwenden, wie z.B. Windows Server 2019 für die Einrichtung eines Hyper-V-Clusters.
Hinweis: Für die Verwaltung und Konfiguration von Windows Server 2016 Server Core verwenden wir PowerShell. Es ist technisch möglich, Windows Server mit Desktop-Erfahrung zu verwenden, um den Hyper-V-Failover-Clustering zu konfigurieren.
Initiale Konfiguration der Umgebung
Bevor wir über die Hyper-V-Hosts als Cluster nachdenken, müssen wir unsere anfängliche Konfiguration der Hosts durchführen. Dies umfasst größtenteils dieselben Schritte wie die Vorbereitung eines beliebigen Windows-Servers – Benennung, Netzwerkkonfiguration, Patchen usw. Die Netzwerkplanung ist besonders wichtig in einem Windows-Cluster, da sie eine ordnungsgemäße Clusterkommunikation sowie die Kommunikation mit gemeinsam genutztem Speicher ermöglicht.
- Benennung. Beide Server wurden benannt und der Labor-Domäne beigetreten. Beachten Sie, dass ab Windows Server 2016 das Beitreten einer Domäne keine Voraussetzung mehr ist. Die Serverkonfigurationen für den ersten Server H1 sind unten in den Screenshots dargestellt. Die Konfigurationen für den zweiten Server H2 sind ähnlich.
- Aktualisierungen. Wir müssen alle potenziellen Hyper-V-Clusterknoten auf den neuesten Patchstand aktualisieren, der gemäß den bewährten Methoden für die Hyper-V-Clusterung verfügbar ist. Das Installieren von Updates auf Hyper-V-Hosts verbessert die Sicherheit unseres Systems. Möglicherweise müssen Sie Windows neu starten, um die Installation der Updates abzuschließen.
- Konsistenz. Als bewährte Methode möchten wir, dass alle potenziellen Clusterknoten identisch konfiguriert sind, außer den Computernamen und IP-Adressen. Dies stellt sicher, dass alles zwischen den Hosts standardisiert ist, einschließlich Patchständen, Netzwerken usw.
Netzwerkplanung
Eine ordnungsgemäße Umgebungsplanung verringert viele Risiken in der Zukunft. Für das Labor-Netzwerk in diesem Szenario wurden vier Netzwerkadapter für jeden Host konfiguriert. Beide Lab-Hosts nutzen aus Gründen der Einfachheit keine NIC-Teambildung. Sie möchten jedoch in der Produktion Ihre Adapter teamen, um zu vermeiden, dass ein einzelner Netzwerkpunkt ausfällt.
Für unser Lab-Setup haben wir:
- Verwaltungs- und VM-Verkehr
- iSCSI
- Privater Cluster-Verkehr
- Live-Migration
Mit den oben genannten Netzwerken im Hinterkopf weisen wir jedem Server IP-Adressen in unseren gewünschten Subnetzbereichen zu. VLANs sind auch hier zu berücksichtigen, da Sie wahrscheinlich Ihre Subnetze mit bereitgestellten VLANs abstimmen möchten. Dies muss im Voraus durchdacht werden.
iSCSI-Speicherziel Einrichtung
Hyper-V-Cluster-Speicher ist ein entscheidender Punkt für den Aufbau eines Clusters. Für iSCSI-Speicher in einer Laborumgebung verwenden wir in diesem Beispiel FreeNAS, um iSCSI-Ziele zu erstellen und diese unserem Hyper-V-Cluster bereitzustellen. Natürlich kann die Einrichtung von iSCSI auf Hardware des gewünschten Anbieters oder Software-iSCSI je nach Anbieter unterschiedlich sein, daher sollten immer die festgelegten Methoden befolgt werden.
Hinweis: FreeNAS ist ein universelles und flexibles auf FreeBSD basierendes Betriebssystem, das Sie auf einem Computer installieren können, um es als NAS zu verwenden. Sie können einen Hyper-V-Cluster für gemeinsamen Speicher erstellen oder ein Backup-Gerät mit FreeNAS und der NAKIVO-Lösung aufbauen.
Hier finden Sie eine kurze Übersicht darüber, wie der Speicher für Hyper-V-Failover-Clustering mit FreeNAS eingerichtet wird. Wir werden nicht auf alle Details eingehen, wie man FreeNAS für iSCSI einrichtet. Hier sind jedoch die grundlegenden Einstellungen, um ein paar iSCSI-Ziele für unsere Hyper-V-Hosts bereitzustellen.
- Starten Sie den iSCSI-Dienst in FreeNAS und richten Sie Ihre Netzwerkkonfiguration für das Speichernetzwerk so ein, dass sie mit dem übereinstimmt, was Sie für die Hyper-V-Hosts verwenden möchten.
- Überprüfen Sie das Basis-IQN-Setup für die Ziele, die wir erstellen werden.
- Richten Sie in FreeNAS ein Portal ein, das auf iSCSI-Verkehr lauscht.
- Richten Sie iSCSI-Zielnamen ein. In unserem FreeNAS-Gerät richten wir ein:
- a quorum volume to be used as a disk witness
- a volume to be used for the Hyper-V cluster shared volume to house our VMs
Hinweis: Quorum ist der Mechanismus in einem Windows-Cluster, der sicherstellt, dass im Falle eines Ausfalls zwischen Teilen eines Clusters immer eine Mehrheit der Cluster-Ressourcen für die Funktion des Clusters verfügbar ist.
- Ab Windows Server 2012 hat jeder Knoten im Cluster standardmäßig eine einzelne Quorum-Stimme. Durch das Hinzufügen einer zusätzlichen Stimme mit einem Dateifreigabe, einem Laufwerk oder einem neuen Cloud-Speicherkonto in Windows Server 2016 sollte ein Teil des Clusters immer mehr als 50% der Quorum-Stimme erhalten, indem er die Freigabe, das Laufwerk oder das Cloud-Speicherkonto beansprucht.
- Mit Windows Server 2012 R2 änderte sich die Empfehlung, immer den Datenträger oder den Dateifreigabe-Zeugen zu konfigurieren. Die Abstimmung wird nur auf den zusätzlichen Zeugen (Dateifreigabe, Datenträger oder Cloud-Speicherkonto) erweitert, wenn es eine gerade Anzahl von Knoten gibt. Bei einer ungeraden Anzahl von Knoten erhält der Zeuge keine Stimme und wird nicht verwendet.
Im folgenden Screenshot haben wir die beiden Zielnamen erstellt: ein Quorum-Volume, das als Datenträgerzeuge verwendet werden soll, und ein Volume, das für unser Cluster-Freigabevolume verwendet werden soll.
- Fügen Sie Extents hinzu, die im folgenden Beispiel den einzelnen Datenträgern zugeordnet sind, die wir in unserem FreeNAS-Gerät physisch zugewiesen haben.
- Ordnen Sie das Ziel dem Extent zu. Die Ziele sind im FreeNAS mit dem Speicher verbunden.
Installation der Hyper-V-Rolle
Um den Hyper-V-Rollen-Dienst zu installieren, führen Sie den folgenden Befehl in einer PowerShell-Befehlszeile aus:
Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart
Speicher einrichten: Hinzufügen der iSCSI-Portaladresse
Vor dem Hinzufügen unserer iSCSI-Portaladresse müssen wir den Microsoft iSCSI-Dienst wie folgt konfigurieren und starten:
- Setzen Sie den Dienst auf automatisch.
Set-Service -Name msiscsi -StartupType Automatic
- Starten Sie den Dienst.
Start-Service msiscsi
- Verwenden Sie PowerShell, um die bereitgestellte iSCSI-Portaladresse hinzuzufügen:
New-iscsitargetportal -targetportaladdress <IP-Adresse>
- Verbinden Sie die spezifischen iSCSI-Ziele, die in unserem Fall auf unserem FreeNAS-Gerät erstellt wurden. Im Folgenden finden Sie Beispiele dafür, wie wir die FreeNAS-Ziele zu den für den Cluster bereitgestellten Hyper-V-Hosts hinzugefügt haben.
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:hvvol1 -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
Sie können überprüfen und sehen, welche Ziele hinzugefügt wurden, indem Sie den Befehl Get-iSCSItarget ausführen.
Hinweis: Sie können den Befehl get-disk verwenden, um Informationen zu den Festplatten anzuzeigen und sicherzustellen, dass der gemeinsam genutzte Speicher des Hyper-V-Clusters online und gesund ist.
Einrichten von virtuellen Switches
Konfigurieren von virtuellen Switches ist für eine ordnungsgemäße Hyper-V-Failover-Cluster-Netzwerkkonfiguration erforderlich. Wir können entweder PowerShell oder Hyper-V Manager verwenden, um unsere virtuellen Switches für Hyper-V einzurichten.
Ein Beispiel für den Befehl zum Erstellen eines virtuellen Switches in PowerShell:
New-VMSwitch „ExternalSwitch01“ -NetAdapterName „Public“ -AllowManagementOS 1
Hinweis: Richten Sie Ihre virtuellen Switch-Namen identisch zwischen beiden Hosts ein, da wir sicherstellen müssen, dass die virtuellen Switches übereinstimmen, insbesondere bei einer Live-Migration.
Erstellen eines Hyper-V-Clusters
Mit PowerShell ist das Erstellen des Clusters ein einfacher Einzeiler-Befehl.
- Vor dem Erstellen des Clusters führen Sie diesen Befehl aus, um die Clusterkonfiguration auf Hyper-V-Clustering-Best Practices zu überprüfen:
Test-Cluster H1,H2
- Verwenden Sie das new-cluster-Befehlslet, um einen Cluster zu erstellen und ihm den Namen, die Knoten und eine statische IP-Adresse zuzuweisen.
New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75
- Wenn der Clustererstellungsprozess abgeschlossen ist, sehen Sie die Ausgabe des Cluster-Namens in der Befehlszeile.
Hyper-V Clustered Shared Volumes
Auch wenn wir gemeinsamen Speicher aus Sicht eines iSCSI-Ziel haben, müssen wir sicherstellen, dass der Speicher, der unsere VMs beherbergt, auf einem Hyper-V Clusterfreigegebenes Volume eingerichtet ist. Das clusterfreigegebene Volume (CSV) wurde in Windows Server 2008 R2 eingeführt, um mit der Hyper-V-Rolle verwendet zu werden, damit eine VM VHD-Dateien von jedem Knoten im Cluster aus zugreifen kann. In CSV ist auch eine Ausfallsicherheit eingebaut, einschließlich I/O-Fehlererkennung, die den Einsatz alternativer Kommunikationswege bei Kommunikationsfehlern ermöglicht.
Werfen wir einen Blick darauf, wie wir das clusterfreigegebene Volume Schritt für Schritt für unsere VMs erstellen können.
- Benennen Sie die Clusterdatenträgerressource um, die für die Speicherung von VMs verwendet werden soll (optional). In unserer Laborumgebung ist dies Cluster-Datenträger 1:
(Get-ClusterResource | ?{$_.Name -eq “Cluster-Datenträger 1”}).Name = “VMs”
- Jetzt können wir dieses Volume zu einem clusterfreigegebenen Volume hinzufügen:
Get-ClusterResource -Name “VMs”| Add-ClusterSharedVolume
Hinweis: Wir können auch den Failover-Cluster-Manager verwenden, um eine Festplatte zum CSV hinzuzufügen:
- Überprüfen Sie den Zustand des clusterfreigegebenen Volumes mit dem Befehl get-clustersharedvolume.
Hinweis: Wenn Sie über eine Management-Arbeitsstation mit dem Failover-Cluster-Manager verbunden sind, können Sie mit der grafischen Benutzeroberfläche (GUI) auf die Speicherung zugreifen, indem Sie auf Windows Failover Cluster verbunden werden. Hier können Sie leicht die Festplatten einsehen und die ihnen zugewiesenen Rollen. Unten sehen wir sowohl das Quorum- als auch die VM-Festplatte, die als Clusterfreigabe definiert ist.
Ändern der Hyper-V-Speicherkonfiguration
Nachdem wir我们的 clustered shared volume eingerichtet haben, können wir unsere Hyper-V-Einstellungen ändern, um unseren Hyper-V-Cluster shared volume als Standard Ort für die Speicherung unserer VMs zu verwenden.
In den Hyper-V-Einstellungen für jeden Host ändern Sie den Ort der virtuellen Festplatten und den Ort der virtuellen Maschinen, indem Sie auf Ihre cluster shared volume verweisen, die auf Ihren Hyper-V-Hosts als C:\ClusterStorage\volume(x) definiert ist.
Erstellen einer hochverfügbaren VM
Jetzt können wir Failover Cluster Manager starten und die Erstellung einer hochverfügbaren VM beginnen.
- Klicken Sie mit der rechten Maustaste auf die Rollen und wählen Sie die Option, eine neue virtuelle Maschine zu erstellen.
- Wählen Sie den Hyper-V-Host (einen der Clusterknoten) für die virtuelle Maschine aus.
- Arbeiten Sie durch die Anweisungen des Neue virtuelle Maschine-Assistenten, um eine neue virtuelle Maschine bereit zu stellen.
- Während des Schritts Festplatte für virtuellen Arbeitsspeicher verknüpfen des Assistenten stellen Sie sicher, dass die virtuelle Maschine auf unserer Hyper-V-clustered shared volume erstellt wird.
- Der Schritt Zusammenfassung zeigt die von uns ausgewählten Optionen an.
- Wenn Sie auf Fertig klicken, zeigt der High Availability-Assistent die Zusammenfassung zur Aktivierung der Hochverfügbarkeit für die Rolle und die virtuelle Maschine an. Wie Sie sehen können, wurde sie erfolgreich aktiviert.
- Wenn Sie sich den Hochverfügbarkeitsbericht ansehen möchten, können Sie auf die Schaltfläche Bericht anzeigen klicken, die eine detailliertere Darstellung der Hochverfügbarkeitstests anzeigt.
Die Konfiguration des Hyper-V-Failoverclusters ist abgeschlossen, und wir haben jetzt eine hochverfügbare VM im Cluster. Sie können weitere VMs in Ihrem Cluster erstellen, um die Hyper-V-Hochverfügbarkeit zu nutzen.
Abschließende Gedanken
Hyper-V-Failoverclustering ermöglicht es Ihnen, die Ausfallzeiten von VMs im Falle eines Ausfalls zu reduzieren. Dies schützt jedoch nicht Ihre VM-Daten, wenn Sie keine häufigen Hyper-V-Clusterbackups haben. Da VMs zwischen Hosts im Hyper-V-Failovercluster migrieren können, kann die VM-Sicherung eine anspruchsvolle Aufgabe sein. Verwenden Sie die Lösung von NAKIVO und sichern Sie auch problemlos jene VMs, die im Cluster ausgeführt werden.