Wysoka dostępność oprogramowania SAP NetWeaver na maszynach wirtualnych platformy Azure w systemie SUSE Linux Enterprise Server dla aplikacji SAP

W tym artykule opisano sposób wdrażania maszyn wirtualnych, konfigurowania maszyn wirtualnych, instalowania struktury klastra i instalowania systemu opartego na platformie SAP NetWeaver lub SAP ABAP o wysokiej dostępności. W przykładowych konfiguracjach używane jest wystąpienie usługi ASCS o numerze 00, ERS o numerze 02 i identyfikatorze systemu SAP NW1.

W przypadku nowych implementacji w systemie SLES dla aplikacji SAP 15 zalecamy wdrożenie wysokiej dostępności dla usługi SAP ASCS/ERS w prostej konfiguracji instalacji. Klasyczna konfiguracja programu Pacemaker oparta na systemach plików kontrolowanych przez klaster dla katalogów usług centralnych SAP opisana w tym artykule jest nadal obsługiwana.

Najpierw przeczytaj następujące notatki i dokumenty SAP

Omówienie

Aby zapewnić wysoką dostępność, oprogramowanie SAP NetWeaver wymaga serwera NFS. Serwer NFS jest skonfigurowany w osobnym klastrze i może być używany przez wiele systemów SAP.

SAP NetWeaver High Availability overview

Serwer NFS, SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS i baza danych SAP HANA używają wirtualnej nazwy hosta i wirtualnych adresów IP. Na platformie Azure moduł równoważenia obciążenia jest wymagany do korzystania z wirtualnego adresu IP. Zalecamy używanie modułu równoważenia obciążenia w warstwie Standardowa. Przedstawiona konfiguracja przedstawia moduł równoważenia obciążenia z:

  • Adres IP frontonu 10.0.0.7 dla usługi ASCS
  • Adres IP frontonu 10.0.0.8 dla usługi ERS
  • Port sondy 62000 dla usługi ASCS
  • Port sondy 62101 dla ERS

Konfigurowanie serwera NFS o wysokiej dostępności

Uwaga

Zalecamy wdrożenie jednej z usług NFS platformy Azure: NFS w usłudze Azure Files lub woluminach ANF NFS do przechowywania udostępnionych danych w systemie SAP o wysokiej dostępności. Należy pamiętać, że wyróżniamy architektury referencyjne sap, korzystając z klastrów NFS.
Przewodniki konfiguracyjne SAP dla systemu SAP NW o wysokiej dostępności systemu SAP z natywnymi usługami NFS to:

Oprogramowanie SAP NetWeaver wymaga udostępnionego magazynu dla katalogu transportu i profilu. Przeczytaj artykuł Wysoka dostępność systemu plików NFS na maszynach wirtualnych platformy Azure na serwerze SUSE Linux Enterprise Server , aby dowiedzieć się, jak skonfigurować serwer NFS dla oprogramowania SAP NetWeaver.

Przygotowywanie infrastruktury

Agent zasobów dla wystąpienia SAP jest zawarty w systemie SUSE Linux Enterprise Server for SAP Applications. Obraz dla systemu SUSE Linux Enterprise Server dla aplikacji SAP 12 lub 15 jest dostępny w witrynie Azure Marketplace. Możesz użyć obrazu do wdrożenia nowych maszyn wirtualnych.

Ręczne wdrażanie maszyn wirtualnych z systemem Linux za pośrednictwem witryny Azure Portal

W tym dokumencie przyjęto założenie, że grupa zasobów, usługa Azure Virtual Network i podsieć zostały już wdrożone.

Wdrażanie maszyn wirtualnych za pomocą protokołu SLES dla obrazu aplikacji SAP. Wybierz odpowiednią wersję obrazu SLES obsługiwaną dla systemu SAP. Maszynę wirtualną można wdrożyć w dowolnej z opcji dostępności — zestawu skalowania maszyn wirtualnych, strefy dostępności lub zestawu dostępności.

Konfigurowanie modułu równoważenia obciążenia platformy Azure

Podczas konfigurowania maszyny wirtualnej masz możliwość utworzenia lub wybrania wyjścia z modułu równoważenia obciążenia w sekcji dotyczącej sieci. Wykonaj poniższe kroki, aby skonfigurować standardowy moduł równoważenia obciążenia na potrzeby konfiguracji wysokiej dostępności usług SAP ASCS i SAP ERS.

