Bereitstellen von SAP-Dialoginstanzen mit SAP ASCS/SCS-Hochverfügbarkeits-VMs auf RHEL

In diesem Artikel wird beschrieben, wie Sie die Dialoginstanz Primary Application Server (PAS) und Additional Application Server (AAS) auf demselben Hochverfügbarkeitscluster von ABAP SAP Central Services (ASCS)/SAP Central Services (SCS) installieren und konfigurieren, der unter Red Hat Enterprise Linux (RHEL) ausgeführt wird.

References

Übersicht

In diesem Artikel wird das Kostenoptimierungsszenario beschrieben, in dem Sie Dialoginstanzen von PAS und AAS mit SAP ASCS/SCS- und Enqueue Replication Server (ERS)-Instanzen in einer Einrichtung für hohe Verfügbarkeit bereitstellen. Um die Anzahl der VMs für ein einzelnes SAP-System zu minimieren, möchten Sie PAS und AAS auf demselben Host installieren, auf dem SAP ASCS/SCS und SAP ERS ausgeführt werden. Da SAP ASCS/SCS im Hochverfügbarkeitscluster-Setup konfiguriert ist, möchten Sie, dass PAS und AAS auch vom Cluster verwaltet werden. Die Konfiguration ist im Grunde eine Ergänzung zum bereits konfigurierten SAP ASCS/SCS-Cluster-Setup. In diesem Setup werden PAS und AAS auf einem virtuellen Hostnamen installiert und sein Instanzverzeichnis wird vom Cluster verwaltet.

Für dieses Setup benötigen PAS und AAS ein hochverfügbares Instanzverzeichnis (/usr/sap/<SID>/D<nr>). Sie können das Dateisystem des Instanzverzeichnisses auf demselben hochverfügbaren Speicher platzieren, den Sie für die ASCS- und ERS-Instanzkonfiguration verwendet haben. Die vorgestellte Architektur zeigt NFS auf Azure Files oder Azure NetApp Files für hochverfügbare Instanzverzeichnisse für die Einrichtung.

Das in diesem Artikel gezeigte Beispiel zur Beschreibung der Bereitstellung verwendet die folgenden Systeminformationen:

Instanzname Instanznummer Name des virtuellen Hosts Virtuelle IP (Probe-Port)
ABAP SAP Central Services (ASCS) 00 sapascs 10.90.90.10 (62000)
Enqueue-Replikationsserver (ERS) 01 sapers 10.90.90.9 (62001)
Primärer Anwendungsserver (Primary Application Server, PAS) 02 sappas 10.90.90.30 (62002)
Zusätzlicher Anwendungsserver (Additional Application Server, AAS) 03 sapers 10.90.90.31 (62003)
SAP-Systembezeichner NW1 --- ---

Hinweis

Installieren Sie weitere SAP-Anwendungsinstanzen auf separaten VMs, wenn Sie horizontal skalieren möchten.

Diagram that shows the architecture of dialog instance installation with an SAP ASCS/SCS cluster.

