Hochverfügbarkeit für SAP NetWeaver auf VMs unter RHEL mit NFS auf Azure Files

Dieser Artikel beschreibt, wie Sie virtuelle Maschinen (VMs) bereitstellen und konfigurieren, das Cluster-Framework installieren und ein hochverfügbares (HA) SAP-NetWeaver-System mithilfe von NFS auf Azure Files installieren. In den Beispielkonfigurationen werden virtuelle Computer unter Red Hat Enterprise Linux (SLES) verwendet.

Voraussetzungen

Übersicht

Zum Bereitstellen der SAP NetWeaver-Anwendungsschicht müssen in der Umgebung freigegebene Verzeichnisse wie /sapmnt/SID und /usr/sap/trans vorhanden sein. Wenn Sie ein Hochverfügbarkeits-SAP-System einrichten, müssen Sie außerdem hochverfügbare Dateisysteme wie /sapmnt/SID und /usr/sap/SID/ASCS schützen.

Diese Dateisysteme können jetzt in NFS in Azure Files platziert werden. NFS in Azure Files ist eine Speicherlösung mit Hochverfügbarkeit. Diese Lösung bietet synchronen zonenredundanten Speicher (ZRS) und eignet sich für SAP ASCS/ERS-Instanzen, die über mehrere Verfügbarkeitszonen hinweg bereitgestellt werden. Sie benötigen allerdings weiterhin einen Pacemaker-Cluster, um Single Point of Failure-Komponenten wie die zentralen Dienste von SAP NetWeaver (ASCS/SCS) zu schützen.

In den Beispielkonfigurationen und Installationsbefehlen werden die folgenden Instanznummern verwendet:

Instanzname Instanznummer
ABAP SAP Central Services (ASCS) 00
ERS 01
ABAP SAP Central Services (ASCS) 02
Zusätzlicher Anwendungsserver (Additional Application Server, AAS) 03
SAP-Systembezeichner NW1

Diagram that shows SAP NetWeaver high availability with NFS on Azure Files.

Dieses Diagramm zeigt eine typische SAP NetWeaver-Architektur mit Hochverfügbarkeit. Die Dateisysteme „sapmnt“ und „saptrans“ werden auf NFS-Freigaben in Azure Files bereitgestellt. Die zentralen SAP-Dienste werden durch einen Pacemaker-Cluster geschützt. Die gruppierten virtuellen Computer befinden sich hinter einer Instanz von Azure Load Balancer. Die NFS-Freigaben werden über einen privaten Endpunkt eingebunden.

Vorbereiten der Infrastruktur

Azure Marketplace enthält Images, die für SAP mit dem Add-On für Hochverfügbarkeit qualifiziert sind, mit dem Sie neue VMs mithilfe verschiedener Versionen von Red Hat bereitstellen können.

Manuelles Bereitstellen von Linux-VMs über das Azure-Portal

In diesem Dokument wird davon ausgegangen, dass Sie bereits ein virtuelles Azure-Netzwerk, ein Subnetz und eine Ressourcengruppe bereitgestellt haben.

Stellen Sie VMs für SAP ASCS-, ERS- und Anwendungsserver bereit. Wählen Sie ein geeignetes RHEL-Image aus, das für das SAP-System unterstützt wird. Sie können eine VM mit einer der folgenden Verfügbarkeitsoptionen bereitstellen: Skalierungsgruppe, Verfügbarkeitszone oder Verfügbarkeitsgruppe.

Konfigurieren von Azure Load Balancer

Während der VM-Konfiguration können Sie im Abschnitt „Netzwerk“ einen Lastenausgleich erstellen oder einen vorhandenen Lastenausgleich auswählen. Führen Sie die folgenden Schritte aus, um einen Standardlastenausgleich für die Hochverfügbarkeit von SAP ASCS und SAP ERS zu konfigurieren.