Postępuj zgodnie z przewodnikiem tworzenia modułu równoważenia obciążenia, aby skonfigurować standardowy moduł równoważenia obciążenia dla systemu SAP o wysokiej dostępności przy użyciu witryny Azure Portal. Podczas konfigurowania modułu równoważenia obciążenia należy wziąć pod uwagę następujące kwestie.

  1. Konfiguracja adresu IP frontonu: utwórz dwa adresy IP frontonu, jeden dla usługi ASCS i drugi dla usługi ERS. Wybierz tę samą sieć wirtualną i podsieć co maszyny wirtualne USŁUGI ASCS/ERS.
  2. Pula zaplecza: utwórz pulę zaplecza i dodaj maszyny wirtualne ASCS i ERS.
  3. Reguły ruchu przychodzącego: utwórz dwie reguły równoważenia obciążenia, jedną dla usługi ASCS i drugą dla usługi ERS. Wykonaj te same kroki dla obu reguł równoważenia obciążenia.
    • Adres IP frontonu: wybierz adres IP frontonu
    • Pula zaplecza: wybierz pulę zaplecza
    • Sprawdź "Porty wysokiej dostępności"
    • Protokół: TCP
    • Sonda kondycji: Utwórz sondę kondycji z poniższymi szczegółami (dotyczy zarówno usługi ASCS, jak i ERS)
      • Protokół: TCP
      • Port: [na przykład: 620<Instance-no.> for ASCS, 621<Instance-no.> for ERS]
      • Interwał: 5
      • Próg sondy: 2
    • Limit czasu bezczynności (minuty): 30
    • Sprawdź pozycję "Włącz pływający adres IP"

Uwaga

Właściwość konfiguracji sondy kondycji NumberOfProbes, inaczej znana jako "Próg złej kondycji" w portalu, nie jest uwzględniana. Aby więc kontrolować liczbę pomyślnych lub zakończonych niepowodzeniem kolejnych sond, ustaw właściwość "probeThreshold" na 2. Obecnie nie można ustawić tej właściwości przy użyciu witryny Azure Portal, dlatego użyj polecenia interfejsu wiersza polecenia platformy Azure lub programu PowerShell .

Ważne

Pływający adres IP nie jest obsługiwany w pomocniczej konfiguracji adresu IP karty sieciowej w scenariuszach równoważenia obciążenia. Aby uzyskać szczegółowe informacje, zobacz Ograniczenia usługi Azure Load Balancer. Jeśli potrzebujesz dodatkowego adresu IP maszyny wirtualnej, wdróż drugą kartę sieciową.

Uwaga

Jeśli maszyny wirtualne bez publicznych adresów IP są umieszczane w puli zaplecza wewnętrznego (bez publicznego adresu IP) standardowego modułu równoważenia obciążenia platformy Azure, nie będzie żadnych wychodzących połączeń internetowych, chyba że zostanie wykonana dodatkowa konfiguracja umożliwiająca routing do publicznych punktów końcowych. Aby uzyskać szczegółowe informacje na temat sposobu uzyskiwania łączności wychodzącej, zobacz Publiczna łączność punktu końcowego dla maszyn wirtualnych przy użyciu usługi Azure usługa Load Balancer w warstwie Standardowa w scenariuszach wysokiej dostępności oprogramowania SAP.

Ważne

  • Nie włączaj sygnatur czasowych TCP na maszynach wirtualnych platformy Azure umieszczonych za usługą Azure Load Balancer. Włączenie sygnatur czasowych protokołu TCP spowoduje niepowodzenie sond kondycji. net.ipv4.tcp_timestamps Ustaw parametr na 0. Aby uzyskać szczegółowe informacje, zobacz Load Balancer health probes (Sondy kondycji modułu równoważenia obciążenia).
  • Aby zapobiec zmianie ręcznie ustawionej net.ipv4.tcp_timestamps wartości z 0 powrotem na 1, należy zaktualizować program saptune do wersji 3.1.1 lub nowszej. Aby uzyskać więcej informacji, zobacz saptune 3.1.1 — Czy muszę zaktualizować?.

Konfigurowanie (A)SCS

Następnie przygotujesz i zainstalujesz wystąpienia usług SAP ASCS i ERS.

Tworzenie klastra Pacemaker

Wykonaj kroki opisane w temacie Konfigurowanie programu Pacemaker na serwerze SUSE Linux Enterprise Server na platformie Azure , aby utworzyć podstawowy klaster Pacemaker dla tego serwera (A)SCS.

Instalacja