Wichtige Überlegungen für die Kostenoptimierungslösung

  • Nur zwei Dialoginstanzen, PAS und ein AAS, können mit der SAP ASCS/SCS-Clustereinrichtung bereitgestellt werden.
  • Wenn Sie Ihr SAP-System mit weiteren Anwendungsservern (wie sapa03 und sapa04) skalieren möchten, können Sie diese in separaten VMs installieren. Wenn PAS und AAS auf virtuellen Hostnamen installiert werden, können Sie weitere Anwendungsserver entweder mit physischen oder virtuellen Hostnamen in separaten VMs installieren. Weitere Informationen zum Zuweisen eines virtuellen Hostnamens zu einer VM finden Sie im Blog Verwenden von SAP Virtual Host-Namen mit Linux in Azure.
  • Bei der PAS- und AAS-Bereitstellung mit einem SAP ASCS/SCS-Cluster-Setup muss die Instanznummer von ASCS, ERS, PAS und AAS unterschiedlich sein.
  • Erwägen Sie die angemessene Dimensionierung Ihrer VM-SKUs basierend auf den Dimensionierungsrichtlinien. Sie müssen das Clusterverhalten berücksichtigen, bei dem mehrere SAP-Instanzen (ASCS, ERS, PAS und AAS) auf einer einzelnen VM ausgeführt werden können, wenn andere VMs im Cluster nicht verfügbar sind.
  • Die Dialoginstanzen (PAS und AAS), die mit einem SAP ASCS/SCS-Cluster-Setup ausgeführt werden, müssen unter Verwendung eines virtuellen Hostnamens installiert werden.
  • Sie müssen außerdem dieselbe Speicherlösung des SAP ASCS/SCS-Cluster-Setups verwenden, um PAS- und AAS-Instanzen bereitzustellen. Wenn Sie beispielsweise einen SAP ASCS/SCS-Cluster mit NFS auf Azure-Dateien konfiguriert haben, muss dieselbe Speicherlösung verwendet werden, um PAS und AAS bereitzustellen.
  • Das Instanzverzeichnis /usr/sap/<SID>/D<nr> von PAS und AAS muss in einem NFS-Dateisystem bereitgestellt werden und wird vom Cluster als Ressource verwaltet.

    Hinweis

    Bei SAP J2EE-Systemen wird die Platzierung von /usr/sap/<SID>/J<nr> in NFS in Azure Files nicht unterstützt.

  • Um weitere Anwendungsserver auf separaten VMs zu installieren, können Sie entweder NFS-Freigaben oder einen lokalen verwalteten Datenträger für ein Instanzverzeichnisdateisystem verwenden. Wenn Sie weitere Anwendungsserver für ein SAP J2EE-System installieren, wird /usr/sap/<SID>/J<nr> auf NFS auf Azure Files nicht unterstützt.
  • In einer herkömmlichen Hochverfügbarkeitskonfiguration von SAP ASCS/SCS sind Anwendungsserverinstanzen, die auf separaten VMs ausgeführt werden, nicht betroffen, wenn es Auswirkungen auf SAP ASCS- und ERS-Clusterknoten gibt. Bei der Konfiguration zur Kostenoptimierung wird jedoch entweder die PAS- oder die AAS-Instanz neu gestartet, wenn sich dies auf einen der Knoten im Cluster auswirkt.
  • Siehe Überlegungen zu NFS in Azure Files und Überlegungen zu Azure NetApp Files, da für dieses Setup die gleichen Überlegungen gelten.

Voraussetzungen

Die in diesem Artikel beschriebene Konfiguration ist eine Ergänzung zu Ihrem bereits konfigurierten SAP ASCS/SCS-Cluster-Setup. In dieser Konfiguration werden PAS und AAS auf einem virtuellen Hostnamen installiert und sein Instanzverzeichnis wird vom Cluster verwaltet. Verwenden Sie basierend auf Ihrem Speicher die in den folgenden Artikeln beschriebenen Schritte, um die SAPInstance-Ressource für die SAP ASCS- und SAP ERS-Instanz im Cluster zu konfigurieren.

Nachdem Sie die ASCS-, ERS- und Datenbank-Instanz mithilfe von Software Provisioning Manager (SWPM) installiert haben, führen Sie die nächsten Schritte aus, um die PAS- und AAS-Instanzen zu installieren.

Konfigurieren Sie Azure Load Balancer für PAS und AAS