Befolgen Sie die Anleitung zum Erstellen eines Lastenausgleichs, um mit dem Azure-Portal einen Standardlastenausgleich für ein SAP-Hochverfügbarkeitssystem einzurichten. Berücksichtigen Sie beim Einrichten des Lastenausgleichs die folgenden Punkte.

  1. Front-End-IP-Konfiguration: Erstellen Sie zwei Front-End-IP-Adressen (eine für ASCS und eine für ERS). Wählen Sie dasselbe virtuelle Netzwerk und Subnetz wie für die ASCS- bzw. ERS-VMs aus.
  2. Back-End-Pool: Erstellen Sie einen Back-End-Pool, und fügen Sie ASCS- und ERS-VMs hinzu.
  3. Regeln für eingehenden Datenverkehr: Erstellen Sie zwei Lastenausgleichsregeln (eine für ASCS und eine für ERS). Führen Sie dieselben Schritte für beide Lastenausgleichsregeln aus.
    • Front-End-IP-Adresse: Wählen Sie die Front-End-IP-Adresse aus.
    • Back-End-Pool: Wählen Sie den Back-End-Pool aus.
    • Aktivieren Sie „Hochverfügbarkeitsports“.
    • Protokoll: TCP
    • Integritätstest: Erstellen Sie einen Integritätstest mit den folgenden Details (gilt für ASCS und ERS).
      • Protokoll: TCP
      • Port: [z. B. „620<Instance-no.>“ für ASCS und „621<Instance-no.>“ für ERS]
      • Intervall: 5
      • Schwellenwert für Integritätstest: 2
    • Leerlauftimeout (Minuten): 30
    • Aktivieren Sie „Floating IP aktivieren“.

Hinweis

Die Konfigurationseigenschaft „numberOfProbes“ für Integritätstests (im Portal als „Fehlerschwellenwert“ bezeichnet) wird nicht berücksichtigt. Um also die Anzahl erfolgreicher oder nicht erfolgreicher aufeinanderfolgender Integritätstests zu steuern, legen Sie die Eigenschaft „probeThreshold“ auf „2“ fest. Es ist derzeit nicht möglich, diese Eigenschaft über das Azure-Portal festzulegen. Verwenden Sie daher entweder den Azure CLI- oder den PowerShell-Befehl.

Wichtig

Floating IP wird bei einer NIC-Sekundär-IP-Konfiguration in Load-Balancing-Szenarien nicht unterstützt. Weitere Informationen finden Sie unter Load Balancer-Beschrä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 in den Backend-Pool einer internen (keine öffentliche IP-Adresse) Standard-Instanz von Load Balancer platziert werden, gibt es keine ausgehende Internet-Konnektivität, es sei denn, es werden weitere Konfigurationen vorgenommen, um das Routing zu öffentlichen Endpunkten zu ermöglichen. Weitere Informationen zum Erzielen von Konnektivität in ausgehender Richtung finden Sie unter Konnektivität mit öffentlichen Endpunkten für virtuelle Computer mithilfe von Azure Load Balancer Standard in SAP-Szenarien mit Hochverfügbarkeitsszenarien.

Wichtig

Aktivieren Sie keine TCP-Zeitstempel auf Azure-VMs, die sich hinter Azure Load Balancer befinden. Die Aktivierung von TCP-Zeitstempeln führt dazu, dass die Health Probes fehlschlagen. Setzen Sie den Parameter net.ipv4.tcp_timestamps auf 0. Weitere Informationen finden Sie unter Lastenausgleichs-Integritätstests.

Bereitstellen von Azure Files-Speicherkonto und NFS-Freigaben

NFS in Azure Files basiert auf Premium-Speicher von Azure Files. Lesen Sie vor dem Einrichten von NFS in Azure Files die Anleitung zum Erstellen einer NFS-Freigabe.

Es gibt zwei Optionen für Redundanz innerhalb einer Azure-Region:

Überprüfen Sie, ob in der von Ihnen gewählten Azure-Region NFS 4.1 in Azure Files mit der entsprechenden Redundanz zur Verfügung steht. Überprüfen Sie die Verfügbarkeit von Azure Files nach Azure-Region unter File Storage Premium. Wenn Ihr Szenario von ZRS profitiert, vergewissern Sie sich, dass Premium-Dateifreigaben mit ZRS in Ihrer Azure-Region unterstützt werden.