Następujące elementy mają prefiks [A] — dotyczy wszystkich węzłów [1] — dotyczy tylko węzła 1 lub [2] — dotyczy tylko węzła 2.

  1. [A] Instalowanie Połączenie or SUSE

    sudo zypper install sap-suse-cluster-connector
    

    Uwaga

    Znany problem z używaniem łącznika w nazwach hostów został rozwiązany w wersji 3.1.1 pakietu sap-suse-cluster-connector. Upewnij się, że używasz co najmniej wersji 3.1.1 pakietu sap-suse-cluster-connector, jeśli używasz węzłów klastra z kreską w nazwie hosta. W przeciwnym razie klaster nie będzie działać.

    Upewnij się, że zainstalowano nową wersję łącznika klastra SAP SUSE. Stary został nazwany sap_suse_cluster_connector, a nowy jest nazywany sap-suse-cluster-connector.

    sudo zypper info sap-suse-cluster-connector
    
    Information for package sap-suse-cluster-connector:
    ---------------------------------------------------
    Repository     : SLE-12-SP3-SAP-Updates
    Name           : sap-suse-cluster-connector
    <b>Version        : 3.0.0-2.2</b>
    Arch           : noarch
    Vendor         : SUSE LLC <https://www.suse.com/>
    Support Level  : Level 3
    Installed Size : 41.6 KiB
    <b>Installed      : Yes</b>
    Status         : up-to-date
    Source package : sap-suse-cluster-connector-3.0.0-2.2.src
    Summary        : SUSE High Availability Setup for SAP Products
    
  2. [A] Aktualizowanie agentów zasobów SAP

    Do korzystania z nowej konfiguracji opisanej w tym artykule jest wymagana poprawka pakietu resource-agents. Możesz sprawdzić, czy poprawka jest już zainstalowana za pomocą następującego polecenia

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    Dane wyjściowe powinny być podobne do

    <parameter name="IS_ERS" unique="0" required="0">
    

    Jeśli polecenie grep nie znajdzie parametru IS_ERS, należy zainstalować poprawkę wymienioną na stronie pobierania SUSE.

    # example for patch for SLES 12 SP1
    sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
    # example for patch for SLES 12 SP2
    sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
    
  3. [A] Konfigurowanie rozpoznawania nazw hosta

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

    sudo vi /etc/hosts
    
    # Insert the following lines to /etc/hosts. Change the IP address and hostname to match your environment
    # IP address of the load balancer frontend configuration for NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    

Przygotowanie do instalacji oprogramowania SAP NetWeaver

  1. [A] Tworzenie katalogów udostępnionych

    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/ERS02
    
    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/ERS02
    
  2. [A] Konfigurowanie autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    +auto.master
    /- /etc/auto.direct
    

    Tworzenie pliku za pomocą polecenia

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    /usr/sap/NW1/SYS -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sidsys
    

    Ponowne uruchamianie autofs w celu zainstalowania nowych udziałów

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] Konfigurowanie pliku SWAP

    Tworzenie pliku wymiany zgodnie z definicją w temacie Tworzenie pliku SWAP dla maszyny wirtualnej z systemem Linux platformy Azure

    #!/bin/sh
    
    # Percent of space on the ephemeral disk to dedicate to swap. Here 30% is being used. Modify as appropriate.
    PCT=0.3
    
    # Location of swap file. Modify as appropriate based on location of ephemeral disk.
    LOCATION=/mnt
    
    if [ ! -f ${LOCATION}/swapfile ]
    then
    
        # Get size of the ephemeral disk and multiply it by the percent of space to allocate
        size=$(/bin/df -m --output=target,avail | /usr/bin/awk -v percent="$PCT" -v pattern=${LOCATION} '$0 ~ pattern {SIZE=int($2*percent);print SIZE}')
        echo "$size MB of space allocated to swap file"
    
         # Create an empty file first and set correct permissions
        /bin/dd if=/dev/zero of=${LOCATION}/swapfile bs=1M count=$size
        /bin/chmod 0600 ${LOCATION}/swapfile
    
        # Make the file available to use as swap
        /sbin/mkswap ${LOCATION}/swapfile
    fi
    
    # Enable swap
    /sbin/swapon ${LOCATION}/swapfile
    /sbin/swapon -a
    
    # Display current swap status
    /sbin/swapon -s
    

    Utwórz plik wykonywalny.

    chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
    

    Zatrzymaj i uruchom maszynę wirtualną. Zatrzymywanie i uruchamianie maszyny wirtualnej jest konieczne tylko po raz pierwszy po utworzeniu pliku SWAP.

