Udostępnij przez


Wdrażanie instancji dialogowych SAP przy użyciu maszyn wirtualnych SAP ASCS/SCS o wysokiej dostępności w systemie RHEL

W tym artykule opisano sposób instalacji i konfiguracji podstawowego serwera aplikacji (PAS) i dodatkowego serwera aplikacji (AAS) w tym samym klastrze wysokiej dostępności ABAP SAP Central Services (ASCS)/SAP Central Services (SCS) działającym w systemie Red Hat Enterprise Linux (RHEL).

References

Overview

W tym artykule opisano scenariusz optymalizacji kosztów, w którym wdrażasz instancje dialogowe PAS i AAS wraz z instancjami SAP ASCS/SCS i Enqueue Replication Server (ERS) w zestawie wysokiej dostępności. Aby zminimalizować liczbę maszyn wirtualnych dla pojedynczego systemu SAP, należy zainstalować usługę PAS i usługę AAS na tym samym hoście, na którym działają systemy SAP ASCS/SCS i SAP ERS. Dzięki temu, że usługa SAP ASCS/SCS jest skonfigurowana w konfiguracji klastra o wysokiej dostępności, chciałbyś, aby PAS i AAS były również zarządzane przez ten klaster. Konfiguracja jest w zasadzie dodatkiem do już skonfigurowanej konfiguracji klastra SAP ASCS/SCS. W tej konfiguracji usługi PAS i AAS są instalowane na wirtualnej nazwie hosta, a jego katalog wystąpień jest zarządzany przez klaster.

W przypadku tej konfiguracji usługi PAS i AAS wymagają katalogu instancji o wysokiej dostępności (/usr/sap/<SID>/D<nr>). System plików katalogowych wystąpienia należy umieścić w tym samym magazynie o wysokiej dostępności, który został użyty do konfiguracji wystąpienia ASCS i ERS. Przedstawiona architektura prezentuje system plików NFS w usłudze Azure Files lub Azure NetApp Files dla zapewnienia wysokiej dostępności katalogu instancji w konfiguracji.

W przykładzie przedstawionym w tym artykule do opisania wdrożenia są używane następujące informacje systemowe:

Nazwa wystąpienia Numer wystąpienia Nazwa hosta wirtualnego Wirtualny adres IP (port sondy)
ABAP SAP Central Services (ASCS) 00 sapascs 10.90.90.10 (62000)
Serwer replikacji kolejki (ERS) 01 sapers 10.90.90.9 (62001)
Podstawowy serwer aplikacji (PAS) 02 sappas 10.90.90.30 (62002)
Dodatkowy serwer aplikacji (AAS) 03 sapers 10.90.90.31 (62003)
Identyfikator systemu SAP NW1 --- ---

Note

Zainstaluj dodatkowe wystąpienia aplikacji SAP na oddzielnych maszynach wirtualnych, jeśli chcesz skalować.

Diagram przedstawiający architekturę instalacji instancji dialogowej z klastrem SAP ASCS/SCS.