Es wird empfohlen, über einen privaten Azure-Endpunkt auf Ihr Azure-Speicherkonto zuzugreifen. Stellen Sie sicher, dass der Endpunkt des Azure Files-Speicherkontos und die VMs, in die Sie die NFS-Freigaben einbinden müssen, im selben virtuellen Azure-Netzwerk oder in geteilten virtuellen Azure-Netzwerken bereitgestellt werden.

  1. Stellen Sie ein Azure Files-Speicherkonto namens sapafsnfs bereit. In diesem Beispiel wird ZRS verwendet. Sollten Sie mit dem Prozess nicht vertraut sein, finden Sie weitere Informationen unter Speicherkonto erstellen für das Azure-Portal.

  2. Verwenden Sie auf der Registerkarte Grundlagen die folgenden Einstellungen:

    1. Geben Sie unter Name des Speicherkontos den Namen sapafsnfs ein.
    2. Wählen Sie unter Leistung den Wert Premium aus.
    3. Wählen Sie unter Premium account type (Premium-Kontotyp) die Option FileStorage aus.
    4. Wählen Sie unter Replikation die Option Zonenredundanz (ZRS) aus.
  3. Wählen Sie Weiter aus.

  4. Deaktivieren Sie auf der Registerkarte Erweitert die Option Sichere Übertragung für REST-API-Vorgänge erforderlich. Wenn Sie diese Option nicht deaktivieren, kann die NFS-Freigabe nicht in Ihre VM eingebunden werden. Bei der Einbindung tritt ein Timeout auf.

  5. Wählen Sie Weiter aus.

  6. Konfigurieren Sie im Abschnitt Netzwerk die folgenden Einstellungen:

    1. Wählen Sie unter Netzwerkkonnektivität für Konnektivitätsmethode die Option Privater Endpunkt aus.
    2. Wählen Sie unter Privater Endpunkt die Option Privaten Endpunkt hinzufügen aus.
  7. Wählen Sie im Bereich Privaten Endpunkt erstellen Ihr Abonnement, Ihre Ressourcengruppe und Ihren Standort aus. Geben Sie unter Namesapafsnfs_pe ein. Wählen Sie unter Untergeordnete Speicherressource die Option Datei aus. Wählen Sie unter Netzwerk für Virtuelles Netzwerk das zu verwendende virtuelle Netzwerk und das entsprechende Subnetz aus. Auch hier können Sie das virtuelle Netzwerk verwenden, in dem sich Ihre SAP-VMs befinden, oder ein überwachtes virtuelles Netzwerk. Übernehmen Sie unter Integration von privatem DNS für In private DNS-Zone integrieren die Standardoption Ja. Wählen Sie Ihre private DNS-Zone aus. Klicken Sie auf OK.

  8. Wählen Sie auf der Registerkarte Netzwerk die Option Weiter aus.

  9. Übernehmen Sie auf der Registerkarte Datenschutz alle Standardeinstellungen.

  10. Wählen Sie Überprüfen und erstellen aus, um Ihre Konfiguration zu überprüfen.

  11. Warten Sie, bis die Überprüfung abgeschlossen ist. Beheben Sie alle Probleme, ehe Sie fortfahren.

  12. Wählen Sie auf der Registerkarte Überprüfen + erstellen die Option Erstellen aus.

Stellen Sie als Nächstes die NFS-Freigaben im von Ihnen erstellten Speicherkonto bereit. In diesem Beispiel gibt es zwei NFS-Freigaben: sapnw1 und saptrans.

  1. Melden Sie sich am Azure-Portal an.
  2. Wählen Sie Speicherkonten aus, oder suchen Sie danach.
  3. Wählen Sie auf der Seite Speicherkonten die Option sapafsnfs aus.
  4. Wählen Sie im Ressourcenmenü für sapafsnfs unter Datenspeicher die Option Datenfreigaben aus.
  5. Wählen Sie auf der Seite Dateifreigaben die Option Dateifreigabe aus.
    1. Geben Sie unter Name Folgendes ein: sapnw1, saptrans.
    2. Wählen Sie eine geeignete Freigabegröße aus – beispielsweise 128 GB. Berücksichtigen Sie die Größe der auf der Freigabe gespeicherten Daten sowie die Anforderungen an IOPS und Durchsatz. Weitere Informationen finden Sie unter Skalierbarkeitsziele für Azure-Dateifreigaben.
    3. Wählen Sie als Protokoll NFS aus.
    4. Wählen Sie Kein Root-Squash aus. Andernfalls wird beim Einbinden der Freigaben auf Ihren virtuellen Computern der Dateibesitzer bzw. die Gruppe nicht angezeigt.

Wichtig

Die vorherige Freigabegröße ist nur ein Beispiel. Dimensionieren Sie Ihre Freigaben angemessen. Orientieren Sie sich dabei nicht nur an der Größe der auf der Freigabe gespeicherten Daten, sondern auch an den Anforderungen für IOPS und Durchsatz. Weitere Informationen finden Sie unter Skalierbarkeitsziele für Azure-Dateifreigaben.

Die SAP-Dateisysteme, die nicht über NFS eingebunden werden müssen, können auch in Azure Disk Storage bereitgestellt werden. In diesem Beispiel können /usr/sap/NW1/D02 und /usr/sap/NW1/D03 in Azure Disk Storage bereitgestellt werden.

Wichtige Überlegungen im Zusammenhang mit Freigaben vom Typ „NFS in Azure Files“