Instalowanie oprogramowania SAP NetWeaver ASCS/ERS

  1. [1] Tworzenie wirtualnego zasobu IP i sondy kondycji dla wystąpienia usługi ASCS

    Ważne

    Ostatnie testy wykazały sytuacje, w których netcat przestaje odpowiadać na żądania z powodu listy prac i ograniczenia obsługi tylko jednego połączenia. Zasób netcat przestaje nasłuchiwać żądań modułu równoważenia obciążenia platformy Azure, a pływający adres IP staje się niedostępny.
    W przypadku istniejących klastrów Pacemaker zalecamy w przeszłości zastąpienie serwera netcat socat. Obecnie zalecamy użycie agenta zasobów azure-lb, który jest częścią agentów zasobów pakietu z następującymi wymaganiami dotyczącymi wersji pakietu:

    • W przypadku systemu SLES 12 SP4/SP5 wersja musi być co najmniej resource-agents-4.3.018.a7fb5035-3.30.1.
    • W przypadku systemu SLES 15/15 SP1 wersja musi być co najmniej resource-agents-4.3.0184.6ee15eb2-4.13.1.

    Należy pamiętać, że zmiana będzie wymagać krótkiego przestoju.
    W przypadku istniejących klastrów Pacemaker, jeśli konfiguracja została już zmieniona tak, aby korzystała z serwera socat zgodnie z opisem w temacie Azure Load-Balancer Detection Hardening (Wzmacnianie zabezpieczeń wykrywania modułu równoważenia obciążenia platformy Azure), nie ma potrzeby natychmiastowego przełączania się do agenta zasobów azure-lb.

    sudo crm node standby nw1-cl-1
    
    sudo crm configure primitive fs_NW1_ASCS Filesystem device='nw1-nfs:/NW1/ASCS' directory='/usr/sap/NW1/ASCS00' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.0.0.7 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS fs_NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
       meta resource-stickiness=3000
    

    Upewnij się, że stan klastra jest prawidłowy i że wszystkie zasoby są uruchomione. Nie jest ważne, w którym węźle działają zasoby.

    sudo crm_mon -r
    
    # Node nw1-cl-1: standby
    # Online: [ nw1-cl-0 ]
    # 
    # Full list of resources:
    # 
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
    
  2. [1] Instalowanie oprogramowania SAP NetWeaver ASCS

    Zainstaluj program SAP NetWeaver ASCS jako katalog główny w pierwszym węźle przy użyciu wirtualnej nazwy hosta, która jest mapowana na adres IP konfiguracji frontonu modułu równoważenia obciążenia dla usługi ASCS, na przykład nw1-ascs, 10.0.0.7 i numer wystąpienia użyty na potrzeby sondy modułu równoważenia obciążenia, na przykład 00.

    Możesz użyć SAPINST_REMOTE_ACCESS_USER parametru sapinst, aby zezwolić użytkownikowi innego niż główny na nawiązywanie połączenia z oprogramowaniem sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Jeśli instalacja nie może utworzyć podfolderu w folderze /usr/sap/NW1/ASCS 00, spróbuj ustawić właściciela i grupę folderu ASCS00 i ponów próbę.

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1] Tworzenie wirtualnego zasobu IP i sondy kondycji dla wystąpienia usługi ERS

    sudo crm node online nw1-cl-1
    sudo crm node standby nw1-cl-0
    
    sudo crm configure primitive fs_NW1_ERS Filesystem device='nw1-nfs:/NW1/ASCSERS' directory='/usr/sap/NW1/ERS02' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.0.0.8 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62102 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS fs_NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

    Upewnij się, że stan klastra jest prawidłowy i że wszystkie zasoby są uruchomione. Nie jest ważne, w którym węźle działają zasoby.

    sudo crm_mon -r
    
    # Node nw1-cl-0: standby
    # Online: [ nw1-cl-1 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    #  Resource Group: g-NW1_ERS
    #      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    
  4. [2] Instalowanie oprogramowania SAP NetWeaver ERS

    Zainstaluj program SAP NetWeaver ERS jako katalog główny w drugim węźle przy użyciu wirtualnej nazwy hosta, która jest mapowana na adres IP konfiguracji frontonu modułu równoważenia obciążenia dla usługi ERS, na przykład nw1-aers, 10.0.0.8 i numer wystąpienia użyty na potrzeby sondy modułu równoważenia obciążenia, na przykład 02.

    Możesz użyć SAPINST_REMOTE_ACCESS_USER parametru sapinst, aby zezwolić użytkownikowi innego niż główny na nawiązywanie połączenia z oprogramowaniem sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Uwaga

    Użyj narzędzia SWPM SP 20 PL 05 lub nowszego. Niższe wersje nie ustawiają poprawnie uprawnień, a instalacja zakończy się niepowodzeniem.

    Jeśli instalacja nie może utworzyć podfolderu w folderze /usr/sap/NW1/ERS02, spróbuj ustawić właściciela i grupę folderu ERS02 i ponów próbę.

    chown nw1adm /usr/sap/NW1/ERS02
    chgrp sapsys /usr/sap/NW1/ERS02
    
  5. [1] Dostosowywanie profilów wystąpień USŁUGI ASCS/SCS i ERS

    • Profil USŁUGI ASCS/SCS

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the following lines
      service/halib = $(DIR_CT_RUN)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # Add the keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

      W przypadku obu systemów ENSA1 i ENSA2 upewnij się, że keepalive parametry systemu operacyjnego zostały ustawione zgodnie z opisem w uwagach sap 1410736.

    • Profil ERS

      sudo vi /sapmnt/NW1/profile/NW1_ERS02_nw1-aers
      
      # 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)
      
      # Add the following lines
      service/halib = $(DIR_CT_RUN)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [A] Konfigurowanie zachowania aktywności

    Komunikacja między serwerem aplikacji SAP NetWeaver a usługą ASCS/SCS jest kierowana przez programowy moduł równoważenia obciążenia. Moduł równoważenia obciążenia rozłącza nieaktywne połączenia po konfigurowalnym upłynięciu limitu czasu. Aby temu zapobiec, należy ustawić parametr w profilu SAP NetWeaver ASCS/SCS, jeśli używasz enSA1, i zmienić ustawienia systemu keepalive Linux na wszystkich serwerach SAP dla obu ENSA1/ENSA2. Przeczytaj 1410736 SAP Note, aby uzyskać więcej informacji.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A] Konfigurowanie użytkowników sap po instalacji

    # Add sidadm to the haclient group
    sudo usermod -aG haclient nw1adm
    
  8. [1] Dodawanie usług SAP ASCS i ERS do pliku sapservice

    Dodaj wpis usługi ASCS do drugiego węzła i skopiuj wpis usługi ERS do pierwszego węzła.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh nw1-cl-1 "cat >>/usr/sap/sapservices"
    sudo ssh nw1-cl-1 "cat /usr/sap/sapservices" | grep ERS02 | sudo tee -a /usr/sap/sapservices
    
  9. [1] Tworzenie zasobów klastra SAP

    W zależności od tego, czy korzystasz z systemu ENSA1, czy ENSA2, wybierz odpowiednią kartę, aby zdefiniować zasoby. Oprogramowanie SAP wprowadziło obsługę enSA2, w tym replikacji, w oprogramowaniu SAP NetWeaver 7.52. Począwszy od platformy ABAP 1809, system ENSA2 jest instalowany domyślnie. Aby uzyskać pomoc techniczną ENSA2, zobacz sap Note 2630416.

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
      operations \$id=rsc_sap_NW1_ASCS00-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \
      AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    sudo crm configure primitive rsc_sap_NW1_ERS02 SAPInstance \
      operations \$id=rsc_sap_NW1_ERS02-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" AUTOMATIC_RECOVER=false IS_ERS=true \
      meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS02
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS02:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online nw1-cl-0
    sudo crm configure property maintenance-mode="false"
    

Jeśli uaktualniasz starszą wersję i przełączasz się na serwer enqueue 2, zobacz uwaga sap 2641019.

Upewnij się, że stan klastra jest prawidłowy i że wszystkie zasoby są uruchomione. Nie jest ważne, w którym węźle działają zasoby.

sudo crm_mon -r
 
# Online: [ nw1-cl-0 nw1-cl-1 ]
#
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
#  Resource Group: g-NW1_ASCS
#      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
#  Resource Group: g-NW1_ERS
#      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
#      rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0

Przygotowywanie serwera aplikacji SAP NetWeaver

Niektóre bazy danych wymagają wykonania instalacji wystąpienia bazy danych na serwerze aplikacji. Przygotuj maszyny wirtualne serwera aplikacji, aby móc ich używać w takich przypadkach.

W krokach założono, że serwer aplikacji jest instalowany na serwerze innym niż serwery ASCS/SCS i HANA. W przeciwnym razie niektóre z poniższych kroków (takich jak konfigurowanie rozpoznawania nazw hostów) nie są potrzebne.

  1. Konfigurowanie systemu operacyjnego

    Zmniejsz rozmiar brudnej pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Niska wydajność zapisu na serwerach SLES 11/12 z dużą pamięcią RAM.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. Konfigurowanie rozpoznawania nazw hostów

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

    sudo vi /etc/hosts
    

    Wstaw następujące wiersze do /etc/hosts. Zmień adres IP i nazwę hosta tak, aby był zgodny ze środowiskiem

    # IP address of the load balancer frontend configuration for NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    # IP address of all application servers
    10.0.0.20 nw1-di-0
    10.0.0.21 nw1-di-1
    
  3. Tworzenie katalogu sapmnt

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  4. Konfigurowanie autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    +auto.master
    /- /etc/auto.direct
    

    Tworzenie nowego pliku za pomocą polecenia

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    

    Ponowne uruchamianie autofs w celu zainstalowania nowych udziałów

    sudo systemctl enable autofs
    sudo service autofs restart
    
  5. Konfigurowanie pliku SWAP

    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
    

    Uruchom ponownie agenta, aby aktywować zmianę

    sudo service waagent restart
    

Instalowanie bazy danych

