Windows Server-Failovercluster in Microsoft Azure. Netzwerk

Ursprünglicher Autor: Mario Liu
  • Übersetzung
Vorwort In diesem Beitrag wird das Thema zum Erstellen eines Windows Server-Failoverclusters in der Microsoft Azure Cloud fortgesetzt . Dieses Mal dreht sich das Gespräch um das Netzwerk.



Hallo Fans der Cluster. In meinem vorherigen Artikel habe ich dargelegt, wie Sie die Einschränkungen der Microsoft Azure IaaS-Umgebung umgehen können, wenn Sie ein Data Warehouse für einen Microsoft Windows-Failovercluster vorbereiten. Lassen Sie uns über einen weiteren wichtigen Teil der Clusterbildung sprechen - das Netzwerk.



Bevor wir beginnen, listen wir einige grundlegende Netzwerkkonzepte in Azure auf. Die folgenden Begriffe werden für einen Artikel zum Erstellen eines Clusters benötigt:

VIP (Virtual IP Address) : Die öffentliche IP-Adresse des Cloud-Dienstes. Es wird auch vom Azure-Lastenausgleich verwendet, der den Datenverkehr verteilt, bevor er an die virtuelle Maschine geleitet wird.

DIP (Dynamic IP Address) : Interne IP-Adresse, die von der virtuellen Maschine von Microsoft Azure DHCP empfangen wurde.

Interner Load Balancer : Ein interner Microsoft Azure-Balancer, der den Datenverkehr zwischen virtuellen Maschinen innerhalb eines VNET- oder Cloud-Dienstes verteilt.

Endpunkt : Ordnet einen VIP / DIP + -Port auf einer virtuellen Maschine einem Port auf dem Azure Load Balancer für externen Datenverkehr oder einem internen Load Balancer für Datenverkehr innerhalb von VNET (oder einem Clouddienst) zu.

Weitere Informationen zu diesen Azure-Begriffen und -Netzwerken finden Sie in diesem Blog:
VIPs, DIPs und PIPs in Microsoft Azure
http://blogs.msdn.com/b/cloud_solution_architect/archive/2014/11/08/vips-dips-and -pips-in-microsoft-azure.aspx

OK, genug Theorie. Das Data Warehouse ist fertig und wir wissen, wie Netzwerke in Azure funktionieren. Sind wir bereit, einen Cluster zu erstellen? Ja

Anstatt den Failover-Cluster-Manager zu verwenden, empfehle ich, beim Erstellen des Clusters das Cmdlet New-Cluster zu verwenden und eine statische IP-Adresse anzugeben. Mit dieser Methode können Sie alle Knoten des Clusters hinzufügen und die IP-Adresseinstellungen einfacher nachvollziehen, ohne zusätzliche Aktionen über den Failover-Cluster-Manager ausführen zu müssen.

New-Cluster -Name DEMOCLUSTER -Node node1,node2 -StaticAddress 10.0.0.7


Bitte beachten Sie : Die vom Cluster Name Object (CNO) zugewiesene statische IP-Adresse ist nicht für die Netzwerkkommunikation vorgesehen. Es ist erforderlich, um die für die Aktivierung von CNO erforderliche Abhängigkeit zu erfüllen. Sie können diese Adresse beispielsweise nicht pingen, den DNS-Namen nicht auflösen und CNO nicht für die Verwaltung verwenden, da die Adresse nicht verfügbar ist.