In diesem Artikel wird davon ausgegangen, dass Sie den Lastenausgleich für die Einrichtung des SAP-ASCS/SCS-Clusters bereits konfiguriert haben, wie in Konfigurieren des Azure Load Balancer beschrieben. Führen Sie in derselben Azure Load Balancer-Instanz die folgenden Schritte aus, um weitere Front-End-IPs und Lastenausgleichsregeln für PAS und AAS zu erstellen.

  1. Öffnen Sie den internen Lastenausgleich, der für die Einrichtung des SAP ASCS/SCS-Clusters erstellt wurde.
  2. Front-End-IP-Konfiguration: Erstellen Sie zwei Front-End-IP-Adressen – eine für PAS und eine für AAS (z. B. 10.90.90.30 und 10.90.90.31).
  3. Back-End Pool: Dieser Pool bleibt gleich, da wir PAS und AAS auf demselben Back-End-Pool bereitstellen.
  4. Regeln für eingehenden Datenverkehr: Erstellen Sie zwei Lastenausgleichsregeln (eine für PAS und eine für AAS). Führen Sie die gleichen Schritte für beide Lastenausgleichsregeln aus.
  5. Front-End-IP-Adresse: Wählen Sie die Front-End-IP-Adresse aus.
    1. Back-End-Pool: Wählen Sie den Back-End-Pool aus.
    2. Hochverfügbarkeitsports: Wählen Sie diese Option aus.
    3. Protokoll: Wählen Sie TCP.
    4. Integritätstest: Erstellen Sie einen Integritätstest mit den folgenden Details (gilt für PAS und AAS):
      1. Protokoll: Wählen Sie TCP.
      2. Port: z. B. 620<Instanz-Nr.> für PAS und 620<Instanz-Nr.> für AAS.
      3. Intervall: Geben Sie 5 ein.
      4. Testschwellenwert: Geben Sie 2 ein.
    5. Leerlauftimeout (Minuten): Geben Sie 30 ein.
    6. Floating IP aktivieren: Wählen Sie diese Option aus.

Die Konfigurationseigenschaft numberOfProbes für Integritätstests (im Azure-Portal als Fehlerschwellenwert bezeichnet) wird nicht berücksichtigt. Legen Sie die Eigenschaft probeThreshold auf 2 fest, um die Anzahl erfolgreicher oder nicht erfolgreicher aufeinanderfolgender Integritätstests zu steuern. Es ist derzeit nicht möglich, diese Eigenschaft mithilfe des Azure-Portals festzulegen. Verwenden Sie entweder die 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 Einschränkungen. Sollten Sie weitere IP-Adressen für die VMs benötigen, stellen Sie eine zweite NIC bereit.

Wenn VMs ohne öffentliche IP-Adressen in den Backend-Pool einer internen (keine öffentliche IP-Adresse) Standard-Azure Load Balancer-Instanz 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. Ausführliche Schritte zum Erreichen ausgehender Konnektivität finden Sie unter Public endpoint connectivity for Virtual Machines using Azure Standard Load Balancer in SAP high-availability scenarios (Konnektivität mit öffentlichen Endpunkten für virtuelle Computer mithilfe von Azure Load Balancer Standard in SAP-Szenarien mit Hochverfügbarkeit).

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.

Vorbereiten der Server für die PAS- und AAS-Installation