W tym przykładzie oprogramowanie SAP NetWeaver jest zainstalowane na platformie SAP HANA. W tej instalacji można użyć każdej obsługiwanej bazy danych. Aby uzyskać więcej informacji na temat sposobu instalowania oprogramowania SAP HANA na platformie Azure, zobacz Wysoka dostępność oprogramowania SAP HANA na maszynach wirtualnych platformy Azure. Aby uzyskać listę obsługiwanych baz danych, zobacz sap Note 1928533.

  1. Uruchamianie instalacji wystąpienia bazy danych SAP

    Zainstaluj wystąpienie bazy danych SAP NetWeaver jako katalog główny przy użyciu wirtualnej nazwy hosta, która mapuje adres IP konfiguracji frontonu modułu równoważenia obciążenia dla bazy danych, na przykład nw1-db i 10.0.0.13.

    Możesz użyć SAPINST_REMOTE_ACCESS_USER parametru sapinst, aby zezwolić użytkownikowi innego niż główny na nawiązywanie połączenia z oprogramowaniem sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

Instalacja serwera aplikacji SAP NetWeaver

Wykonaj następujące kroki, aby zainstalować serwer aplikacji SAP.

  1. Przygotowywanie serwera aplikacji

    Wykonaj kroki opisane w rozdziale Przygotowywanie serwera aplikacji SAP NetWeaver powyżej, aby przygotować serwer aplikacji.

  2. Instalowanie serwera aplikacji SAP NetWeaver

    Zainstaluj podstawowy lub dodatkowy serwer aplikacji SAP NetWeaver.

    Możesz użyć SAPINST_REMOTE_ACCESS_USER parametru sapinst, aby zezwolić użytkownikowi innego niż główny na nawiązywanie połączenia z oprogramowaniem sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    
  3. Aktualizowanie bezpiecznego magazynu SAP HANA

    Zaktualizuj bezpieczny magazyn SAP HANA, aby wskazać nazwę wirtualną konfiguracji replikacji systemu SAP HANA.

    Uruchom następujące polecenie, aby wyświetlić listę wpisów

    hdbuserstore List
    

    Powinno to zawierać listę wszystkich wpisów i powinny wyglądać podobnie do następujących:

    DATA FILE       : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.0.0.14:30313
      USER: SAPABAP1
      DATABASE: HN1
    

    Dane wyjściowe pokazują, że adres IP domyślnego wpisu wskazuje maszynę wirtualną, a nie adres IP modułu równoważenia obciążenia. Ten wpis należy zmienić tak, aby wskazywał wirtualną nazwę hosta modułu równoważenia obciążenia. Pamiętaj, aby użyć tego samego portu (30313 w danych wyjściowych powyżej) i nazwy bazy danych (HN1 w danych wyjściowych powyżej)!

    su - nw1adm
    hdbuserstore SET DEFAULT nw1-db:30313@HN1 SAPABAP1 <password of ABAP schema>
    

Testowanie konfiguracji klastra