Wenn Sie PowerShell aus irgendeinem Grund nicht verwenden möchten oder die Verwendung von Failover-Cluster-Manager gewohnt sind, müssen Sie einige zusätzliche Schritte ausführen. Der Unterschied bei der Verwendung von Failover-Cluster-Manager anstelle von PowerShell besteht darin, dass Sie einen Cluster mit einem Knoten erstellen und später einen zweiten hinzufügen müssen. Der Grund dafür ist, dass CNO nicht aktiviert werden kann, da von Azure DHCP keine eindeutige IP-Adresse abgerufen werden kann. Stattdessen hat der CNO bei der Erstellung über den Failover-Cluster-Manager dieselbe IP-Adresse wie der Knoten, auf dem sich die CNO-Ressource befindet. Diese Adresse ermöglicht keine Aktivierung des Clusters, da dies als Duplikat betrachtet wird (es stellt sich schließlich heraus, dass im Netzwerk zwei Objekte mit derselben Adresse vorhanden sind). Um dieses Problem zu lösen, müssen Sie, wie oben erwähnt, einen Cluster mit einem Knoten erstellen und dann manuell eine neue Adresse für CNO festlegen.

Beispiel:

CNO DEMOCLUSTER ist inaktiv, weil auf die IP-Adresse, von der es abhängt, nicht zugegriffen werden kann. Der Grund ist, dass CNO bei 10.0.0.4 einen Konflikt erhält, da er bereits von der virtuellen Maschine selbst belegt ist.

Bild


Um dies zu beheben, müssen Sie in den Ressourceneinstellungen eine andere nicht belegte Adresse aus demselben Subnetz festlegen, z. B. 10.0.0.7.

Bild


Danach können wir die CNO-Ressource aktivieren.

Bild


Jetzt können wir unserem Cluster einen zweiten Knoten hinzufügen.

Wenn unser Cluster fertig ist, können wir ihm einen neuen Service hinzufügen. Für diesen Artikel verwende ich die Dateiserverrolle, da sie gleichzeitig eine der gebräuchlichsten und verständlichsten ist.

Hinweis : Aus Gründen der Leistung oder der Kostenbeschränkung wird die Verwendung eines Cluster-Dateiservers in Azure nicht empfohlen.

Im Gegensatz zu Clustern, die Sie lokal bereitstellen, wird empfohlen, alle Knoten zu stoppen und nur einen aktiv zu lassen. Dies ist erforderlich, um eine Situation zu vermeiden, in der die Rolle zwischen Knoten verschoben wird, da der VCO (Virtual Computer Object) der Server automatisch dieselbe IP-Adresse erhält wie der Clusterknoten, auf dem er sich befindet, und die Verbindung damit getrennt wird Fehler und bewegen Sie sich zum nächsten Knoten. Die Situation ist völlig ähnlich wie bei CNO.

Der Screenshot unten zeigt das Ergebnis (wir haben unserem Cluster die IP-Adresse 10.0.0.8 zugewiesen)

Bild


Denken Sie daran, dass dies immer noch dieselbe temporäre IP-Adresse ist, die wir zum Aktivieren des Clusters verwenden. Keine virtuelle Maschine in unserem Netzwerk außer dem Clusterknoten selbst kann unter dieser Adresse auf den Cluster zugreifen. Das Azure-Netzwerk funktioniert so, dass der gesamte Datenverkehr von der virtuellen Maschine dorthin zurückgeleitet wird.

Der Spaß beginnt. Wir müssen den Azure Load Balancer verwenden, damit diese Adresse zum Verbinden von Clients mit unserem Cluster verwendet werden kann.

Load Balancer ist eine Netzwerkressource in Azure, die den Datenverkehr zwischen verschiedenen virtuellen Maschinen verteilt. Die Load-Balancer-Adresse kann entweder ein externer VIP oder ein interner DIP sein. Jede virtuelle Maschine muss einen eigenen Endpunkt haben, an den der Load Balancer-Datenverkehr geleitet wird. Endpoint verfügt über zwei Arten von Ports. Das erste sind reguläre Ports für die Client-Server-Interaktion. Beispiel: Port 445 für SMB auf einem Dateiserver oder Port 80 für HTTP auf einem Webserver. Der zweite Porttyp ist Probe (der Standardport ist 59999). Die Aufgabe dieses Ports besteht darin, zu bestimmen, welcher der Clusterknoten der aktive VCO-Inhaber ist. Load Balancer fragt regelmäßig alle Clusterknoten über Probe ab (das Standard-Scanintervall beträgt 10 Sekunden). Sie müssen wissen, welche Ports die Anwendung oder der Dienst verwenden, die bzw. der Sie auf Ihrem Cluster hosten möchten. da müssen Sie diese Ports in den Endpoint-Einstellungen angeben und dort den Probe-Port hinzufügen. Danach müssen Sie diesen Probe-Port zu den VCO-Adresseinstellungen hinzufügen. Infolgedessen leitet der Load Balancer den Datenverkehr an den entsprechenden Serverport, auf dem VCO aktiv ist. Dies muss mithilfe von PowerShell erfolgen.