Berücksichtigen Sie die folgenden wichtigen Punkte, wenn Sie eine Bereitstellung mit NFS in Azure Files planen:

  • Die Mindestgröße für eine Freigabe beträgt 100 GiB. Sie bezahlen nur für die Kapazität der bereitgestellten Freigaben.
  • Berücksichtigen Sie beim Dimensionieren Ihrer NFS-Freigaben nicht nur die Kapazitätsanforderungen, sondern auch die Anforderungen hinsichtlich IOPS und Durchsatz. Weitere Informationen finden Sie unter Skalierbarkeitsziele für Azure-Dateifreigaben.
  • Testen Sie die Workload, um die gewählte Dimensionierung zu überprüfen und sicherzustellen, dass sie Ihre Leistungsziele erfüllt. Wie Sie Probleme mit der Leistung von NFS auf Azure Files beheben können, erfahren Sie unter Fehlerbehebung bei Azure-Dateifreigaben.
  • Bei SAP J2EE-Systemen wird die Platzierung von /usr/sap/<SID>/J<nr> in NFS in Azure Files nicht unterstützt.
  • Wenn in Ihrem SAP-System sehr viele Batchaufträge ausgeführt werden, verfügen Sie möglicherweise über Millionen von Auftragsprotokollen. Falls die SAP-Batchauftragsprotokolle im Dateisystem gespeichert werden, achten Sie insbesondere auf die Dimensionierung der Freigabe sapmnt. Ab SAP_BASIS 7.52 werden Batchauftragsprotokolle standardmäßig in der Datenbank gespeichert. Weitere Informationen finden Sie im Auftragsprotokoll in der Datenbank.
  • Stellen Sie für jedes SAP-System eine separate Freigabe vom Typ sapmnt bereit.
  • Verwenden Sie die Freigabe sapmnt nicht für andere Aktivitäten (beispielsweise für Schnittstellen oder für saptrans).
  • Verwenden Sie die Freigabe saptrans nicht für andere Aktivitäten (beispielsweise für Schnittstellen oder für sapmnt).
  • Es wird davon abgeraten, die Freigaben für zu viele SAP-Systeme in einem einzelnen Speicherkonto zu konsolidieren. Es gibt auch Skalierbarkeitsziele für Speicherkonten. Achten Sie auch darauf, die Grenzwerte für das Speicherkonto nicht zu überschreiten.
  • Konsolidieren Sie generell Freigaben für maximal fünf SAP-Systeme in einem einzelnen Speicherkonto. Diese Richtlinie hilft dabei, die Grenzwerte für Speicherkonten nicht zu überschreiten, und vereinfacht die Leistungsanalyse.
  • Vermeiden Sie es generell, Freigaben wie sapmnt für produktionsfremde SAP-Systeme und produktive SAP-Systeme im selben Speicherkonto zu mischen.
  • Es empfiehlt sich, für die Bereitstellung mindestens RHEL 8.4 zu verwenden, um von NFS-Clientverbesserungen zu profitieren.
  • Verwenden Sie einen privaten Endpunkt. Im unwahrscheinlichen Fall eines Zonenausfalls werden Ihre NFS-Sitzungen automatisch in eine fehlerfreie Zone umgeleitet. Sie müssen die NFS-Freigaben auf Ihren virtuellen Computern nicht erneut einbinden.
  • Wenn Sie Ihre VMs verfügbarkeitszonenübergreifend bereitstellen, verwenden Sie in den Azure-Regionen mit ZRS-Unterstützung ein Speicherkonto mit ZRS.
  • Von Azure Files wird derzeit keine automatische regionsübergreifende Replikation für Notfallwiederherstellungsszenarien unterstützt.

Einrichten (A)SCS

Im nächsten Schritt bereiten Sie die SAP ASCS- und ERS-Instanzen vor und installieren sie.

Erstellen eines Pacemaker-Clusters

Führen Sie die Schritte in Einrichten von Pacemaker unter Red Hat Enterprise Linux in Azure aus, um ein grundlegendes Pacemaker-Cluster für diesen (A)SCS-Server zu erstellen.

Vorbereiten der SAP NetWeaver-Installation