Ważne zagadnienia dotyczące rozwiązania optymalizacji kosztów

  • W konfiguracji klastra SAP ASCS/SCS można wdrożyć tylko jedno wystąpienie okien dialogowych PAS oraz jedno AAS.
  • Jeśli chcesz rozszerzyć system SAP poziomo przy użyciu większej liczby serwerów aplikacji (takich jak sapa03 i sapa04), możesz zainstalować je na oddzielnych maszynach wirtualnych. W przypadku instalowania serwerów PAS i AAS na wirtualnych nazwach hostów można zainstalować więcej serwerów aplikacji przy użyciu nazwy hosta fizycznego lub wirtualnego na oddzielnych maszynach wirtualnych. Aby dowiedzieć się więcej na temat przypisywania nazwy hosta wirtualnego do maszyny wirtualnej, zobacz blog Używanie nazw hostów wirtualnych SAP z systemem Linux na platformie Azure.
  • W przypadku wdrożenia PAS i AAS z konfiguracją klastra SAP ASCS/SCS, liczby instancji ASCS, ERS, PAS i AAS muszą być różne.
  • Rozważ odpowiednie ustalanie rozmiaru jednostek SKU maszyny wirtualnej na podstawie wytycznych dotyczących rozmiaru. Należy uwzględnić zachowanie klastra, w którym wiele wystąpień SAP (ASCS, ERS, PAS i AAS) może działać na jednej maszynie wirtualnej, gdy inna maszyna wirtualna w klastrze jest niedostępna.
  • Wystąpienia okien dialogowych (PAS i AAS) uruchomione z konfiguracją klastra SAP ASCS/SCS muszą być zainstalowane przy użyciu nazwy hosta wirtualnego.
  • Należy również użyć tego samego rozwiązania do przechowywania danych konfiguracji klastra SAP ASCS/SCS, aby wdrożyć wystąpienia PAS i AAS. Jeśli na przykład skonfigurowałeś klaster SAP ASCS/SCS przy użyciu NFS na Azure Files, to samo rozwiązanie magazynowe musi być używane do wdrażania PAS i AAS.
  • Katalog /usr/sap/<SID>/D<nr> wystąpień PAS i AAS musi być zainstalowany w systemie plików NFS i jest zarządzany jako zasób przez klaster.

    Note

    W przypadku systemów SAP J2EE nie jest obsługiwane umieszczanie /usr/sap/<SID>/J<nr> na NFS w usłudze Azure Files.

  • Aby zainstalować więcej serwerów aplikacji na oddzielnych maszynach wirtualnych, można użyć udziałów NFS lub lokalnego dysku zarządzanego dla systemu plików katalogu wystąpień. Jeśli instalujesz więcej serwerów aplikacji dla systemu SAP J2EE, /usr/sap/<SID>/J<nr> korzystanie z NFS na Azure Files nie jest obsługiwane.
  • W tradycyjnej konfiguracji wysokiej dostępności SAP ASCS/SCS instancje serwera aplikacji działające na oddzielnych maszynach wirtualnych nie są dotknięte, gdy występuje jakikolwiek wpływ na węzły klastra SAP ASCS i ERS. Jednak w przypadku konfiguracji optymalizacji kosztów wystąpienie PAS lub AAS zostaje ponownie uruchomione, gdy występuje wpływ na jeden z węzłów w klastrze.
  • Zapoznaj się z zagadnieniami dotyczącymi NFS na Azure Files i zagadnieniami dotyczącymi Azure NetApp Files, ponieważ te same zagadnienia dotyczą tej konfiguracji.

Prerequisites

Konfiguracja opisana w tym artykule jest dodatkiem do już skonfigurowanej konfiguracji klastra SAP ASCS/SCS. W tej konfiguracji usługi PAS i AAS są instalowane na wirtualnej nazwie hosta, a jego katalog wystąpień jest zarządzany przez klaster. Na podstawie magazynu wykonaj kroki opisane w poniższych artykułach, aby skonfigurować zasób SAPInstance dla wystąpienia SAP ASCS i SAP ERS w klastrze.

Po zainstalowaniu wystąpień ASCS, ERS i bazy danych przy użyciu Menedżera aprowizacji oprogramowania (SWPM), wykonaj następne kroki, aby zainstalować wystąpienia PAS i AAS.

Konfigurowanie usługi Azure Load Balancer dla usług PAS i AAS

W tym artykule założono, że skonfigurowano już moduł równoważenia obciążenia dla konfiguracji klastra SAP ASCS/SCS zgodnie z opisem w temacie Konfigurowanie usługi Azure Load Balancer. W tym samym wystąpieniu usługi Azure Load Balancer wykonaj następujące kroki, aby utworzyć więcej adresów IP front-end i reguł równoważenia obciążenia dla usług PAS i AAS.

  1. Otwórz wewnętrzny moduł równoważenia obciążenia utworzony dla konfiguracji klastra SAP ASCS/SCS.
  2. Konfiguracja adresu IP frontend: Utwórz dwa adresy IP frontend, jeden dla PAS i drugi dla AAS (na przykład 10.90.90.30 i 10.90.90.31).
  3. Pula zaplecza: ta pula pozostaje taka sama, ponieważ wdrażamy usługi PAS i AAS w tej samej puli zaplecza.
  4. Reguły ruchu przychodzącego: utwórz dwie reguły równoważenia obciążenia, jedną dla PAS i drugą dla AAS. Wykonaj te same kroki dla obu reguł równoważenia obciążenia.
  5. Adres IP frontonu: wybierz adres IP frontonu.
    1. Pula serwerów zaplecza: wybierz pulę serwerów zaplecza.
    2. Porty wysokiej dostępności: wybierz tę opcję.
    3. Protokół: wybierz pozycję TCP.
    4. Sonda kondycji: utwórz sondę kondycji z następującymi szczegółami (dotyczy zarówno PAS, jak i AAS):
      1. Protokół: wybierz pozycję TCP.
      2. Port: na przykład 620<Nr instancji> dla PAS i 620<Nr instancji> dla AAS.
      3. Interwał: wprowadź wartość 5.
      4. Próg sondy: wprowadź 2.
    5. Limit czasu bezczynności (w minutach): wprowadź wartość 30.
    6. Włącz pływający adres IP: wybierz tę opcję.

Właściwość konfiguracji sondy zdrowotnej numberOfProbes, znana również jako próg niezdrowy w portalu Azure, nie jest uwzględniana. Aby kontrolować liczbę pomyślnych lub nieudanych kolejnych sond, ustaw właściwość probeThreshold na wartość 2. Obecnie nie można ustawić tej właściwości przy użyciu witryny Azure Portal. Użyj interfejsu wiersza polecenia platformy Azure lub polecenia programu PowerShell .

Jeśli maszyny wirtualne bez publicznych adresów IP są umieszczane w puli zaplecza wewnętrznego standardowego wystąpienia usługi Azure Load Balancer, nie ma wychodzącego połączenia z Internetem, chyba że zostanie wykonana dodatkowa konfiguracja, aby umożliwić routing do publicznych punktów końcowych. Aby uzyskać instrukcje dotyczące uzyskiwania łączności wychodzącej, zobacz temat Publiczna łączność punktu końcowego dla maszyn wirtualnych przy użyciu usługi Azure Standard Load Balancer w scenariuszach wysokiej dostępności SAP.

Important

Nie włączaj znaczników czasu TCP na maszynach wirtualnych umieszczonych za Azure Load Balancerem. Włączenie sygnatur czasowych protokołu TCP powoduje, że sondy kondycji zawodzą. Ustaw parametr net.ipv4.tcp_timestamps na 0. Aby uzyskać więcej informacji, zobacz Load Balancer health probes (Sondy kondycji usługi Load Balancer).

Przygotowywanie serwerów do instalacji systemów PAS i AAS

Gdy kroki w tym dokumencie są oznaczone następującymi prefiksami, oznaczają:

  • [A]: Dotyczy wszystkich węzłów.
  • [1]: Dotyczy tylko węzła 1.
  • [2]: Dotyczy tylko węzła 2.
  1. [A] Skonfiguruj rozpoznawanie nazw hosta.

    Można użyć serwera DNS lub zmodyfikować /etc/hosts na wszystkich węzłach. Ten przykład pokazuje, jak używać pliku /etc/hosts. Zastąp adres IP i nazwę hosta w następujących poleceniach:

    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] Utwórz katalogi SAP w udziale NFS. Zainstaluj udział NFS sapnw1 tymczasowo na jednej z maszyn wirtualnych i utwórz katalogi SAP, które mają być używane jako zagnieżdżone punkty instalacji.

    1. Jeśli używasz systemu plików NFS w usłudze 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. Jeśli używasz usługi 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] Utwórz katalogi udostępnione.

    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] Konfigurowanie miejsca wymiany. Podczas instalacji instancji dialogowej z usługami centralnymi należy skonfigurować więcej pamięci wymiany.

    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
    

    Uruchom ponownie agenta, aby aktywować zmianę.

    sudo service waagent restart
    
  5. [A] Dodaj reguły zapory dla PAS i AAS.

    # 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
    