Hinweis : Zum Zeitpunkt der Erstellung dieses Dokuments unterstützt Microsoft nur eine Clusterressourcengruppe im aktiven / passiven Modus. Der Grund ist, dass VCO nur die IP-Adresse des Cloud-Dienstes (VIP) oder die IP-Adresse des internen Load Balancers verwenden kann. Diese Einschränkung gilt weiterhin, obwohl Sie im Cloud-Dienst jetzt mehrere VIP-Adressen erstellen können.

Das folgende Diagramm zeigt die Funktionsweise des Internal Load Balancer (ILB):
Bild


In unserem Beispiel wird ein Dateicluster erstellt, sodass der Port für den Endpunkt 445 lautet. Als ILB-Adresse wird 10.0.0.8 ausgewählt. Mal sehen, wie man es einrichtet.

Schritt 1: Hinzufügen des Clusters zum Clouddienst

Diese Befehle werden auf dem Computer ausgeführt, auf dem Sie die Microsoft Azure-Umgebung verwalten.

# Определяем переменные
$ServiceName = "demovm1-3va468p3" # имя облачной службы, в которой находятся узлы кластера. Это имя уникально. Вы можете посмотреть его на портале или, как в примере ниже, с помощью PowerShell командлета get-azurevm.

Bild

$ILBName = "DEMOILB" # имя для новогоILB
$SubnetName = "Subnet-1" # имя подсети для наших виртуальных машин
$ILBStaticIP = "10.0.0.8" # статический IP адрес для ILB
# Создаём ILB, используя заданные параметры
Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ILBName -SubnetName $SubnetName -ServiceName $ServiceName -StaticVNetIPAddress $ILBStaticIP
# Проверяем результат
Get-AzureInternalLoadBalancer –servicename $ServiceName

Bild


Schritt 2: Konfigurieren Sie den Endpunkt für jeden Knoten mit ILB.

Diese Befehle werden auf dem Computer ausgeführt, mit dem Sie die Microsoft Azure-Umgebung verwalten.

# Определяем переменные
$VMNodes = "DEMOVM1", “DEMOVM2" # имена кластерных узлов, через запятую
$EndpointName = "SMB" # имя для нового endpoint
$EndpointPort = "445" # public port для endpoint (в нашем случае - порт SMB)
# Добавляем endpoint с портом 445 и probe портом 59999 для каждого кластерного узла. Эта операция займёт некоторое время. Обратите внимание на параметр ProbeIntervalInSeconds. Именно он определяет с какой частотой Load Balancer будет опрашивать кластерные узлы.
ForEach ($node in $VMNodes)
{
Get-AzureVM -ServiceName $ServiceName -Name $node | Add-AzureEndpoint -Name $EndpointName -LBSetName "$EndpointName-LB" -Protocol tcp -LocalPort $EndpointPort -PublicPort $EndpointPort -ProbePort 59999 -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -InternalLoadBalancerName $ILBName -DirectServerReturn $true | Update-AzureVM
}
# Проверяем результат
ForEach ($node in $VMNodes)
{
Get-AzureVM –ServiceName $ServiceName –Name $node | Get-AzureEndpoint | where-object {$_.name -eq "smb"}
}


Bild


Schritt 3: Aktualisieren Sie die Einstellungen der VCO-IP-Adresse mit dem ausgewählten Probe-Port.