Die folgenden Elemente haben eines der folgenden Präfixe:

  • [A] : Gilt für alle Knoten
  • [1]: Gilt nur für Knoten 1
  • [2]: Gilt nur für Knoten 2
  1. [A] Einrichten der Auflösung des Hostnamens.

    Sie können entweder einen DNS-Server verwenden oder die Datei /etc/hosts auf allen Knoten ändern. In diesem Beispiel wird die Verwendung der Datei /etc/hosts gezeigt. Ersetzen Sie die IP-Adresse und den Hostnamen in den folgenden Befehlen:

    sudo vi /etc/hosts
    

    Fügen Sie in /etc/hosts die folgenden Zeilen ein. Ändern Sie die IP-Adresse und den Hostnamen Ihrer Umgebung entsprechend.

     # IP address of cluster node 1
     10.90.90.7    sap-cl1
     # IP address of cluster node 2
     10.90.90.8     sap-cl2
     # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
     10.90.90.10   sapascs
     # IP address of the load balancer frontend configuration for SAP Netweaver ERS
     10.90.90.9    sapers
    
  2. [A] Installieren Sie den NFS-Client und andere Anforderungen.

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  3. [1] Erstellen Sie die SAP-Verzeichnisse auf der NFS-Freigabe.
    Binden Sie vorübergehend die NFS-Freigabe sapnw1 auf einer der VMs ein und erstellen Sie die SAP-Verzeichnisse, die als verschachtelte Einbindungspunkte verwendet werden.

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1ascs
    sudo mkdir -p usrsapNW1ers
    sudo mkdir -p usrsapNW1sys
    # unmount the volume and delete the temporary directory
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  4. [A] Erstellen der freigegebenen Verzeichnisse.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS01
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS01
    
  5. [A] Überprüfen Sie die Version von resource-agents-sap.

    Stellen Sie sicher, dass die Version des installierten resource-agents-sap-Pakets mindestens 3.9.5-124.el7 ist.

    sudo yum info resource-agents-sap
    
  6. [A] Fügen Sie Bereitstellungseinträge hinzu.

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1sys/ /usr/sap/NW1/SYS  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  7. [A] Konfigurieren der Auslagerungsdatei.

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    Starten Sie den Agenten neu, um die Änderung zu aktivieren.

    sudo service waagent restart
    
  8. [A] Konfigurieren von RHEL.

    Konfigurieren von RHEL gemäß SAP-Hinweis 2002167 für RHEL 7.x, SAP-Hinweis 2772999 für RHEL 8.x oder SAP-Hinweis 3108316 für RHEL 9.x.

