Hohe Verfügbarkeit von SAP ASCS/SCS-Instanzen mit Windows Server-Failoverclustering und gemeinsam genutztem Azure-Datenträger
Windows
Dieser Artikel konzentriert sich auf die Umstellung von einer einzelnen SAP ASCS/SCS-Installation auf die Konfiguration mehrerer SAP-System-IDs (SIDs), indem zusätzliche SAP ASCS/SCS-Clusterinstanzen in einem vorhandenen Windows Server Failover Clustering (WSFC)-Cluster mit einem gemeinsam genutzten Azure-Datenträger installiert werden. Wenn Sie diesen Vorgang abschließen, haben Sie einen SAP Multi-SID-Cluster konfiguriert.
Voraussetzungen und Einschränkungen
Sie können Azure Premium SSD-Datenträger als freigegebene Azure-Datenträger für die SAP ASCS/SCS-Instanz verwenden. Derzeit gelten die folgenden Einschränkungen:
- Azure Ultra Disk Storage-Datenträger und Azure Standard-SSD-Datenträger werden nicht als freigegebene Azure-Datenträger für SAP-Workloads unterstützt.
- Azure shared disks with Premium SSD disks are supported for SAP deployment in availability sets and availability zones.
- Azure shared disks with Premium SSD disks come with two storage options:
- Lokal redundanter Speicher (LRS) für freigegebene Premium-SSD-Datenträger (
skuName
Wert vonPremium_LRS
) wird mit der Bereitstellung in Verfügbarkeitsgruppen unterstützt. - Zonenredundanter Speicher (ZRS) für freigegebene Premium-SSD-Datenträger (
skuName
Wert vonPremium_ZRS
) wird mit der Bereitstellung in Verfügbarkeitszonen unterstützt.
- Lokal redundanter Speicher (LRS) für freigegebene Premium-SSD-Datenträger (
- Der freigegebene Azure-Datenträgerwert maxShares bestimmt, wie viele Clusterknoten den freigegebenen Datenträger verwenden können. Bei einer SAP ASCS/SCS-Instanz konfigurieren Sie in der Regel zwei Knoten in WSFC. Anschließend legen Sie den Wert auf
maxShares
2
. - Eine Azure-Näherungsgruppe (Proximity Placement Group, PPG) ist für azure shared disks nicht erforderlich. Beachten Sie jedoch für die SAP-Bereitstellung mit PPGs die folgenden Richtlinien:
- Wenn Sie PPGs für ein in einer Region bereitgestelltes SAP-System verwenden, müssen alle virtuellen Computer, die einen Datenträger gemeinsam nutzen, Teil desselben PPG sein.
- Wenn Sie PPGs für ein SAP-System verwenden, das über Zonen hinweg bereitgestellt wird, wie in Näherungsgruppen mit zonenübergreifenden Bereitstellungen beschrieben, können Sie Speicherplatz an virtuelle Computer anfügen
Premium_ZRS
, die einen Datenträger freigeben.
Weitere Informationen hierzu erfahren Sie im Abschnitt "Einschränkungen " der Dokumentation für freigegebene Azure-Datenträger.
Wichtige Überlegungen für freigegebene Premium-SSD-Datenträger
Beachten Sie die folgenden wichtigen Punkte zu freigegebenen Azure Premium SSD-Datenträgern:
LRS für freigegebene SSD-Festplatten für Premium:
- Die SAP-Bereitstellung mit LRS for Premium SSD shared disks arbeitet mit einem einzigen gemeinsam genutzten Azure-Datenträger auf einem Speichercluster. Wenn ein Problem mit dem Speichercluster auftritt, bei dem der freigegebene Azure-Datenträger bereitgestellt wird, wirkt sich dies auf Ihre SAP ASCS/SCS-Instanz aus.
ZRS für freigegebene SSD-Festplatten für Premium:
- Die Schreiblatenz für ZRS ist höher als die von LRS, da datenübergreifendes Kopieren von Daten überschritten wird.
- Der Abstand zwischen Verfügbarkeitszonen in verschiedenen Regionen variiert, sodass die ZRS-Datenträgerlatenz über Verfügbarkeitszonen hinweg erfolgt. Messen Sie Ihre Datenträger , um die Latenz von ZRS-Datenträgern in Ihrer Region zu identifizieren.
- ZRS for Premium SSD shared disks synchron repliziert Daten über drei Verfügbarkeitszonen in der Region. Wenn in einem der Speichercluster ein Problem auftritt, wird Ihre SAP ASCS/SCS-Instanz weiterhin ausgeführt, da das Speicherfailover für die Anwendungsschicht transparent ist.
- Weitere Informationen hierzu können Sie im Abschnitt "Einschränkungen " der Dokumentation zu ZRS für verwaltete Datenträger lesen.
Wichtig
Das Setup muss die folgenden Bedingungen erfüllen:
- Die SID für jedes Datenbankverwaltungssystem (DBMS) muss über einen eigenen dedizierten WSFC-Cluster verfügen.
- SAP-Anwendungsserver, die zu einer SAP-SID gehören, müssen über eigene dedizierte virtuelle Computer (VMs) verfügen.
- Eine Mischung aus Enqueue Replication Server 1 (ERS1) und Enqueue Replication Server 2 (ERS2) im selben Cluster wird nicht unterstützt.
Unterstützte Betriebssystemversionen
Windows Server 2016, 2019 und höher werden unterstützt. Verwenden Sie die neuesten Bilder des Rechenzentrums.
Aus diesen Gründen wird dringend empfohlen, mindestens Windows Server 2019 Datacenter zu verwenden:
- WSFC in Windows Server 2019 ist Azure bekannt.
- Windows Server 2019 Datacenter umfasst Integration und Bewusstsein für Azure-Host Standard Tenance und verbesserte Erfahrung durch Überwachung für geplante Azure-Ereignisse.
- Sie können verteilte Netzwerknamen verwenden. (Dies ist die Standardoption.) Für den Clusternetzwerknamen ist keine dedizierte IP-Adresse erforderlich. Außerdem müssen Sie keine IP-Adresse für einen internen Azure-Lastenausgleich konfigurieren.
Aufbau
Sowohl ERS1 als auch ERS2 werden in einer Multi-SID-Konfiguration unterstützt. Eine Mischung aus ERS1 und ERS2 wird im selben Cluster nicht unterstützt.
Das folgende Beispiel zeigt zwei SAP-SIDs. Beide haben eine ERS1-Architektur, in der:
SAP SID1 wird auf einem freigegebenen Datenträger mit ERS1 bereitgestellt. Die ERS-Instanz wird auf einem lokalen Host und auf einem lokalen Laufwerk installiert.
SAP SID1 verfügt über eine eigene virtuelle IP-Adresse (SID1 (A)SCS IP1), die auf dem internen Azure-Lastenausgleich konfiguriert ist.
SAP SID2 wird auf einem freigegebenen Datenträger mit ERS1 bereitgestellt. Die ERS-Instanz wird auf einem lokalen Host und auf einem lokalen Laufwerk installiert.
SAP SID2 verfügt über eine eigene virtuelle IP-Adresse (SID2 (A)SCS IP2), die im internen Azure-Lastenausgleich konfiguriert ist.
Das nächste Beispiel zeigt auch zwei SAP-SIDs. Beide verfügen über eine ERS2-Architektur, wobei:
SAP SID1 wird auf einem Shard-Datenträger mit ERS2 bereitgestellt, das gruppiert ist und auf einem lokalen Laufwerk bereitgestellt wird.
SAP SID1 verfügt über eine eigene virtuelle IP-Adresse (SID1 (A)SCS IP1), die auf dem internen Azure-Lastenausgleich konfiguriert ist.
SAP ERS2 verfügt über eine eigene virtuelle IP-Adresse (SID1 ERS2 IP2), die auf dem internen Azure-Lastenausgleich konfiguriert ist.
SAP SID2 wird auf einem Shard-Datenträger mit ERS2 bereitgestellt, das gruppiert ist und auf einem lokalen Laufwerk bereitgestellt wird.
SAP SID2 verfügt über eine eigene virtuelle IP-Adresse (SID2 (A)SCS IP3), die auf dem internen Azure-Lastenausgleich konfiguriert ist.
SAP ERS2 verfügt über eine eigene virtuelle IP-Adresse (SID2 ERS2 IP4), die auf dem internen Azure-Lastenausgleich konfiguriert ist.
Es gibt insgesamt vier virtuelle IP-Adressen:
- SID1 (A)SCS IP1
- SID2 ERS2 IP2
- SID2 (A)SCS IP3
- SID2 ERS2 IP4
Infrastrukturelle Vorbereitung
Sie installieren zusätzlich zur vorhandenen gruppierten SAP PR1 ASCS/SCS-Instanz eine neue SAP SID PR2-Instanz.
Hostnamen und IP-Adressen
Basierend auf Ihrem Bereitstellungstyp sollten die Hostnamen und die IP-Adressen des Szenarios wie die folgenden Beispiele aussehen.
Hier sind die Details für eine SAP-Bereitstellung in einem Azure-Verfügbarkeitssatz:
Hostnamenrolle | Hostname | Statische IP-Adresse | Verfügbarkeitsgruppe | Datenträgerwert SkuName |
---|---|---|---|---|
Erster ASCS-/SCS-Cluster des Clusterknotens | pr1-ascs-10 | 10.0.0.4 | pr1-ascs-avset | Premium_LRS |
Zweiter ASCS-/SCS-Cluster des Clusterknotens | pr1-ascs-11 | 10.0.0.5 | pr1-ascs-avset | |
Name des Clusternetzwerks: | pr1clust | 10.0.0.42 (nur für einen Windows Server 2016-Cluster) | Nicht zutreffend | |
Name des ASCS-Clusternetzwerks von SID1 | pr1-ascscl | 10.0.0.43 | Nicht zutreffend | |
Name des ERS-Clusternetzwerks von SID1 (nur für ERS2) | pr1-erscl | 10.0.0.44 | Nicht zutreffend | |
Name des ASCS-Clusternetzwerks von SID2 | pr2-ascscl | 10.0.0.45 | Nicht zutreffend | |
Name des ERS-Clusternetzwerks von SID2 (nur für ERS2) | pr1-erscl | 10.0.0.46 | Nicht zutreffend |
Hier sind die Details für eine SAP-Bereitstellung in Azure-Verfügbarkeitszonen:
Hostnamenrolle | Hostname | Statische IP-Adresse | Verfügbarkeitszone | Datenträgerwert SkuName |
---|---|---|---|---|
Erster ASCS-/SCS-Cluster des Clusterknotens | pr1-ascs-10 | 10.0.0.4 | AZ01 | Premium_ZRS |
Zweiter ASCS-/SCS-Cluster des Clusterknotens | pr1-ascs-11 | 10.0.0.5 | AZ02 | |
Name des Clusternetzwerks: | pr1clust | 10.0.0.42 (nur für einen Windows Server 2016-Cluster) | Nicht zutreffend | |
Name des ASCS-Clusternetzwerks von SID1 | pr1-ascscl | 10.0.0.43 | Nicht zutreffend | |
Name des ERS-Clusternetzwerks von SID2 (nur für ERS2) | pr1-erscl | 10.0.0.44 | Nicht zutreffend | |
Name des ASCS-Clusternetzwerks von SID2 | pr2-ascscl | 10.0.0.45 | Nicht zutreffend | |
Name des ERS-Clusternetzwerks von SID2 (nur für ERS2) | pr1-erscl | 10.0.0.46 | Nicht zutreffend |
Die Schritte in diesem Artikel sind für beide Bereitstellungstypen neu Standard identisch. Wenn Ihr Cluster jedoch in einem Verfügbarkeitssatz ausgeführt wird, müssen Sie LRS für freigegebene Azure Premium-SSD-Datenträger (Premium_LRS
) bereitstellen. Wenn Ihr Cluster in einer Verfügbarkeitszone ausgeführt wird, müssen Sie ZRS für freigegebene Azure Premium-SSD-Datenträger (Premium_ZRS
) bereitstellen.
Erstellen eines internen Azure-Lastenausgleichsmoduls
Für die Multi-Sid-Konfiguration von SAP SID, PR2, könnten Sie den gleichen internen Lastenausgleich verwenden, den Sie für SAP SID, PR1 System erstellt haben. Für die ENSA1-Architektur unter Windows benötigen Sie nur eine virtuelle IP-Adresse für SAP ASCS/SCS. Andererseits erfordert die ENSA2-Architektur zwei virtuelle IP-Adressen – eine für SAP ASCS und eine für ERS2.
Konfigurieren Sie zusätzliche Front-End-IP- und Lastenausgleichsregel für SAP SID, PR2-System auf dem vorhandenen Lastenausgleich mithilfe der folgenden Richtlinien. In diesem Abschnitt wird davon ausgegangen, dass die Konfiguration des standardmäßigen internen Lastenausgleichs für SAP SID, PR1 bereits vorhanden ist, wie im Erstellen des Lastenausgleichs beschrieben.
- Öffnen Sie den gleichen standardmäßigen internen Lastenausgleich, den Sie für SAP SID, PR1-System erstellt haben.
- Front-End-IP-Konfiguration: Erstellen sie frontend IP (Beispiel: 10.0.0.45).
- Back-End-Pool: Back-End-Pool ist identisch mit dem des SAP SID PR1-Systems.
- Eingehende Regeln: Erstellen einer Lastenausgleichsregel.
- Front-End-IP-Adresse: Frontend-IP auswählen
- Back-End-Pool: Back-End-Pool auswählen
- Überprüfen von "Ports für hohe Verfügbarkeit"
- Protokoll: TCP
- Integritätsuntersuchung: Erstellen einer Integritätssonde mit den folgenden Details
- Protokoll: TCP
- Port: [beispiel: 620<Instance-No.> for SAP SID, PR2 ASCS]
- Intervall: 5
- Probeschwellenwert: 2
- Leerlauftimeout (Minuten): 30
- Aktivieren von unverankerten IP-Adressen
- Gilt nur für die ENSA2-Architektur: Erstellen Sie zusätzliche Front-End-IP (10.0.0.44), Lastenausgleichsregel (verwenden Sie 621<Instanz-Nr.> für DEN ERS2-Integritätssondenport), wie in Punkt 1 und 3 beschrieben.
Hinweis
Die Konfigurationseigenschaft „numberOfProbes“ für Integritätstests (im Portal als „Fehlerschwellenwert“ bezeichnet) wird nicht berücksichtigt. Um die Anzahl der erfolgreichen oder fehlgeschlagenen aufeinanderfolgenden Probes zu steuern, legen Sie die Eigenschaft "probeThreshold" auf 2 fest. Es ist derzeit nicht möglich, diese Eigenschaft mit Azure-Portal festzulegen. Verwenden Sie daher entweder den Azure CLI- oder PowerShell-Befehl.
Wichtig
Eine unverankerte IP-Adresse wird in Szenarien zum Lastenausgleich nicht für eine Netzwerkschnittstelle Karte (NIC) sekundäre IP-Konfiguration unterstützt. Einzelheiten finden Sie unter Azure Load Balancer Einschränkungen. Wenn Sie zusätzliche IP-Adressen für die VM benötigen, stellen Sie eine zweite NIC bereit.
Hinweis
Wenn VMs ohne öffentliche IP-Adressen im Back-End-Pool einer internen Azure Load Balancer Standard-Instanz (ohne öffentliche IP-Adresse) platziert werden, besteht keine Internetkonnektivität in ausgehender Richtung, sofern Sie nicht durch zusätzliche Konfigurationsschritte das Routing an öffentliche Endpunkte zulassen. Ausführliche Informationen zum Erreichen ausgehender Konnektivität finden Sie unter Konnektivität mit öffentlichen Endpunkten für VMs mithilfe von Azure Load Balancer Standard in SAP-Szenarien mit Hochverfügbarkeit.
Erstellen und Anfügen eines zweiten freigegebenen Azure-Datenträgers
Führen Sie diesen Befehl auf einem der Clusterknoten aus. Passen Sie die Werte für Details wie Ihre Ressourcengruppe, Azure-Region und SAP-SID an.
$ResourceGroupName = "MyResourceGroup"
$location = "MyRegion"
$SAPSID = "PR2"
$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"
$NumberOfWindowsClusterNodes = 2
# For SAP deployment in an availability set, use this storage SkuName value
$SkuName = "Premium_LRS"
# For SAP deployment in an availability zone, use this storage SkuName value
$SkuName = "Premium_ZRS"
$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig
##################################
## Attach the disk to cluster VMs
##################################
# ASCS cluster VM1
$ASCSClusterVM1 = "pr1-ascs-10"
# ASCS cluster VM2
$ASCSClusterVM2 = "pr1-ascs-11"
# Next free LUN
$LUNNumber = 1
# Add the Azure shared disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $LUNNumber
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose
# Add the Azure shared disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $LUNNumber
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose
Formatieren des freigegebenen Datenträgers mithilfe von PowerShell
Rufen Sie die Datenträgernummer ab. Führen Sie diese PowerShell-Befehle auf einem der Clusterknoten aus:
Get-Disk | Where-Object PartitionStyle -Eq "RAW" | Format-Table -AutoSize # Example output # Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition Style # ------ ------------- ------------- ------------ ----------------- ---------- --------------- # 3 Msft Virtual Disk Healthy Online 512 GB RAW
Formatieren Sie den Datenträger. In diesem Beispiel ist die Datenträgernummer 3:
# Format SAP ASCS disk number 3, with drive letter S $SAPSID = "PR2" $DiskNumber = 3 $DriveLetter = "S" $DiskLabel = "$SAPSID" + "SAP" Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose # Example outout # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size # ----------- --------------- ---------- --------- ------------ ----------------- ------------- ---- # S PR2SAP ReFS Fixed Healthy OK 504.98 GB 511.81 GB
Stellen Sie sicher, dass der Datenträger jetzt als Clusterdatenträger sichtbar ist:
# List all disks Get-ClusterAvailableDisk -All # Example output # Cluster : pr1clust # Id : c469b5ad-d089-4d8f-ae4c-d834cbbde1a2 # Name : Cluster Disk 2 # Number : 3 # Size : 549755813888 # Partitions : {\\?\GLOBALROOT\Device\Harddisk3\Partition2\}
Registrieren Sie den Datenträger im Cluster:
# Add the disk to the cluster Get-ClusterAvailableDisk -All | Add-ClusterDisk # Example output # Name State OwnerGroup ResourceType # ---- ----- ---------- ------------ # Cluster Disk 2 Online Available Storage Physical Disk
Erstellen eines virtuellen Hostnamens für die SAP ASCS/SCS-Clusterinstanz
Erstellen Sie einen DNS-Eintrag für den virtuellen Hostnamen der neuen SAP ASCS/SCS-Instanz im Windows-DNS-Manager.
Die IP-Adresse, die Sie dem virtuellen Hostnamen in DNS zugewiesen haben, muss mit der IP-Adresse übereinstimmen, die Sie in Azure Load Balancer zugewiesen haben.
Wenn Sie eine clusterierte Instanz von SAP ERS2 verwenden, müssen Sie in DNS einen virtuellen Hostnamen für ERS2 reservieren.
Die IP-Adresse, die Sie dem virtuellen Hostnamen für ERS2 in DNS zugewiesen haben, muss mit der IP-Adresse übereinstimmen, die Sie in Azure Load Balancer zugewiesen haben.
Wählen Sie zum Definieren der IP-Adresse, die dem virtuellen Hostnamen zugewiesen ist, die Option DNS-Manager>Domäne.
SAP-Installation
Installieren des ersten SAP-Clusterknotens
Befolgen Sie das von SAP beschriebene Installationsverfahren. Stellen Sie sicher, dass Sie "First Cluster Node" als Option zum Starten der Installation auswählen. Wählen Sie den freigegebenen Clusterdatenträger als Konfigurationsoption aus. Wählen Sie den neu erstellten freigegebenen Datenträger aus.
Ändern des SAP-Profils der ASCS/SCS-Instanz
Wenn Sie ERS1 ausführen, fügen Sie den SAP-Profilparameter enque/encni/set_so_keepalive
hinzu. Der Profilparameter verhindert, dass Verbindungen zwischen SAP-Arbeitsprozessen und dem Enqueue-Server geschlossen werden, wenn sie zu lang im Leerlauf sind. Der SAP-Parameter ist für ERS2 nicht erforderlich.
Fügen Sie diesen Profilparameter zum SAP ASCS/SCS-Instanzprofil hinzu, wenn Sie ERS1 verwenden:
enque/encni/set_so_keepalive = true
Stellen Sie sowohl für ERS1 als auch für ERS2 sicher, dass die
keepalive
-Parameter für das Betriebssystem wie im SAP-Hinweis 1410736 beschrieben festgelegt sind.Um die Änderungen auf den SAP-Profilparameter anzuwenden, starten Sie die SAP ASCS/SCS-Instanz neu.
Konfigurieren eines Probeports für die Clusterressource
Nutzen Sie die Testfunktionalität des internen Lastenausgleichs, damit die gesamte Clusterkonfiguration mit Azure Load Balancer funktioniert. Der interne Azure Load Balancer verteilt in der Regel die eingehende Workload gleichmäßig auf die beteiligten virtuellen Computer.
Dieser Ansatz funktioniert jedoch in einigen Clusterkonfigurationen nicht, da nur eine Instanz aktiv ist. Die andere Instanz ist passiv und kann daher keine Workload annehmen. Eine Probefunktion hilft, wenn der interne Azure-Lastenausgleich erkennt, welche Instanz aktiv ist und nur auf die aktive Instanz ausgerichtet ist.
Wichtig
In dieser Beispielkonfiguration wird der Probeport auf 620nr festgelegt. Für SAP ASCS mit Instanznummer 02 ist es 62002.
Sie müssen die Konfiguration so anpassen, dass sie Ihren SAP-Instanzennummern und Ihrer SAP-SID entspricht.
Um einen Probeport hinzuzufügen, führen Sie dieses PowerShell-Modul auf einem der Cluster-VMs aus:
Wenn Sie SAP ASC/SCS mit Instanznummer 02 verwenden:
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID PR2 -ProbePort 62002
Wenn Sie ERS2 mit Instanznummer 12 verwenden, konfigurieren Sie einen Probeport. Es ist nicht erforderlich, einen Probeport für ERS1 zu konfigurieren. ERS2 mit Instanznummer 12 ist gruppiert, während ERS1 nicht gruppiert ist.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID PR2 -ProbePort 62012 -IsSAPERSClusteredInstance $True
Der Code für die Funktion Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource
sieht wie im folgenden Beispiel aus:
function Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource {
<#
.SYNOPSIS
Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer health probe port on the SAP $SAPSID IP cluster resource.
.DESCRIPTION
Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer health probe port on the SAP $SAPSID IP cluster resource.
It will also restart the SAP cluster group (default behavior), to activate the changes.
You need to run it on one of the SAP ASCS/SCS Windows cluster nodes.
The expectation is that the SAP group is installed with the official SWPM installation tool, which will set the default expected naming convention for:
- SAP cluster group: SAP $SAPSID
- SAP cluster IP address resource: SAP $SAPSID IP
.PARAMETER SAPSID
SAP SID - three characters, starting with a letter.
.PARAMETER ProbePort
Azure Load Balancer health check probe port.
.PARAMETER RestartSAPClusterGroup
Optional parameter. Default value is $True, so the SAP cluster group will be restarted to activate the changes.
.PARAMETER IsSAPERSClusteredInstance
Optional parameter. Default value is $False.
If it's set to $True, then handle the clustered new SAP ERS2 instance.
.EXAMPLE
# Set the probe port to 62000 on SAP cluster resource SAP AB1 IP, and restart the SAP cluster group SAP AB1 to activate the changes.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000
.EXAMPLE
# Set the probe port to 62000 on SAP cluster resource SAP AB1 IP. SAP cluster group SAP AB1 is not restarted, so the changes are not active.
# To activate the changes, you need to manually restart the SAP AB1 cluster group.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -RestartSAPClusterGroup $False
.EXAMPLE
# Set the probe port to 62001 on SAP cluster resource SAP AB1 ERS IP. SAP cluster group SAP AB1 ERS is restarted to activate the changes.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -IsSAPERSClusteredInstance $True
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[ValidateLength(3,3)]
[string]$SAPSID,
[Parameter(Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[int] $ProbePort,
[Parameter(Mandatory=$False)]
[bool] $RestartSAPClusterGroup = $True,
[Parameter(Mandatory=$False)]
[bool] $IsSAPERSClusteredInstance = $False
)
BEGIN{}
PROCESS{
try{
if($IsSAPERSClusteredInstance){
#Handle clustered SAP ERS instance
$SAPClusterRoleName = "SAP $SAPSID ERS"
$SAPIPresourceName = "SAP $SAPSID ERS IP"
}else{
#Handle clustered SAP ASCS/SCS instance
$SAPClusterRoleName = "SAP $SAPSID"
$SAPIPresourceName = "SAP $SAPSID IP"
}
$SAPIPResourceClusterParameters = Get-ClusterResource $SAPIPresourceName | Get-ClusterParameter
$IPAddress = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Address" }).Value
$NetworkName = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Network" }).Value
$SubnetMask = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "SubnetMask" }).Value
$OverrideAddressMatch = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "OverrideAddressMatch" }).Value
$EnableDhcp = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "EnableDhcp" }).Value
$OldProbePort = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "ProbePort" }).Value
$var = Get-ClusterResource | Where-Object { $_.name -eq $SAPIPresourceName }
#Write-Host "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:" -ForegroundColor Cyan
Write-Output "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:"
Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
Write-Output " "
Write-Output "Current probe port property of the SAP cluster resource '$SAPIPresourceName' is '$OldProbePort'."
Write-Output " "
Write-Output "Setting the new probe port property of the SAP cluster resource '$SAPIPresourceName' to '$ProbePort' ..."
Write-Output " "
$var | Set-ClusterParameter -Multiple @{"Address"=$IPAddress;"ProbePort"=$ProbePort;"Subnetmask"=$SubnetMask;"Network"=$NetworkName;"OverrideAddressMatch"=$OverrideAddressMatch;"EnableDhcp"=$EnableDhcp}
Write-Output " "
#$ActivateChanges = Read-Host "Do you want to take restart SAP cluster role '$SAPClusterRoleName', to activate the changes (yes/no)?"
if($RestartSAPClusterGroup){
Write-Output ""
Write-Output "Activating changes..."
Write-Output " "
Write-Output "Taking SAP cluster IP resource '$SAPIPresourceName' offline ..."
Stop-ClusterResource -Name $SAPIPresourceName
sleep 5
Write-Output "Starting SAP cluster role '$SAPClusterRoleName' ..."
Start-ClusterGroup -Name $SAPClusterRoleName
Write-Output "New ProbePort parameter is active."
Write-Output " "
Write-Output "New configuration parameters for SAP IP cluster resource '$SAPIPresourceName':"
Write-Output " "
Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
}else
{
Write-Output "SAP cluster role '$SAPClusterRoleName' is not restarted, therefore changes are not activated."
}
}
catch{
Write-Error $_.Exception.Message
}
}
END {}
}
Fortfahren mit der SAP-Installation
Installieren Sie die Datenbankinstanz, indem Sie den im SAP-Installationshandbuch beschriebenen Prozess ausführen.
Installieren Sie SAP auf dem zweiten Clusterknoten, indem Sie die im SAP-Installationshandbuch beschriebenen Schritte ausführen.
Installieren Sie die SAP Primary Application Server (PAS)-Instanz auf dem virtuellen Computer, der für die Hostung des PAS festgelegt ist.
Führen Sie das im SAP-Installationshandbuch beschriebene Verfahren aus. Es gibt keine Abhängigkeiten in Azure.
Installieren Sie zusätzliche SAP-Anwendungsserver auf den virtuellen Computern, die für die Hostung von SAP-Anwendungsserverinstanzen vorgesehen sind.
Führen Sie das im SAP-Installationshandbuch beschriebene Verfahren aus. Es gibt keine Abhängigkeiten in Azure.
Testen des SAP ASCS/SCS-Instanzfailovers
Bei den beschriebenen Failovertests wird davon ausgegangen, dass SAP ASCS auf Knoten A aktiv ist.
Stellen Sie sicher, dass das SAP-System erfolgreich von Knoten A zu Knoten B fehlschlagen kann. In diesem Beispiel gilt der Test für SAP SID PR2.
Stellen Sie sicher, dass jede SAP-SID erfolgreich zum anderen Clusterknoten wechseln kann. Wählen Sie eine dieser Optionen, um ein Failover der SAP-Clustergruppe <SID> von Clusterknoten A auf Clusterknoten B auszulösen:
- Failovercluster-Manager
- PowerShell-Befehle für Failovercluster
$SAPSID = "PR2" # SAP <SID> $SAPClusterGroup = "SAP $SAPSID" Move-ClusterGroup -Name $SAPClusterGroup
Starten Sie Clusterknoten A unter dem Windows-Gastbetriebssystem neu. In diesem Schritt wird ein automatisches Failover der SAP <SID-Clustergruppe> von Knoten A zu Knoten B initiiert.
Starten Sie Clusterknoten A im Azure-Portal neu. In diesem Schritt wird ein automatisches Failover der SAP <SID-Clustergruppe> von Knoten A zu Knoten B initiiert.
Starten Sie Clusterknoten A mit Azure PowerShell neu. In diesem Schritt wird ein automatisches Failover der SAP <SID-Clustergruppe> von Knoten A zu Knoten B initiiert.