Zainstaluj instancję PAS SAP Netweaver

  1. [1] Sprawdź stan klastra. Przed skonfigurowaniem zasobu PAS do instalacji upewnij się, że zasoby usługi ASCS i ERS są skonfigurowane i uruchomione.

    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] Utwórz zasoby systemu plików, wirtualnego adresu IP i sondy diagnostycznej dla instancji PAS.

    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' \
      fast_stop=no 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 \
      fast_stop=no 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' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_PAS
    

    Upewnij się, że stan klastra jest prawidłowy i że wszystkie zasoby są uruchomione. Nie jest istotne, na którym węźle pracują zasoby.

    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] Zmień własność /usr/sap/SID/D02 folderu po zainstalowaniu systemu plików.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] Zainstaluj oprogramowanie SAP Netweaver PAS.

    Zainstaluj serwer PAS oprogramowania SAP NetWeaver jako katalog główny w pierwszym węźle przy użyciu nazwy hosta wirtualnego mapującego na adres IP konfiguracji frontonu modułu równoważenia obciążenia dla pasa. Na przykład użyj sappas, 10.90.90.30 i numeru wystąpienia, który użyłeś do sondy równoważenia obciążenia, na przykład 02.

    Możesz użyć parametru SAPINST_REMOTE_ACCESS_USER sapinst, aby umożliwić użytkownikowi bez uprawnień administratora nawiązanie połączenia z programem sapinst.

    # 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. Zaktualizuj plik /usr/sap/sapservices.

    Aby zapobiec uruchomieniu wystąpień przez skrypt startowy sapinit, wszystkie wystąpienia zarządzane przez program Pacemaker muszą być skomentowane w pliku /usr/sap/sapservices.

    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] Utwórz zasób klastra PAS.

    # 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
    

    Sprawdź stan klastra.

    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. Skonfiguruj ograniczenie, aby uruchomić grupę zasobów PAS dopiero po uruchomieniu wystąpienia usługi ASCS.

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

Zainstaluj instancję SAP Netweaver AAS

  1. [2] Sprawdź stan klastra. Przed skonfigurowaniem zasobu usługi AAS na potrzeby instalacji upewnij się, że są uruchomione zasoby ASCS, ERS i PAS.

    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] Tworzenie zasobów systemu plików, wirtualnego adresu IP i sondy kondycji dla wystąpienia usługi AAS.

    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' \
      fast_stop=no 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 \
      fast_stop=no 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' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_AAS
    

    Upewnij się, że stan klastra jest prawidłowy i że wszystkie zasoby są uruchomione. Nie jest istotne, na którym węźle pracują zasoby. Ponieważ grupa zasobów g-NW1_PAS jest zatrzymana, wszystkie zasoby PAS są zatrzymane w stanie (wyłączenia).

    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] Zmień własność folderu po zainstalowaniu /usr/sap/SID/D03 systemu plików.

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

    Zainstaluj SAP NetWeaver AAS jako użytkownik root na drugim węźle, używając nazwy hosta wirtualnego przypisanej do adresu IP konfiguracji frontonu równoważenia obciążenia dla PAS. Na przykład użyj sapaas, 10.90.90.31 i numeru wystąpienia, którego użyłeś do sondowania równoważnika obciążenia, na przykład 03.

    Możesz użyć parametru SAPINST_REMOTE_ACCESS_USER sapinst, aby umożliwić użytkownikowi bez uprawnień administratora nawiązanie połączenia z programem sapinst.

    # 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. Zaktualizuj plik /usr/sap/sapservices.

    Aby zapobiec uruchomieniu wystąpień przez skrypt startowy sapinit, wszystkie wystąpienia zarządzane przez program Pacemaker muszą być skomentowane w pliku /usr/sap/sapservices.

    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] Utwórz zasób klastra AAS.

    # 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
    

    Sprawdź stan klastra.

    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. Skonfiguruj ograniczenie, aby uruchomić grupę zasobów usługi AAS dopiero po uruchomieniu wystąpienia usługi ASCS.

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

Konfiguracja wystąpień PAS i AAS

  1. [1] Aby usługi PAS i AAS działały na dowolnym węźle klastra (sap-cl1 lub sap-cl2), zawartość z $HOME/.hdb w <sid>adm z obu węzłów klastra musi zostać skopiowana.

    # 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] Aby upewnić się, że wystąpienia PAS i AAS nie działają w tych samych węzłach, gdy oba węzły są uruchomione, dodaj ujemne ograniczenie kolokacji za pomocą następującego polecenia:

    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
    

    Wynik -1000 gwarantuje, że jeśli tylko jeden węzeł jest dostępny, oba wystąpienia będą nadal działać na drugim węźle. Jeśli chcesz utrzymywać wystąpienie AAS w stanie zatrzymania w takiej sytuacji, możesz użyć score=-INFINITY do wymuszenia tego warunku.

  3. Sprawdź stan klastra.

    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
    

Testowanie konfiguracji klastra

Dokładnie przetestuj klaster Pacemaker, uruchamiając typowe testy trybu failover.