Installieren Sie SAP NetWeaver ASCS

  1. [1] Konfigurieren Sie die Standard-Clustereigenschaften.

    # If using RHEL 7.x
    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    # If using RHEL 8.x or later
    pcs resource defaults update resource-stickiness=1
    pcs resource defaults update migration-threshold=3
    
  2. [1] Erstellen Sie eine virtuelle IP-Ressource und einen Integritätstest für die ASCS-Instanz.

    sudo pcs node standby sap-cl2
    
    sudo pcs resource create fs_NW1_ASCS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ascs' \
      directory='/usr/sap/NW1/ASCS00' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
      --group g-NW1_ASCS
    
    sudo pcs resource create vip_NW1_ASCS IPaddr2 \
      ip=10.90.90.10 \
      --group g-NW1_ASCS
    
    sudo pcs resource create nc_NW1_ASCS azure-lb port=62000 \
      --group g-NW1_ASCS
    

    Stellen Sie sicher, dass der Clusterstatus gültig ist und alle Ressourcen gestartet sind. Es ist nicht wichtig, auf welchem Knoten die Ressourcen ausgeführt werden.

    sudo pcs status
    
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1 
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  3. [1] Installieren Sie SAP NetWeaver ASCS.

    Installieren Sie SAP NetWeaver ASCS als Root auf dem ersten Knoten, indem Sie einen virtuellen Hostnamen verwenden, der auf die IP-Adresse der Load-Balancer-Frontend-Konfiguration für ASCS abgebildet wird, z. B. sapascs und 10.90.90.10 und die Instanznummer, die Sie für den Test des Load Balancers verwendet haben, z. B. 00.

    Sie können den sapinst-ParameterSAPINST_REMOTE_ACCESS_USER verwenden, um einem Nicht-Root-Benutzer zu ermöglichen, sich mit sapinst zu verbinden.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    Wenn bei der Installation kein Unterordner in „/usr/sap/NW1/ASCS00“ erstellt werden kann, legen Sie den Besitzer und die Gruppe des Ordners „ASCS00“ fest, und versuchen Sie es noch mal.

    sudo chown nw1adm /usr/sap/NW1/ASCS00
    sudo chgrp sapsys /usr/sap/NW1/ASCS00
    
  4. [1] Erstellen einer virtuellen IP-Ressource und eines Integritätstests für die ERS-Instanz.

    sudo pcs node unstandby sap-cl2
    sudo pcs node standby sap-cl1
    
    sudo pcs resource create fs_NW1_AERS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ers' \
      directory='/usr/sap/NW1/ERS01' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW1_AERS
    
    sudo pcs resource create vip_NW1_AERS IPaddr2 \
      ip=10.90.90.9 \
     --group g-NW1_AERS
    
    sudo pcs resource create nc_NW1_AERS azure-lb port=62101 \
     --group g-NW1_AERS
    

    Stellen Sie sicher, dass der Clusterstatus gültig ist und alle Ressourcen gestartet sind. Es ist nicht wichtig, auf welchem Knoten die Ressourcen ausgeführt werden.

    sudo pcs status
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    
  5. [2] Installieren Sie SAP NetWeaver ERS.

    Installieren Sie SAP NetWeaver ERS als Root auf dem zweiten Knoten, indem Sie einen virtuellen Hostnamen verwenden, der auf die IP-Adresse der Load-Balancer-Frontend-Konfiguration für den ERS abgebildet wird, z. B sapers und 10.90.90.9 und die Instanznummer, die Sie für den Test des Load Balancer verwendet haben, z. B. 01.

    Sie können den sapinst-ParameterSAPINST_REMOTE_ACCESS_USER verwenden, um einem Nicht-Root-Benutzer zu ermöglichen, sich mit sapinst zu verbinden.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    Wenn bei der Installation kein Unterordner in „/usr/sap/NW1/ERS01“ erstellt werden kann, legen Sie den Besitzer und die Gruppe des Ordners „ERS01“ fest, und versuchen Sie es noch mal.

    sudo chown qaadm /usr/sap/NW1/ERS01
    sudo chgrp sapsys /usr/sap/NW1/ERS01
    
  6. [1] Passen Sie die ASCS/SCS- und ERS-Instanzprofile an.

    • ASCS/SCS-Profil:

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

      Stellen Sie sowohl für ENSA1 als auch für ENSA2 sicher, dass die keepalive-Parameter des Betriebssystems wie im SAP-Hinweis 1410736 beschrieben festgelegt sind.

    • ERS-Profil:

      sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
      
      # Change the restart command to a start command
      #Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  7. [A] Konfigurieren Sie Keep Alive.

    Die Kommunikation zwischen dem SAP NetWeaver-Anwendungsserver und ASCS/SCS wird durch einen Softwarelastenausgleich weitergeleitet. Der Lastenausgleich trennt nach einem konfigurierbaren Timeout inaktive Verbindungen. Um diese Aktion zu verhindern, setzen Sie einen Parameter im SAP NetWeaver ASCS/SCS-Profil, wenn Sie ENSA1 verwenden. Ändern Sie außerdem die Linux-Systemeinstellungen für keepalive auf allen SAP-Servern (sowohl für ENSA1 als auch für ENSA2). Weitere Informationen finden Sie im SAP-Hinweis 1410736.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  8. [A] Aktualisieren Sie die /usr/sap/sapservices-Datei.

    Um den Start der Instanzen durch das sapinitStartskript zu verhindern, müssen alle von Pacemaker verwalteten Instanzen in der /usr/sap/sapservices-Datei auskommentiert werden.

    sudo vi /usr/sap/sapservices
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW1/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ASCS00/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_sapascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ERS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW1/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ERS01/exe/sapstartsrv pf=/usr/sap/NW1/ERS01/profile/NW1_ERS01_sapers -D -u nw1adm
    # systemctl --no-ask-password start SAPNW1_00 # sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ERS01_sapers
    

    Wichtig

    Mit dem auf systemd basierten SAP Startup Framework können SAP-Instanzen jetzt von systemd verwaltet werden. Die mindestens erforderliche Red Hat Enterprise Linux(RHEL)-Version ist RHEL 8 für SAP. Wie im SAP-Hinweis 3115048 beschrieben, führt eine Neuinstallation eines SAP-Kernels mit integrierter auf systemd basierter SAP Startup Framework-Unterstützung immer zu einer durch systemd gesteuerten SAP-Instanz. Nach einem SAP-Kernelupgrade einer vorhandenen SAP-Installation auf einen Kernel, der über die auf systemd basierte SAP Startup Framework-Unterstützung verfügt, müssen jedoch einige manuelle Schritte wie im SAP-Hinweis 3115048 dokumentiert ausgeführt werden, um die vorhandene SAP Startup-Umgebung in eine durch systemd gesteuerte zu konvertieren.

    Bei der Verwendung von Red Hat HA-Diensten für SAP (Clusterkonfiguration) zum Verwalten von SAP-Anwendungsserverinstanzen wie SAP ASCS und SAP ERS sind zusätzliche Änderungen erforderlich, um die Kompatibilität zwischen dem SAPInstance-Ressourcen-Agent und dem neuen auf systemd basierten SAP-Startup-Framework sicherzustellen. Sobald die SAP-Anwendungsserverinstanzen installiert oder auf einen systemd-fähigen SAP-Kernel gemäß SAP-Hinweis 3115048 umgestellt wurden, müssen die in Red Hat KBA 6884531 genannten Schritte auf allen Clusterknoten erfolgreich abgeschlossen werden.

  9. [1] Erstellen der SAP-Clusterressourcen.

    Je nachdem, ob Sie ein ENSA1- oder ENSA2-System ausführen, wählen Sie die entsprechende Registerkarte aus, um die Ressourcen zu definieren. SAP hat in SAP NetWeaver 7.52 Unterstützung für ENSA2 eingeführt, einschließlich Replikation. Ab der ABAP-Plattform 1809 wird ENSA2 standardmäßig installiert. Für ENSA2-Unterstützung: Informationen zur Unterstützung von Enqueue-Server 2 finden Sie im SAP-Hinweis 2630416.

    Wenn Sie die Enqueue Server 2 Architektur (ENSA2) verwenden, installieren Sie den Ressourcen-Agenten resource-agents-sap-4.1.1-12.el7.x86_64 oder neuer und definieren die Ressourcen wie hier gezeigt:

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW1_ASCS00 SAPInstance \
     InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false \
     meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
     op monitor interval=20 on-fail=restart timeout=60 \
     op start interval=0 timeout=600 op stop interval=0 timeout=600 \
     --group g-NW1_ASCS
    
    sudo pcs resource meta g-NW1_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW1_ERS01 SAPInstance \
     InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true \
     op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
     --group g-NW1_AERS
    
    sudo pcs constraint colocation add g-NW1_AERS with g-NW1_ASCS -5000
    sudo pcs constraint location rsc_sap_NW1_ASCS00 rule score=2000 runs_ers_NW1 eq 1
    sudo pcs constraint order start g-NW1_ASCS then stop g-NW1_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby sap-cl1
    sudo pcs property set maintenance-mode=false
    

    Wenn Sie ein Upgrade von einer älteren Version durchführen und zu Enqueue-Server 2 wechseln, lesen Sie den SAP-Hinweis 2641322.

    Hinweis

    Die Zeitüberschreitungen in der vorangegangenen Konfiguration sind nur Beispiele und müssen möglicherweise an die spezifische SAP-Einrichtung angepasst werden.

    Stellen Sie sicher, dass der Clusterstatus gültig ist und alle Ressourcen gestartet sind. Es ist nicht wichtig, auf welchem Knoten die Ressourcen ausgeführt werden.

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    
  10. [1] Führen Sie den folgenden Schritt aus, um priority-fencing-delay zu konfigurieren (gilt nur für Schrittmacher-2.0.4-6.el8 oder höher).

    Hinweis

    Wenn Sie über einen Cluster mit zwei Knoten verfügen, haben Sie die Möglichkeit, die priority-fencing-delay-Clustereigenschaft zu konfigurieren. Diese Eigenschaft führt zu einer zusätzlichen Verzögerung beim Einfassen eines Knotens mit einer höheren Gesamtressourcenpriorität, wenn ein Split-Brain-Szenario auftritt. Weitere Informationen finden Sie unter Kann Pacemaker den Clusterknoten mit den wenigsten ausgeführten Ressourcen einfassen?.

    Die Eigenschaft priority-fencing-delay gilt für Pacemaker-2.0.4-6.el8 Version oder höher. Wenn Sie priority-fencing-delay auf einem bestehenden Cluster einrichten, stellen Sie sicher, dass Sie die Einstellung pcmk_delay_max im Fencinggerät löschen.

    sudo pcs resource defaults update priority=1
    sudo pcs resource update rsc_sap_NW1_ASCS00 meta priority=10
    
    sudo pcs property set priority-fencing-delay=15s
    
  11. [A] Fügen Sie Firewallregeln für ASCS und ERS auf beiden Knoten hinzu.

    # Probe Port of ASCS
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp
    # Probe Port of ERS
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp
    