Diese Befehle werden auf dem Clusterknoten ausgeführt. Option für Windows Server 2008 R2 :

# Определяем переменные
$ClusterNetworkName = "Cluster Network 1" # имя сети кластера (используйте командлет Get-ClusterNetwork или GUI, чтобы найти это имя)
$IPResourceName = “IP Address 10.0.0.0" # the IP Address resource name (Use get-clusterresource | where-object {$_.resourcetype -eq "IP Address"} or GUI to find the name)
$ILBIP = “10.0.0.8” #  IP адрес ILB
# Обновим настройки IP адреса VCO, для работы с ILB
cluster res $IPResourceName /priv enabledhcp=0 overrideaddressmatch=1 address=$ILBIP probeport=59999  subnetmask=255.255.255.255


Option für Windows Server 2012/2012 R2 :

# Определяем переменные
$ClusterNetworkName = "Cluster Network 1" # имя сети кластера (используйте командлет Get-ClusterNetwork или GUI, чтобы найти это имя)
$IPResourceName = “IP Address 10.0.0.0" # имя ресурса IP адреса (используйте командлет get-clusterresource | where-object {$_.resourcetype -eq "IP Address"} или GUI, чтобы найти это имя)
$ILBIP = “10.0.0.8” # IP адрес ILB
$params = @{"Address"="$ILBIP"; 
          "ProbePort"="59999"; 
          "SubnetMask"="255.255.255.255"; 
          "Network"="$ClusterNetworkName"; 
          "OverrideAddressMatch"=1; 
          "EnableDhcp"=0}
# Обновим настройки IP адреса VCO, для работы с ILB
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple $params


Das Ergebnis sollte ungefähr so ​​aussehen:
Bild


Deaktivieren und aktivieren Sie die Cluster-IP-Adressressource erneut und starten Sie die Cluster-Rolle.

Ihre ILB ist jetzt der VCO-IP-Adresse zugeordnet. Als letztes müssen Sie die Windows-Firewall konfigurieren. Sie müssen Regeln konfigurieren, um Verbindungen an Port 59999 (oder dem von Ihnen ausgewählten) auf allen Knoten in Ihrem Cluster zuzulassen. Das ist alles. Ihr Cluster ist einsatzbereit. Beachten Sie, dass die erste Verbindung zum VCO oder der Versuch, unmittelbar nach der Übertragung von Rollen von einem Knoten auf einen anderen eine Verbindung zum VCO herzustellen, bis zu 10 Sekunden dauern kann. Dies ist auf den Wert des Parameters ProbeIntervalInSeconds zurückzuführen , den wir zuvor festgelegt haben.

In unserem Beispiel haben wir die interne IP-Adresse 10.0.0.8 für VCO gewählt. Wenn Sie Ihren VCO extern zugänglich machen möchten, können Sie die externe IP-Adresse des Cloud-Dienstes (VIP) verwenden. Die Schritte sind identisch und noch einfacher, da Sie Schritt 1 überspringen können (Azure Load Balancer wird für VIP bereits verwendet). Sie müssen lediglich einen Endpunkt mit den erforderlichen Ports auf jedem Clusterknoten erstellen (Schritt 2) und die VCO-IP-Adresse konfigurieren (Schritt 3). Denken Sie daran, dass Sie die Sicherheitseinstellungen des Clusters genauer beachten sollten, wenn Sie von außen auf den Cluster zugreifen können.

Großartig! Sie haben Ihren Cluster in Azure IaaS erstellt. Es ist ziemlich lange her, aber ich hoffe, Sie waren interessiert und haben etwas Nützliches gelernt. Fühlen Sie sich frei, mir Fragen in den Kommentaren zu stellen.

Viel Glück mit den Clustern!

Mario Liu
Support-Eskalationsingenieur
CSS Americas | WINDOWS | HOHE VERFÜGBARKEIT

Jetzt auch beliebt: