Multi-SID-Hochverfügbarkeit für SAP ASCS/SCS-Instanzen unter Verwendung von Windows Server-Failoverclustering und freigegebene Datenträger in Azure

Windows OS Windows

Wenn Sie über eine SAP-Bereitstellung verfügen, müssen Sie einen internen Lastenausgleich verwenden, um eine Windows-Clusterkonfiguration für SAP Central Services-Instanzen (ASCS/SCS) zu erstellen.

Dieser Artikel behandelt den Wechsel von einer ASCS/SCS-Einzelinstallation zu einer SAP-Multi-SID-Konfiguration. Zu diesem Zweck werden zusätzliche SAP ASCS/SCS-Clusterinstanzen in einem vorhandenen WSFC-Cluster (Windows Server-Failoverclustering) mit freigegebenem Datenträger installiert. Zum Simulieren des freigegebenen Datenträgers wird SIOS verwendet. Wenn dieser Vorgang abgeschlossen ist, haben Sie einen SAP Multi-SID-Cluster konfiguriert.

Hinweis

Diese Funktion ist nur im Azure Resource Manager-Bereitstellungsmodell verfügbar.

Es besteht eine Höchstgrenze für die Anzahl privater Front-End-IPs für jeden internen Azure-Lastenausgleich.

Dies bedeutet, dass die maximale Anzahl von SAP ASCS/SCS-Instanzen auf einem WSFC-Cluster gleich der maximalen Anzahl privater Front-End-IPs pro internem Azure-Lastenausgleichsmodul ist.

Weitere Informationen zu den Grenzwerten für Lastenausgleichsmodule finden Sie im Abschnitt „Private Front-End-IP pro Lastenausgleichsmodul“ unter Netzwerkgrenzwerte: Azure Resource Manager.

Wichtig

Floating IP-Adressen werden in IP-Konfigurationen mit zwei NICs in Szenarien mit Lastenausgleich nicht unterstützt. Weitere Informationen 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

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Sie haben bereits einen WSFC-Cluster für die Verwendung einer SAP ASCS/SCS-Instanz unter Verwendung einer Dateifreigabe konfiguriert, wie in diesem Diagramm dargestellt.

High-availability SAP ASCS/SCS instance

Wichtig

Das Setup muss die folgenden Bedingungen erfüllen:

  • Die SAP ASCS/SCS-Instanzen müssen sich den gleichen WSFC-Cluster teilen.
  • Jede SID eines Datenbank-Verwaltungssystems (DBMS) muss über ihren eigenen dedizierten WSFC-Cluster verfügen.
  • SAP-Anwendungsserver, die zur gleichen SAP-System-SID gehören, müssen eigene dedizierte VMs aufweisen.
  • Eine Kombination von Enqueue Replication Server 1 und Enqueue Replication Server 2 im gleichen Cluster wird nicht unterstützt.

Multi-SID-Architektur für SAP ASCS/SCS-Instanzen mit freigegebenem Datenträger

Das Ziel besteht darin, mehrere SAP ABAP ASCS- oder SAP Java SCS-Clusterinstanzen auf dem gleichen WSFC-Cluster zu installieren, wie hier gezeigt:

Multiple SAP ASCS/SCS clustered instances in Azure

Weitere Informationen zu den Grenzwerten für Lastenausgleichsmodule finden Sie im Abschnitt „Private Front-End-IP pro Lastenausgleichsmodul“ unter Netzwerkgrenzwerte: Azure Resource Manager.

Die vollständige Szene mit zwei hoch verfügbaren SAP-Systemen sieht dann so aus:

SAP high-availability multi-SID setup with two SAP system SIDs

Vorbereiten der Infrastruktur für ein SAP-Multi-SID-Szenario

Um Ihre Infrastruktur vorzubereiten, können Sie mit den folgenden Parametern eine zusätzliche SAP ASCS/SCS-Instanz installieren:

Parametername Wert
SAP ASCS/SCS-SID pr1-lb-ascs
Interner Load Balancer für das SAP-DBMS PR5
Name des virtuellen SAP-Hosts pr5-sap-cl
IP-Adresse des virtuellen SAP ASCS/SCS-Hosts (zusätzliche IP-Adresse für den Azure-Lastenausgleich) 10.0.0.50
SAP ASCS/SCS-Instanznummer 50
ILB-Testport für die zusätzliche SAP ASCS/SCS-Instanz 62350

Hinweis

Bei SAP ASCS/SCS-Clusterinstanzen ist für jede IP-Adresse ein eindeutiger Testport erforderlich. Wenn für eine IP-Adresse eines internen Azure-Lastenausgleichsmoduls beispielsweise der Testport 62300 verwendet wird, können keine anderen IP-Adressen des Lastenausgleichsmoduls den Testport 62300 nutzen.

Für unsere Zwecke verwenden wir Testport 62350, da Testport 62300 bereits reserviert ist.

Sie können eine zusätzliche SAP ASCS/SCS-Instanz auf dem vorhandenen WSFC-Cluster mit zwei Knoten installieren:

Rolle für virtuellen Computer Hostname für virtuellen Computer Statische IP-Adresse
Erster Clusterknoten für die ASCS/SCS-Instanz pr1-ascs-0 10.0.0.10
Zweiter Clusterknoten für die ASCS/SCS-Instanz pr1-ascs-1 10.0.0.9

Erstellen eines virtuellen Hostnamens für die SAP ASCS/SCS-Clusterinstanz auf dem DNS-Server

Sie können einen DNS-Eintrag für den virtuellen Hostnamen der ASCS/SCS-Instanz mit den folgenden Parametern erstellen:

Neuer virtueller SAP ASCS/SCS-Hostname Zugeordnete IP-Adresse
pr5-sap-cl 10.0.0.50

Der neue Hostname und die neue IP-Adresse werden im DNS-Manager angezeigt, wie im folgenden Screenshot dargestellt:

DNS Manager list highlighting the defined DNS entry for the new SAP ASCS/SCS cluster virtual name and TCP/IP address

Hinweis

Die neue IP-Adresse, die Sie dem virtuellen Hostnamen der zusätzlichen ASCS/SCS-Instanz zuweisen, muss mit der neuen IP-Adresse identisch sein, die Sie dem SAP-Azure-Lastenausgleichsmodul zugeordnet haben.

In diesem Szenario ist die IP-Adresse 10.0.0.50.

Hinzufügen einer IP-Adresse zu einem vorhandenen internen Azure-Lastenausgleichsmodul mit PowerShell

Um mehrere SAP ASCS/SCS-Instanzen auf dem gleichen WSFC-Cluster zu erstellen, verwenden Sie PowerShell, um einem vorhandenen internen Azure-Lastenausgleichsmodul eine IP-Adresse hinzuzufügen. Für jede IP-Adresse sind eigene Lastenausgleichsregeln, ein Testport, ein Front-End-Pool und ein Back-End-Pool erforderlich.

Mit dem folgenden Skript wird einem vorhandenen Lastenausgleichsmodul eine neue IP-Adresse hinzugefügt. Aktualisieren Sie die PowerShell-Variablen für Ihre Umgebung. Das Skript erstellt alle erforderlichen Lastenausgleichsregeln für sämtliche SAP ASCS/SCS-Ports.


# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
Clear-Host
$ResourceGroupName = "SAP-MULTI-SID-Landscape"      # Existing resource group name
$VNetName = "pr2-vnet"                        # Existing virtual network name
$SubnetName = "Subnet"                        # Existing subnet name
$ILBName = "pr2-lb-ascs"                      # Existing ILB name                      
$ILBIP = "10.0.0.50"                          # New IP address
$VMNames = "pr2-ascs-0","pr2-ascs-1"          # Existing cluster virtual machine names
$SAPInstanceNumber = 50                       # SAP ASCS/SCS instance number: must be a unique value for each cluster
[int]$ProbePort = "623$SAPInstanceNumber"     # Probe port: must be a unique value for each IP and load balancer

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName

$count = $ILB.FrontendIpConfigurations.Count + 1
$FrontEndConfigurationName ="lbFrontendASCS$count"
$LBProbeName = "lbProbeASCS$count"

# Get the Azure virtual network and subnet
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

# Add a second front-end and probe configuration
Write-Host "Adding new front end IP Pool '$FrontEndConfigurationName' ..." -ForegroundColor Green
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 10  | Set-AzLoadBalancer

# Get a new updated configuration
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Get an updated LP FrontendIpConfig
$FEConfig = Get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

# Add a back-end configuration into an existing ILB
$BackEndConfigurationName  = "backendPoolASCS$count"
Write-Host "Adding new backend Pool '$BackEndConfigurationName' ..." -ForegroundColor Green
$BEConfig = Add-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB | Set-AzLoadBalancer

# Get an updated config
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Assign VM NICs to the back-end pool
$BEPool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames){
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        $NICName = ($VM.NetworkInterfaceIDs[0].Split('/') | select -last 1)        
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName                
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools += $BEPool
        Write-Host "Assigning network card '$NICName' of the '$VMName' VM to the backend pool '$BackEndConfigurationName' ..." -ForegroundColor Green
        Set-AzNetworkInterface -NetworkInterface $NIC
        #start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}


# Create load-balancing rules
$Ports = "445","32$SAPInstanceNumber","33$SAPInstanceNumber","36$SAPInstanceNumber","39$SAPInstanceNumber","5985","81$SAPInstanceNumber","5$SAPInstanceNumber`13","5$SAPInstanceNumber`14","5$SAPInstanceNumber`16"
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

Write-Host "Creating load balancing rules for the ports: '$Ports' ... " -ForegroundColor Green

foreach ($Port in $Ports) {

        $LBConfigrulename = "lbrule$Port" + "_$count"
        Write-Host "Creating load balancing rule '$LBConfigrulename' for the port '$Port' ..." -ForegroundColor Green

        $ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $HealthProbe -Protocol tcp -FrontendPort  $Port -BackendPort $Port -IdleTimeoutInMinutes 30 -LoadDistribution Default -EnableFloatingIP   
}

$ILB | Set-AzLoadBalancer

Write-Host "Successfully added new IP '$ILBIP' to the internal load balancer '$ILBName'!" -ForegroundColor Green

Nach Ausführung des Skripts werden die Ergebnisse im Azure-Portal angezeigt, wie im folgenden Screenshot gezeigt:

New front-end IP pool in the Azure portal

Hinzufügen von Datenträgern zu Clustercomputern und Konfigurieren des freigegebenen SIOS-Clusterdatenträgers

Sie müssen für jede zusätzliche SAP ASCS/SCS-Instanz einen neuen freigegebenen Clusterdatenträger hinzufügen. Als gemeinsamer WSFC-Clusterdatenträger für Windows Server 2012 R2 wird aktuell die SIOS DataKeeper-Softwarelösung verwendet.

Gehen Sie folgendermaßen vor:

  1. Fügen Sie jedem der Clusterknoten einen weiteren Datenträger oder weitere Datenträger gleicher Größe (als Stripeset) hinzu, und formatieren Sie sie.
  2. Konfigurieren Sie Speicherreplikation mit SIOS DataKeeper.

Dieses Verfahren setzt voraus, dass Sie auf den WSFC-Clustercomputern bereits SIOS DataKeeper installiert haben. Wenn Sie dies installiert haben, müssen Sie jetzt die Replikation zwischen den Computern konfigurieren. Im Kapitel Installieren von SIOS DataKeeper Cluster Edition für den freigegebenen SAP ASCS/SCS-Clusterdatenträger wird dieser Vorgang beschrieben.

DataKeeper synchronous mirroring for the new SAP ASCS/SCS share disk

Bereitstellen von virtuellen Computern für SAP-Anwendungsserver und DBMS-Cluster

Um die Vorbereitung der Infrastruktur für das zweite SAP-System abzuschließen, müssen Sie folgende Schritte ausführen:

  1. Stellen Sie dedizierte VMs für die SAP-Anwendungsserver bereit, und platzieren Sie jede in einer eigenen dedizierten Verfügbarkeitsgruppe.
  2. Stellen Sie dedizierte VMs für den DBMS-Cluster bereit, und platzieren Sie jede in einer eigenen dedizierten Verfügbarkeitsgruppe.

Installieren eines SAP NetWeaver-Multi-SID-Systems

Eine Beschreibung des gesamten Vorgangs zum Installieren eines zweiten SAP-SID2-Systems finden Sie im Leitfaden Hochverfügbarkeitsinstallation von SAP NetWeaver mit Windows-Failoverclustern und freigegebenem Datenträger für eine SAP ASCS/SCS-Instanz.

Das allgemeine Verfahren lautet wie folgt:

  1. Installieren von SAP mit einer ASCS/SCS-Hochverfügbarkeitsinstanz
    In diesem Schritt installieren Sie SAP mit einer hochverfügbaren ASCS/SCS-Instanz auf dem bereits vorhandenen WSFC-Clusterknoten 1.

  2. Ändern des SAP-Profils der ASCS/SCS-Instanz

  3. Konfigurieren eines Testports
    In diesem Schritt konfigurieren Sie eine SAP-Clusterressource SAP-SID2-IP-Testport mithilfe von PowerShell. Führen Sie diese Konfiguration auf einem der SAP ASCS/SCS-Clusterknoten aus.

  4. Installieren der Datenbankinstanz.
    Führen Sie zum Installieren des zweiten Clusterknotens die Schritte im SAP-Installationshandbuch aus.

  5. Installieren des zweiten Clusterknotens.
    In diesem Schritt installieren Sie SAP mit einer hoch verfügbaren ASCS/SCS-Instanz auf dem vorhandenen WSFC-Clusterknoten 2. Führen Sie zum Installieren des zweiten Clusterknotens die Schritte im SAP-Installationshandbuch aus.

  6. Öffnen Sie Windows-Firewallports für die SAP ASCS/SCS-Instanz, und testen Sie den Port.
    Öffnen Sie auf beiden Clusterknoten, die für die SAP ASCS/SCS-Instanzen verwendet werden, alle Windows-Firewallports, die von SAP ASCS/SCS verwendet werden. Die Ports für diese SAP ASCS/SCS-Instanzen werden im Kapitel SAP ASCS/SCS-Ports aufgelistet.

    Eine Liste aller anderen SAP-Ports finden Sie unter TCP/IP-Ports aller SAP-Produkte.

    Öffnen Sie außerdem den Testport für das interne Azure-Lastenausgleichsmodul, in unserem Szenario 62350. Eine Beschreibung finden Sie in diesem Artikel.

  7. Installieren des primären SAP-Anwendungsservers auf dem neuen dedizierten virtuellen Computer, wie in den SAP-Installationsanweisungen beschrieben.

  8. Installieren des zusätzlichen SAP-Anwendungsservers auf dem neuen dedizierten virtuellen Computer, wie in den SAP-Installationsanweisungen beschrieben.

  9. Testen des Failovers der SAP ASCS/SCS-Instanz und der SIOS-Replikation

Nächste Schritte