Vorbereitung des SAP NetWeaver-Anwendungsservers

Einige Datenbanken erfordern, dass die Installation der Datenbankinstanz auf einem Anwendungsserver läuft. Bereiten Sie die Anwendungsserver-VMs so vor, dass Sie diese in jenen Fällen verwenden können.

Die folgenden Schritte gehen davon aus, dass Sie den Anwendungsserver auf einem anderen Server als den ASCS/SCS- und HANA-Servern installieren. Andernfalls sind einige der Schritte (z. B. Konfigurieren der Hostnamenauflösung) nicht erforderlich.

Die folgenden Elemente haben eines der folgenden Präfixe:

  • [A]: Gilt sowohl für PAS als auch für AAS
  • [P]: Gilt nur für PAS
  • [S]: Gilt nur für AAS
  1. [A] Einrichten der Auflösung des Hostnamens. Sie können entweder einen DNS-Server verwenden oder die Datei /etc/hosts auf allen Knoten ändern. In diesem Beispiel wird die Verwendung der Datei /etc/hosts gezeigt. Ersetzen Sie die IP-Adresse und den Hostnamen in den folgenden Befehlen:

    sudo vi /etc/hosts
    

    Fügen Sie in /etc/hosts die folgenden Zeilen ein. Ändern Sie die IP-Adresse und den Hostnamen Ihrer Umgebung entsprechend.

    10.90.90.7    sap-cl1
    10.90.90.8    sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    10.90.90.12   sapa01
    10.90.90.13   sapa02
    
  2. [A] Erstellen Sie das sapmnt-Verzeichnis.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  3. [A] Installieren Sie den NFS-Client und andere Anforderungen.

    sudo yum -y install nfs-utils uuidd
    
  4. [A] Fügen Sie Bereitstellungseinträge hinzu.

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  5. [A] Konfigurieren der Auslagerungsdatei.

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    Starten Sie den Agenten neu, um die Änderung zu aktivieren.

    sudo service waagent restart
    