Einige Schritte in diesem Dokument sind mit Präfixen gekennzeichnet. Diese bedeuten Folgendes:

  • [A]: gilt für alle Knoten.
  • [1]: gilt nur für Knoten 1.
  • [2]: gilt nur für Knoten 2.
  1. [A] Einrichten von Hostnamenauflösung.

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

    sudo vi /etc/hosts
    
    # 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
    # IP address of the load balancer frontend configuration for SAP Netweaver PAS
    10.90.90.30   sappas
    # IP address of the load balancer frontend configuration for SAP Netweaver AAS
    10.90.90.31   sapaas
    
  2. [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.

    1. Bei Verwendung von NFS für Azure Files:

      # 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 usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
    2. Bei Verwendung von Azure NetApp Files:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      
      # If using NFSv3
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp
      # If using NFSv4.1
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      sudo cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
  3. [A] Erstellen der freigegebenen Verzeichnisse.

    sudo mkdir -p /usr/sap/NW1/D02
    sudo mkdir -p /usr/sap/NW1/D03
    
    sudo chattr +i /usr/sap/NW1/D02
    sudo chattr +i /usr/sap/NW1/D03
    
  4. [A] Swap-Speicherplatz konfigurieren. Bei der Installation einer Dialoginstanz mit zentralen Diensten müssen Sie mehr Auslagerungsspeicher konfigurieren.

    sudo vi /etc/waagent.conf
    
    # Check if property ResourceDisk.Format is already set to y and if not, set it
    ResourceDisk.Format=y
    
    # 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
    ResourceDisk.SwapSizeMB=10480
    

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

    sudo service waagent restart
    
  5. [A] Fügen Sie Firewall-Regeln für PAS und AAS hinzu

    # Probe and gateway port for PAS and AAS
    sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
    

Installieren einer SAP Netweaver PAS-Instanz

  1. [1] Überprüfen Sie den Status des Clusters. Stellen Sie vor dem Konfigurieren einer PAS-Ressource für die Installation sicher, dass die ASCS- und ERS-Ressourcen konfiguriert und gestartet sind.

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # 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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  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
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    
  2. [1] Erstellen Sie Dateisystem-, virtuelle IP- und Health-Probe-Ressourcen für die PAS-Instanz.

    sudo pcs node standby sap-cl2
    sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30 --group g-NW1_PAS
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' 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_PAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_PAS
    

    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 List:
    #   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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  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
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    
  3. [1] Ändern Sie den Eigentümer des Ordners /usr/sap/SID/D02, nachdem das Dateisystem gemountet wurde.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] Installieren Sie den SAP NetWeaver-PAS.

    Installieren Sie den SAP NetWeaver PAS als Stamm auf dem ersten Knoten, indem Sie einen virtuellen Hostnamen verwenden, der der IP-Adresse der Front-End-Konfiguration des Lastenausgleichs für den PAS zugeordnet ist. Verwenden Sie z. B. sappas, 10.90.90.30, und die Instanznummer, die Sie für die Probe des Lastenausgleichs verwendet haben, z. B. 02.

    Sie können den sapinst-Parameter SAPINST_REMOTE_ACCESS_USER verwenden, um anderen Benutzern als root das Herstellen einer Verbindung mit sapinst zu ermöglichen.

    # 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=<pas_virtual_hostname>
    
  5. Aktualisieren Sie die /usr/sap/sapservices-Datei.

    Um den Start der Instanzen durch das „sapinit“-Startskript zu verhindern, müssen alle von Pacemaker verwalteten Instanzen aus der Datei /usr/sap/sapservices auskommentiert werden.

    sudo vi /usr/sap/sapservices
    
    # On the node where PAS is installed, comment out the following lines. 
    # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
    
  6. [1] Erstellen Sie die PAS-Cluster-Ressource.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=60 \
     --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=105 \
     --group g-NW1_PAS
    

    Überprüfen Sie den Status des Clusters.

    sudo pcs status
    
    # Node List:
    #   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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  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
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. Konfigurieren Sie die Einschränkung so, dass die PAS-Ressourcengruppe erst gestartet wird, nachdem die ASCS-Instanz gestartet wurde.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
    