Poniższe testy są kopią przypadków testowych w przewodnikach najlepszych rozwiązań systemu SUSE. Są one kopiowane dla Twojej wygody. Zawsze przeczytaj również przewodniki dotyczące najlepszych rozwiązań i wykonaj wszystkie dodatkowe testy, które mogły zostać dodane.

  1. Testowanie konfiguracji HAGetFailoverConfig, HACheckConfig i HACheckFailoverConfig

    Uruchom następujące polecenia jako <sapsid>adm w węźle, w którym jest obecnie uruchomione wystąpienie usługi ASCS. Jeśli polecenia kończą się niepowodzeniem z błędem FAIL: Za mało pamięci, może to być spowodowane przez kreski w nazwie hosta. Jest to znany problem i zostanie rozwiązany przez system SUSE w pakiecie sap-suse-cluster-connector.

    nw1-cl-0:nw1adm 54> sapcontrol -nr 00 -function HAGetFailoverConfig
    
    # 15.08.2018 13:50:36
    # HAGetFailoverConfig
    # OK
    # HAActive: TRUE
    # HAProductVersion: Toolchain Module
    # HASAPInterfaceVersion: Toolchain Module (sap_suse_cluster_connector 3.0.1)
    # HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/
    # HAActiveNode:
    # HANodes: nw1-cl-0, nw1-cl-1
    
    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -function HACheckConfig
    
    # 15.08.2018 14:00:04
    # HACheckConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 2 ABAP instances detected
    # SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected
    # SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server
    # SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server
    # SUCCESS, SAP CONFIGURATION, ABAP instances on multiple hosts, ABAP instances on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP SPOOL service configuration, 2 ABAP instances with SPOOL service detected
    # SUCCESS, SAP STATE, Redundant ABAP SPOOL service state, 2 ABAP instances with active SPOOL service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP SPOOL service on multiple hosts, ABAP instances with active ABAP SPOOL service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP BATCH service configuration, 2 ABAP instances with BATCH service detected
    # SUCCESS, SAP STATE, Redundant ABAP BATCH service state, 2 ABAP instances with active BATCH service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP BATCH service on multiple hosts, ABAP instances with active ABAP BATCH service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP DIALOG service configuration, 2 ABAP instances with DIALOG service detected
    # SUCCESS, SAP STATE, Redundant ABAP DIALOG service state, 2 ABAP instances with active DIALOG service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP DIALOG service on multiple hosts, ABAP instances with active ABAP DIALOG service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP UPDATE service configuration, 2 ABAP instances with UPDATE service detected
    # SUCCESS, SAP STATE, Redundant ABAP UPDATE service state, 2 ABAP instances with active UPDATE service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP UPDATE service on multiple hosts, ABAP instances with active ABAP UPDATE service on multiple hosts detected
    # SUCCESS, SAP STATE, SCS instance running, SCS instance status ok
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (nw1-ascs_NW1_00), SAPInstance includes is-ers patch
    # SUCCESS, SAP CONFIGURATION, Enqueue replication (nw1-ascs_NW1_00), Enqueue replication enabled
    # SUCCESS, SAP STATE, Enqueue replication state (nw1-ascs_NW1_00), Enqueue replication active
    
    nw1-cl-0:nw1adm 56> sapcontrol -nr 00 -function HACheckFailoverConfig
    
    # 15.08.2018 14:04:08
    # HACheckFailoverConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version, SAPInstance includes is-ers patch
    
  2. Ręczne migrowanie wystąpienia usługi ASCS

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Uruchom następujące polecenia jako katalog główny, aby przeprowadzić migrację wystąpienia usługi ASCS.

    nw1-cl-0:~ # crm resource migrate rsc_sap_NW1_ASCS00 force
    # INFO: Move constraint created for rsc_sap_NW1_ASCS00
    
    nw1-cl-0:~ # crm resource unmigrate rsc_sap_NW1_ASCS00
    # INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  3. Testowanie węzła HAFailoverToNode

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Uruchom następujące polecenia jako <sapsid>adm, aby przeprowadzić migrację wystąpienia usługi ASCS.

    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -host nw1-ascs -user nw1adm <password> -function HAFailoverToNode ""
    
    # run as root
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    # Remove migration constraints
    nw1-cl-0:~ # crm resource clear rsc_sap_NW1_ASCS00
    #INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  4. Symulowanie awarii węzła

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Uruchom następujące polecenie jako katalog główny w węźle, w którym uruchomiono wystąpienie usługi ASCS

    nw1-cl-0:~ # echo b > /proc/sysrq-trigger
    

    Jeśli używasz usługi SBD, program Pacemaker nie powinien automatycznie uruchamiać się w węźle zabitym. Stan po ponownym uruchomieniu węzła powinien wyglądać następująco.

    Online: [ nw1-cl-1 ]
    OFFLINE: [ nw1-cl-0 ]
    
    Full list of resources:
    
    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
    Failed Actions:
    * rsc_sap_NW1_ERS02_monitor_11000 on nw1-cl-1 'not running' (7): call=219, status=complete, exitreason='none',
        last-rc-change='Wed Aug 15 14:38:38 2018', queued=0ms, exec=0ms
    

    Użyj następujących poleceń, aby uruchomić program Pacemaker w węźle zabitym, wyczyścić komunikaty SBD i wyczyścić zasoby, które zakończyły się niepowodzeniem.

    # run as root
    # list the SBD device(s)
    nw1-cl-0:~ # cat /etc/sysconfig/sbd | grep SBD_DEVICE=
    # SBD_DEVICE="/dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116;/dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1;/dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3"
    
    nw1-cl-0:~ # sbd -d /dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116 -d /dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1 -d /dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3 message nw1-cl-0 clear
    
    nw1-cl-0:~ # systemctl start pacemaker
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  5. Blokowanie komunikacji sieciowej

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Wykonaj regułę zapory, aby zablokować komunikację w jednym z węzłów.

    # Execute iptable rule on nw1-cl-0 (10.0.0.5) to block the incoming and outgoing traffic to nw1-cl-1 (10.0.0.6)
    iptables -A INPUT -s 10.0.0.6 -j DROP; iptables -A OUTPUT -d 10.0.0.6 -j DROP
    

    Gdy węzły klastra nie mogą komunikować się ze sobą, istnieje ryzyko scenariusza podzielonego mózgu. W takich sytuacjach węzły klastra będą próbować jednocześnie ogrodzenia, co spowoduje wyścig ogrodzenia.

    Podczas konfigurowania urządzenia ogrodzeniowego zaleca się skonfigurowanie pcmk_delay_max właściwości. Dlatego w przypadku scenariusza podziału mózgu klaster wprowadza losowe opóźnienie do pcmk_delay_max wartości, do akcji ogrodzenia w każdym węźle. Węzeł z najkrótszym opóźnieniem zostanie wybrany do ogrodzenia.

    Ponadto w konfiguracji ENSA 2 należy określić priorytety węzła hostowania zasobu USŁUGI ASCS w innym węźle podczas scenariusza podzielonego mózgu, zaleca się skonfigurowanie priority-fencing-delay właściwości w klastrze. Włączenie właściwości priority-fencing-delay umożliwia klastrowi wprowadzenie dodatkowego opóźnienia w akcji ogrodzenia specjalnie na węźle hostujący zasób ASCS, dzięki czemu węzeł ASCS wygra wyścig ogrodzenia.

    Wykonaj poniższe polecenie, aby usunąć regułę zapory.

    # If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command.
    iptables -D INPUT -s 10.0.0.6 -j DROP; iptables -D OUTPUT -d 10.0.0.6 -j DROP
    
  6. Testowanie ręcznego ponownego uruchamiania wystąpienia usługi ASCS

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Utwórz blokadę kolejki przez, na przykład edytuj użytkownika w transakcji su01. Uruchom następujące polecenia jako <sapsid>adm w węźle, w którym jest uruchomione wystąpienie usługi ASCS. Polecenia zatrzymają wystąpienie usługi ASCS i uruchomią je ponownie. Jeśli używasz architektury serwera enqueue 1, oczekuje się, że blokada kolejki zostanie utracona w tym teście. W przypadku korzystania z architektury serwera enqueue 2 kolejka zostanie zachowana.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StopWait 600 2
    

    Wystąpienie usługi ASCS powinno być teraz wyłączone w narzędziu Pacemaker

    rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Stopped (disabled)
    

    Uruchom ponownie wystąpienie usługi ASCS w tym samym węźle.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StartWait 600 2
    

    Blokada kolejkowania transakcji su01 powinna zostać utracona, a zaplecze powinno zostać zresetowane. Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  7. Zabij proces serwera komunikatów

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Uruchom następujące polecenia jako katalog główny, aby zidentyfikować proces serwera komunikatów i go zabić.

    nw1-cl-1:~ # pgrep -f ms.sapNW1 | xargs kill -9
    

    Jeśli tylko raz zabijesz serwer komunikatów, zostanie on uruchomiony ponownie przez program sapstart. Jeśli zabijesz to wystarczająco często, program Pacemaker ostatecznie przeniesie wystąpienie usługi ASCS do innego węzła, w przypadku enSA1. Uruchom następujące polecenia jako katalog główny, aby wyczyścić stan zasobu wystąpienia usługi ASCS i usługi ERS po teście.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  8. Proces kill enqueue server

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Uruchom następujące polecenia jako katalog główny w węźle, w którym uruchomiono wystąpienie usługi ASCS, aby zabić serwer kolejkowania.

    nw1-cl-0:~ # 
    #If using ENSA1
    pgrep -f en.sapNW1 | xargs kill -9
    #If using ENSA2
    pgrep -f enq.sapNW1 | xargs kill -9
    

    Wystąpienie usługi ASCS powinno natychmiast przejść w tryb failover do innego węzła, w przypadku enSA1. Wystąpienie usługi ERS powinno również przejść w tryb failover po uruchomieniu wystąpienia usługi ASCS. Uruchom następujące polecenia jako katalog główny, aby wyczyścić stan zasobu wystąpienia usługi ASCS i usługi ERS po teście.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  9. Proces serwera replikacji w kolejce kill

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Uruchom następujące polecenie jako katalog główny w węźle, w którym uruchomiono wystąpienie usługi ERS, aby zabić proces serwera replikacji w kolejce.

    nw1-cl-0:~ # pgrep -f er.sapNW1 | xargs kill -9
    

    Jeśli uruchomisz polecenie tylko raz, program sapstart uruchomi ponownie proces. Jeśli uruchomisz go wystarczająco często, program sapstart nie uruchomi ponownie procesu, a zasób będzie w stanie zatrzymania. Uruchom następujące polecenia jako katalog główny, aby wyczyścić stan zasobu wystąpienia usługi ERS po teście.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  10. Proces kill enqueue sapstartsrv

    Stan zasobu przed rozpoczęciem testu:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Uruchom następujące polecenia jako katalog główny w węźle, w którym działa usługa ASCS.

    nw1-cl-1:~ # pgrep -fl ASCS00.*sapstartsrv
    # 59545 sapstartsrv
    
    nw1-cl-1:~ # kill -9 59545
    

    Proces sapstartsrv powinien być zawsze uruchamiany ponownie przez agenta zasobów Pacemaker. Stan zasobu po teście:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

Następne kroki