Installieren der Datenbank

In diesem Fall ist SAP NetWeaver auf SAP HANA installiert. Für diese Installation können Sie jede unterstützte Datenbank verwenden. Weitere Informationen zum Installieren von SAP HANA in Azure finden Sie unter Hochverfügbarkeit von SAP HANA auf Azure-VMs unter Red Hat Enterprise Linux. Eine Liste der unterstützten Datenbanken finden Sie im SAP-Hinweis 1928533.

Installieren Sie die SAP NetWeaver-Datenbankinstanz als Root, indem Sie einen virtuellen Hostnamen verwenden, welcher der IP-Adresse der Load Balancer-Frontend-Konfiguration für die Datenbank entspricht.

Sie können den sapinst-ParameterSAPINST_REMOTE_ACCESS_USER verwenden, um einem Nicht-Root-Benutzer zu ermöglichen, sich mit sapinst zu verbinden.

# Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
sudo firewall-cmd --zone=public  --add-port=4237/tcp
sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

Installation des SAP NetWeaver-Anwendungsservers

Führen Sie die folgenden Schritte durch, um einen SAP-Anwendungsserver zu installieren.

  1. [A] Vorbereiten des Anwendungsservers.

    Führen Sie die Schritte des vorigen Abschnitts Vorbereitung des SAP NetWeaver-Anwendungsservers aus, um den Anwendungsserver vorzubereiten.

  2. [A] Installieren des SAP NetWeaver-Anwendungsservers.

    Installieren Sie einen primären oder einen zusätzlichen SAP NetWeaver-Anwendungsserver.

    Sie können den sapinst-ParameterSAPINST_REMOTE_ACCESS_USER verwenden, um einem Nicht-Root-Benutzer zu ermöglichen, sich mit sapinst zu verbinden.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] Aktualisieren Sie den sicheren SAP HANA-Speicher.

    Ändern Sie den sicheren SAP HANA-Speicher dahingehend, dass er auf den virtuellen Namen der Einrichtung der SAP HANA-Systemreplikation zeigt.

    Führen Sie den folgenden Befehl zum Auflisten der Einträge als <sapsid>adm aus:

    hdbuserstore List
    

    Alle Einträge sollten aufgelistet und ähnlich aussehen wie:

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.90.90.5:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    In diesem Beispiel verweist die IP-Adresse des Standardeintrags auf den virtuellen Computer, nicht auf den Lastenausgleich. Ändern Sie den Eintrag so, dass er auf den virtuellen Hostnamen des Lastenausgleichs verweist. Achten Sie darauf, dass Sie den gleichen Port und Datenbanknamen verwenden Verwenden Sie z. B. 30313 und NW1 in der Beispielausgabe.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

Testen der Clustereinrichtung

Testen Sie Ihren Pacemaker-Cluster sorgfältig. Weitere Informationen finden Sie unter Ausführen der typischen Failover-Tests.

Nächste Schritte