Installieren einer SAP Netweaver AAS-Instanz

  1. [2] Überprüfen Sie den Status des Clusters. Stellen Sie vor dem Konfigurieren der AAS-Ressource für die Installation sicher, dass die ASCS-, ERS- und PAS-Ressourcen gestartet sind.

    sudo pcs status
    
    # Node List:
    #   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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  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
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  2. [2] Erstellen Sie Dateisystem-, virtuelle IP- und Health-Probe-Ressourcen für die AAS-Instanz.

    sudo pcs node unstandby sap-cl2
    # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore. 
    sudo pcs resource disable g-NW1_PAS
    sudo pcs node standby sap-cl1
    # Execute below command to cleanup resource, if required
    pcs resource cleanup rsc_sap_NW1_ERS01
    
    sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31 --group g-NW1_AAS
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' 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_AAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_AAS
    

    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. Da die Ressourcengruppe g-NW1_PAS beendet wird, werden alle PAS-Ressourcen im Zustand (deaktiviert) beendet.

    sudo pcs status
    
    # Node List:
    #   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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   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
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    
  3. [2] Ändern Sie den Eigentümer des Ordners /usr/sap/SID/D03, nachdem das Dateisystem gemountet wurde.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D03
    
  4. [2] Installieren Sie SAP Netweaver AAS.

    Installieren Sie einen SAP NetWeaver AAS als Stamm auf dem zweiten Knoten, indem Sie einen virtuellen Hostnamen verwenden, der der IP-Adresse der Front-End-Konfiguration des Lastenausgleichs für den PAS zugeordnet ist. Verwenden Sie z. B. sapaas, 10.90.90.31, und die Instanznummer, die Sie für die Probe des Lastenausgleichs verwendet haben, z. B. 03.

    Sie können den sapinst-Parameter SAPINST_REMOTE_ACCESS_USER verwenden, um anderen Benutzern als root das Herstellen einer Verbindung mit sapinst zu ermöglichen.

    # 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=<aas_virtual_hostname>
    
  5. Aktualisieren Sie die /usr/sap/sapservices-Datei.

    Um den Start der Instanzen durch das „sapinit“-Startskript zu verhindern, müssen alle von Pacemaker verwalteten Instanzen aus der Datei /usr/sap/sapservices auskommentiert werden.

    sudo vi /usr/sap/sapservices
    
    # On the node where AAS is installed, comment out the following lines. 
    #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
    
  6. [2] Erstellen Sie eine AAS-Cluster-Ressource.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=60 \
     --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=105 \
     --group g-NW1_AAS
    

    Überprüfen Sie den Status des Clusters.

    sudo pcs status
    
    # Node List:
    #   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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   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
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    
  7. Konfigurieren Sie die Einschränkung so, dass die AAS-Ressourcengruppe erst gestartet wird, nachdem die ASCS-Instanz gestartet wurde.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
    

Nachkonfiguration für PAS- und AAS-Instanzen

  1. [1] Damit PAS und AAS auf einem beliebigen Cluster-Knoten (sap-cl1 oder sap-cl2) ausgeführt werden können, muss der Inhalt $HOME/.hdbvon <sid>adm beiden Cluster-Knoten kopiert werden.

    # Check current content of /home/nw1adm/.hdb on sap-cl1
    sap-cl1:nw1adm > ls -ltr $HOME/.hdb
    drwx------. 2 nw1adm sapsys 66 Aug  8 19:11 sappas
    drwx------. 2 nw1adm sapsys 84 Aug  8 19:12 sap-cl1
    # Check current content of /home/nw1adm/.hdb on sap-cl2
    sap-cl2:nw1adm > ls -ltr $HOME/.hdb
    total 0
    drwx------. 2 nw1adm sapsys 64 Aug  8 20:25 sap-cl2
    drwx------. 2 nw1adm sapsys 66 Aug  8 20:26 sapaas
    
    # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb
    # Copy sappas directory from sap-cl1 to sap-cl2
    sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb
    # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host. 
    sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas . 
    
  2. [1] Um sicherzustellen, dass die PAS- und AAS-Instanzen nicht auf denselben Knoten ausgeführt werden, wenn beide Knoten ausgeführt werden, fügen Sie eine negative Colocation-Einschränkung mit dem folgenden Befehl hinzu:

    sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000
    sudo pcs node unstandby sap-cl1
    sudo pcs resource enable g-NW1_PAS
    

    Die Score von -1000 stellt sicher, dass, wenn nur ein Knoten verfügbar ist, beide Instanzen weiterhin auf dem anderen Knoten ausgeführt werden. Wenn Sie die AAS-Instanz in einer solchen Situation herunterfahren möchten, können Sie score=-INFINITY verwenden, um diese Bedingung zu erzwingen.

  3. Überprüfen Sie den Status des Clusters.

    sudo pcs status
    
    # Node List:
    #   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
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    

Testen der Clustereinrichtung

Testen Sie Ihren Pacemaker-Cluster gründlich, indem Sie die typischen Failovertests ausführen.