Wysoka dostępność systemu SAP HANA skalowania w poziomie w systemie Red Hat Enterprise Linux

W tym artykule opisano sposób wdrażania systemu SAP HANA o wysokiej dostępności w konfiguracji skalowalnego w poziomie. W szczególności konfiguracja używa replikacji systemu HANA (HSR) i pacemaker na maszynach wirtualnych z systemem Linux Enterprise Azure Red Hat. Azure NetApp Files udostępnia udostępnione systemy plików w przedstawionej architekturze, a te systemy plików są instalowane przez system plików sieciowych (NFS).

W przykładowych konfiguracjach i poleceniach instalacji wystąpienie platformy HANA to 03 i identyfikator systemu HANA to HN1. Przykłady są oparte na platformie HANA 2.0 z dodatkiem SP4 i systemie Red Hat Enterprise Linux (RHEL) dla oprogramowania SAP 7.6.

Wymagania wstępne

Niektórzy czytelnicy skorzystają z konsultacji z różnymi notatkami i zasobami SAP przed kontynuowaniem tych tematów w tym artykule:

Omówienie

Aby zapewnić wysoką dostępność platformy HANA dla instalacji skalowanych w poziomie platformy HANA, można skonfigurować replikację systemu HANA i chronić rozwiązanie za pomocą klastra Pacemaker w celu umożliwienia automatycznego przejścia w tryb failover. Gdy aktywny węzeł zakończy się niepowodzeniem, klaster przełączy zasoby platformy HANA w tryb failover do innej lokacji.

Na poniższym diagramie istnieją trzy węzły platformy HANA w każdej lokacji i węzeł twórcy większości, aby zapobiec scenariuszowi "podziału mózgu". Instrukcje można dostosować do większej liczby maszyn wirtualnych jako węzłów bazy danych HANA.

Azure NetApp Files udostępnia udostępniony system plików HANA. /hana/shared Jest on instalowany za pośrednictwem systemu plików NFS w wersji 4.1 w każdym węźle HANA w tej samej lokacji replikacji systemu HANA. Systemy /hana/data plików i /hana/log są lokalnymi systemami plików i nie są współużytkowane między węzłami bazy danych HANA. SAP HANA zostaną zainstalowane w trybie innym niż współużytkowany.

Porada

Aby uzyskać zalecane konfiguracje magazynu SAP HANA, zobacz SAP HANA konfiguracje magazynu maszyn wirtualnych platformy Azure.

Diagram of SAP HANA scale-out with HSR and Pacemaker cluster.

Na powyższym diagramie przedstawiono trzy podsieci reprezentowane w jednej sieci wirtualnej platformy Azure, zgodnie z zaleceniami dotyczącymi sieci SAP HANA:

  • W przypadku komunikacji klienta: client 10.23.0.0/24
  • Wewnętrzna komunikacja między węzłami HANA: inter 10.23.1.128/26
  • W przypadku replikacji systemu HANA: hsr 10.23.1.192/26

Ponieważ /hana/data i /hana/log są wdrażane na dyskach lokalnych, nie jest konieczne wdrożenie oddzielnych podsieci i oddzielnych wirtualnych kart sieciowych na potrzeby komunikacji z magazynem.

Woluminy usługi Azure NetApp są wdrażane w oddzielnej podsieci delegowanej do Azure NetApp Files: anf 10.23.1.0/26.

Konfigurowanie infrastruktury

W poniższych instrukcjach założono, że grupa zasobów została już utworzona, sieć wirtualna platformy Azure z trzema podsieciami sieci platformy Azure: client, inter i hsr.

Wdrażanie maszyn wirtualnych z systemem Linux za pośrednictwem Azure Portal

  1. Wdrażanie maszyn wirtualnych platformy Azure. W przypadku tej konfiguracji wdróż siedem maszyn wirtualnych:

    • Trzy maszyny wirtualne, które służą jako węzły bazy danych HANA dla lokacji replikacji HANA 1: hana-s1-db1, hana-s1-db2 i hana-s1-db3.
    • Trzy maszyny wirtualne do służyć jako węzły bazy danych HANA dla lokacji replikacji HANA 2: hana-s2-db1, hana-s2-db2 i hana-s2-db3.
    • Mała maszyna wirtualna służąca jako producent większości: hana-s-mm.

    Maszyny wirtualne wdrożone jako węzły SAP DB HANA powinny być certyfikowane przez oprogramowanie SAP dla platformy HANA, zgodnie z publikacją w katalogu sprzętowym SAP HANA. Podczas wdrażania węzłów bazy danych HANA upewnij się, że wybrano przyspieszoną sieć.

    W przypadku węzła twórcy większości można wdrożyć małą maszynę wirtualną, ponieważ ta maszyna wirtualna nie uruchamia żadnych zasobów SAP HANA. Większość twórców maszyn wirtualnych jest używana w konfiguracji klastra, aby osiągnąć i nieparzystą liczbę węzłów klastra w scenariuszu podzielonym mózgiem. Większość twórców maszyn wirtualnych wymaga tylko jednego wirtualnego interfejsu sieciowego w podsieci client w tym przykładzie.

    Wdrażanie lokalnych dysków zarządzanych dla /hana/data programu i /hana/log. Minimalna zalecana konfiguracja magazynu dla /hana/data programu i /hana/log jest opisana w temacie SAP HANA konfiguracjach magazynu maszyn wirtualnych platformy Azure.

    Wdróż podstawowy interfejs sieciowy dla każdej maszyny wirtualnej w podsieci client sieci wirtualnej. Po wdrożeniu maszyny wirtualnej za pośrednictwem Azure Portal nazwa interfejsu sieciowego jest generowana automatycznie. W tym artykule odwołujemy się do automatycznie generowanych, podstawowych interfejsów sieciowych jako hana-s1-db1-client, hana-s1-db2-client, hana-s1-db3-client itd. Te interfejsy sieciowe są dołączone do podsieci sieci wirtualnej platformy client Azure.

    Ważne

    Upewnij się, że wybrany system operacyjny ma certyfikat SAP dla SAP HANA na określonych typach maszyn wirtualnych, których używasz. Aby uzyskać listę SAP HANA certyfikowanych typów maszyn wirtualnych i wersji systemu operacyjnego dla tych typów, zobacz SAP HANA certyfikowanych platform IaaS. Przejdź do szczegółów wymienionego typu maszyny wirtualnej, aby uzyskać pełną listę wersji systemu operacyjnego obsługiwanych przez SAP HANA dla tego typu.

  2. Utwórz sześć interfejsów sieciowych, jeden dla każdej maszyny wirtualnej bazy danych HANA, w inter podsieci sieci wirtualnej (w tym przykładzie hana-s1-db1-inter, hana-db2-inter, hana-s1-db3-inter, hana-s2-db1-inter, hana-s2-db2-inter i hana-s2-db3-inter).

  3. Utwórz sześć interfejsów sieciowych, jeden dla każdej maszyny wirtualnej bazy danych HANA, w hsr podsieci sieci wirtualnej (w tym przykładzie hana-s1-db1-hsr, hana-s1-db2-hsr, hana-s1-db3-hsr, hana-s2-db1-hsr, hana-s2-db2-hsr i hana-s2-db3-hsr).

  4. Dołącz nowo utworzone interfejsy sieciowe wirtualne do odpowiednich maszyn wirtualnych:

    1. Przejdź do maszyny wirtualnej w Azure Portal.

    2. W okienku po lewej stronie wybierz pozycję Maszyny wirtualne. Filtruj nazwę maszyny wirtualnej (na przykład hana-s1-db1), a następnie wybierz maszynę wirtualną.

    3. W okienku Przegląd wybierz pozycję Zatrzymaj , aby cofnąć przydział maszyny wirtualnej.

    4. Wybierz pozycję Sieć, a następnie dołącz interfejs sieciowy. Na liście rozwijanej Dołączanie interfejsu sieciowego wybierz już utworzone interfejsy sieciowe dla inter podsieci i hsr .

    5. Wybierz pozycję Zapisz.

    6. Powtórz kroki b przez e dla pozostałych maszyn wirtualnych (w naszym przykładzie hana-s1-db2, hana-s1-db3, hana-s2-db1, hana-s2-db2 i hana-s2-db3).

    7. Na razie pozostaw maszyny wirtualne w stanie zatrzymany.

  5. Włącz przyspieszoną sieć dla dodatkowych interfejsów sieciowych dla inter podsieci i hsr , wykonując następujące czynności:

    1. Otwórz Cloud Shell azure w Azure Portal.

    2. Uruchom następujące polecenia, aby włączyć przyspieszoną sieć dla dodatkowych interfejsów sieciowych, które są dołączone do inter podsieci i hsr .

    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-inter --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-inter --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-inter --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-inter --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-inter --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-inter --accelerated-networking true
    
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-hsr --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-hsr --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-hsr --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-hsr --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-hsr --accelerated-networking true
    az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-hsr --accelerated-networking true
    
  6. Uruchom maszyny wirtualne bazy danych HANA.

Wdrażanie Azure Load Balancer

Najlepiej używać standardowego modułu równoważenia obciążenia. Oto kroki tej procedury:

  1. Utwórz pulę adresów IP frontonu:

    1. Otwórz moduł równoważenia obciążenia, wybierz pulę adresów IP frontonu i wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej puli adresów IP frontonu (na przykład frontonu hana-fronton).
    3. Ustaw wartość Przypisanie na Statyczne i wprowadź adres IP (na przykład 10.23.0.18).
    4. Wybierz przycisk OK.
    5. Po utworzeniu nowej puli adresów IP frontonu zanotuj adres IP puli.
  2. Utwórz pulę zaplecza i dodaj wszystkie maszyny wirtualne klastra do puli zaplecza:

    1. Otwórz moduł równoważenia obciążenia, wybierz pule zaplecza i wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej puli zaplecza (na przykład hana-backend).
    3. Wybierz pozycję Dodajmaszynę>wirtualną Maszyna wirtualna.
    4. Wybierz maszyny wirtualne klastra SAP HANA i ich adresy IP dla podsieciclient.
    5. Wybierz pozycję Dodaj.
  3. Utwórz sondę kondycji:

    1. Otwórz moduł równoważenia obciążenia, wybierz pozycję Sondy kondycji i wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej sondy kondycji (na przykład hana-hp).
    3. Wybierz protokół TCP jako protokół i port 62503. Zachowaj wartość Interwał ustawioną na 5, a wartość progu złej kondycji ustawiona na 2.
    4. Wybierz przycisk OK.
  4. Utwórz reguły równoważenia obciążenia:

    1. Otwórz moduł równoważenia obciążenia, wybierz pozycję Reguły równoważenia obciążenia, a następnie wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej reguły modułu równoważenia obciążenia (na przykład hana-lb).
    3. Wybierz adres IP frontonu, pulę zaplecza i utworzoną wcześniej sondę kondycji (na przykład hana-frontend, hana-backend i hana-hp).
    4. Wybierz pozycję Porty wysokiej dostępności.
    5. Upewnij się, że włączono zmienny adres IP.
    6. Wybierz przycisk OK.

    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 Azure Load Balancer ograniczenia. Jeśli potrzebujesz dodatkowego adresu IP maszyny wirtualnej, wdróż drugą kartę sieciową.

W przypadku korzystania ze standardowego modułu równoważenia obciążenia należy pamiętać o następującym ograniczeniu. W przypadku umieszczania maszyn wirtualnych bez publicznych adresów IP w puli zaplecza wewnętrznego modułu równoważenia obciążenia nie ma wychodzącej łączności z Internetem. Aby umożliwić routing do publicznych punktów końcowych, należy wykonać dodatkową konfigurację. Aby uzyskać więcej informacji, zobacz Łączność z publicznym punktem końcowym dla maszyn wirtualnych przy użyciu usługi Azure usługa Load Balancer w warstwie Standardowa w scenariuszach o wysokiej dostępności oprogramowania SAP.

Ważne

Nie włączaj sygnatur czasowych TCP na maszynach wirtualnych platformy Azure umieszczonych za Azure Load Balancer. Włączenie sygnatur czasowych PROTOKOŁU TCP powoduje niepowodzenie sond kondycji. Ustaw parametr net.ipv4.tcp_timestamps na 0. Aby uzyskać szczegółowe informacje, zobacz Load Balancer sondy kondycji i informacje o oprogramowaniu SAP 2382421.

Wdrażanie infrastruktury Azure NetApp Files

Wdróż woluminy Azure NetApp Files dla /hana/shared systemu plików. Potrzebujesz oddzielnego /hana/shared woluminu dla każdej lokacji replikacji systemu HANA. Aby uzyskać więcej informacji, zobacz Konfigurowanie infrastruktury Azure NetApp Files.

W tym przykładzie użyto następujących woluminów Azure NetApp Files:

  • volume HN1-shared-s1 (nfs://10.23.1.7/ HN1-shared-s1)
  • volume HN1-shared-s2 (nfs://10.23.1.7/ HN1-shared-s2)

Konfiguracja i przygotowanie systemu operacyjnego

Instrukcje w następnych sekcjach są poprzedzone jednym z następujących skrótów:

  • [A]: Dotyczy wszystkich węzłów
  • [AH]: Dotyczy wszystkich węzłów bazy danych HANA
  • [M]: Dotyczy węzła twórcy większości
  • [AH1]: Dotyczy wszystkich węzłów bazy danych HANA w witrynie SITE 1
  • [AH2]: Dotyczy wszystkich węzłów bazy danych HANA w witrynie SITE 2
  • [1]: Dotyczy tylko węzła HANA DB 1, SITE 1
  • [2]: Dotyczy tylko węzła HANA DB 1, SITE 2

Skonfiguruj i przygotuj system operacyjny, wykonując następujące czynności:

  1. [A] Obsługa plików hosta na maszynach wirtualnych. Uwzględnij wpisy dla wszystkich podsieci. W tym przykładzie zostaną dodane /etc/hosts następujące wpisy.

     # Client subnet
     10.23.0.11 hana-s1-db1
     10.23.0.12 hana-s1-db1
     10.23.0.13 hana-s1-db2
     10.23.0.14 hana-s2-db1
     10.23.0.15 hana-s2-db2
     10.23.0.16 hana-s2-db3
     10.23.0.17 hana-s-mm
     # Internode subnet
     10.23.1.138 hana-s1-db1-inter
     10.23.1.139 hana-s1-db2-inter
     10.23.1.140 hana-s1-db3-inter
     10.23.1.141 hana-s2-db1-inter
     10.23.1.142 hana-s2-db2-inter
     10.23.1.143 hana-s2-db3-inter
     # HSR subnet
     10.23.1.202 hana-s1-db1-hsr
     10.23.1.203 hana-s1-db2-hsr
     10.23.1.204 hana-s1-db3-hsr
     10.23.1.205 hana-s2-db1-hsr
     10.23.1.206 hana-s2-db2-hsr
     10.23.1.207 hana-s2-db3-hsr
    
  2. [A] Przygotowanie systemu operacyjnego do uruchamiania SAP HANA. Aby uzyskać więcej informacji, zobacz 3024346 sap 3024346 — Linux Kernel Ustawienia for NetApp NFS. Utwórz plik konfiguracji /etc/sysctl.d/netapp-hana.conf dla ustawień konfiguracji Azure NetApp Files.

    
     vi /etc/sysctl.d/netapp-hana.conf
     # Add the following entries in the configuration file
     net.core.rmem_max = 16777216
     net.core.wmem_max = 16777216
     net.ipv4.tcp_rmem = 4096 131072 16777216
     net.ipv4.tcp_wmem = 4096 16384 16777216
     net.core.netdev_max_backlog = 300000 
     net.ipv4.tcp_slow_start_after_idle=0 
     net.ipv4.tcp_no_metrics_save = 1
     net.ipv4.tcp_moderate_rcvbuf = 1
     net.ipv4.tcp_window_scaling = 1    
     net.ipv4.tcp_sack = 1
     
  3. [A] Utwórz plik konfiguracji /etc/sysctl.d/ms-az.conf z dodatkowymi ustawieniami optymalizacji.

    
     vi /etc/sysctl.d/ms-az.conf
     # Add the following entries in the configuration file
     net.ipv6.conf.all.disable_ipv6 = 1
     net.ipv4.tcp_max_syn_backlog = 16348
     net.ipv4.conf.all.rp_filter = 0
     sunrpc.tcp_slot_table_entries = 128
     vm.swappiness=10
     

    Porada

    Unikaj ustawiania net.ipv4.ip_local_port_range i net.ipv4.ip_local_reserved_ports jawnie w plikach sysctl konfiguracji, aby umożliwić agentowi hosta SAP zarządzanie zakresami portów. Aby uzyskać więcej informacji, zobacz 2382421 uwagi SAP.

  4. [A] Dostosuj sunrpc ustawienia zgodnie z zaleceniami w temacie SAP 3024346 — Linux Kernel Ustawienia for NetApp NFS.

    
     vi /etc/modprobe.d/sunrpc.conf
     # Insert the following line
     options sunrpc tcp_max_slot_table_entries=128
     
  5. [A] Zainstaluj pakiet klienta NFS.

    yum install nfs-utils

  6. [AH] Red Hat dla konfiguracji platformy HANA.

    Skonfiguruj RHEL, zgodnie z opisem w portalu klienta red hat i w następujących uwagach SAP:

Przygotowywanie systemów plików

W poniższych sekcjach przedstawiono kroki przygotowania systemów plików.

Instalowanie udostępnionych systemów plików

W tym przykładzie systemy plików udostępnionej platformy HANA są wdrażane w Azure NetApp Files i instalowane za pośrednictwem systemu plików NFS w wersji 4.

  1. [AH] Utwórz punkty instalacji dla woluminów bazy danych HANA.

    mkdir -p /hana/shared
    
  2. [AH] Sprawdź ustawienie domeny NFS. Upewnij się, że domena jest skonfigurowana jako domyślna domena Azure NetApp Files: defaultv4iddomain.com. Upewnij się, że mapowanie ma wartość nobody.
    (Ten krok jest wymagany tylko w przypadku korzystania z usługi Azure NetAppFiles NFS w wersji 4.1).

    Ważne

    Upewnij się, że domena NFS na /etc/idmapd.conf maszynie wirtualnej jest zgodna z domyślną konfiguracją domeny w Azure NetApp Files: defaultv4iddomain.com. W przypadku niezgodności konfiguracji domeny na kliencie NFS i serwerze NFS uprawnienia do plików na woluminach usługi Azure NetApp zainstalowanych na maszynach wirtualnych będą wyświetlane jako nobody.

    sudo cat /etc/idmapd.conf
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  3. [AH] Zweryfikuj plik nfs4_disable_idmapping. Powinien być ustawiony na Ywartość . Aby utworzyć strukturę katalogu, w której nfs4_disable_idmapping się znajduje, uruchom polecenie instalacji. Nie będzie można ręcznie utworzyć katalogu w obszarze /sys/modules, ponieważ dostęp jest zarezerwowany dla jądra lub sterowników.
    Ten krok jest wymagany tylko w przypadku korzystania z usługi Azure NetAppFiles NFSv4.1.

    # Check nfs4_disable_idmapping 
    cat /sys/module/nfs/parameters/nfs4_disable_idmapping
    # If you need to set nfs4_disable_idmapping to Y
    mkdir /mnt/tmp
    mount 10.9.0.4:/HN1-shared /mnt/tmp
    umount  /mnt/tmp
    echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    # Make the configuration permanent
    echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    

    Aby uzyskać więcej informacji na temat sposobu zmiany parametru nfs4_disable_idmapping , zobacz portal klienta Red Hat.

  4. [AH1] Zainstaluj udostępnione woluminy Azure NetApp Files na maszynach wirtualnych USŁUGI SITE1 HANA DB.

    sudo mount -o rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,intr,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s1 /hana/shared
    
  5. [AH2] Zainstaluj udostępnione woluminy Azure NetApp Files na maszynach wirtualnych usługi SITE2 HANA DB.

    sudo mount -o rw,vers=4,minorversion=1,hard,timeo=600,rsize=262144,wsize=262144,intr,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s2 /hana/shared
    
  6. [AH] Sprawdź, czy odpowiednie /hana/shared/ systemy plików są zainstalowane na wszystkich maszynach wirtualnych bazy danych HANA z protokołem NFS w wersji NFSv4.

    sudo nfsstat -m
    # Verify that flag vers is set to 4.1 
    # Example from SITE 1, hana-s1-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s1
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7
    # Example from SITE 2, hana-s2-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s2
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
    

Przygotowywanie danych i lokalnych systemów plików dziennika

W przedstawionej konfiguracji wdrażasz systemy /hana/data plików i /hana/log na dysku zarządzanym i dołączasz te systemy plików lokalnie do każdej maszyny wirtualnej bazy danych HANA. Uruchom następujące kroki, aby utworzyć lokalne dane i woluminy dziennika na każdej maszynie wirtualnej bazy danych HANA DB.

Skonfiguruj układ dysku za pomocą Menedżera woluminów logicznych (LVM). W poniższym przykładzie założono, że każda maszyna wirtualna HANA ma dołączone trzy dyski danych i że te dyski są używane do tworzenia dwóch woluminów.

  1. [AH] Wyświetl listę wszystkich dostępnych dysków:

    ls /dev/disk/azure/scsi1/lun*
    

    Przykładowe dane wyjściowe:

    /dev/disk/azure/scsi1/lun0  /dev/disk/azure/scsi1/lun1  /dev/disk/azure/scsi1/lun2 
    
  2. [AH] Utwórz woluminy fizyczne dla wszystkich dysków, których chcesz użyć:

    sudo pvcreate /dev/disk/azure/scsi1/lun0
    sudo pvcreate /dev/disk/azure/scsi1/lun1
    sudo pvcreate /dev/disk/azure/scsi1/lun2
    
  3. [AH] Utwórz grupę woluminów dla plików danych. Użyj jednej grupy woluminów dla plików dziennika i jednego dla udostępnionego katalogu SAP HANA:

    sudo vgcreate vg_hana_data_HN1 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1
    sudo vgcreate vg_hana_log_HN1 /dev/disk/azure/scsi1/lun2
    
  4. [AH] Utwórz woluminy logiczne. Wolumin liniowy jest tworzony podczas używania lvcreate bez przełącznika -i . Zalecamy utworzenie woluminu rozłożonego w celu uzyskania lepszej wydajności we/wy. Wyrównaj rozmiary pasków do wartości opisanych w SAP HANA konfiguracjach magazynu maszyn wirtualnych. Argument -i powinien być liczbą podstawowych woluminów fizycznych, a -I argumentem jest rozmiar paska. W tym artykule dla woluminu danych są używane dwa woluminy fizyczne, więc argument przełącznika -i jest ustawiony na 2wartość . Rozmiar paska woluminu danych to 256 KiB. Jeden wolumin fizyczny jest używany dla woluminu dziennika, więc nie trzeba używać jawnych -i ani -I przełączników dla poleceń woluminu dziennika.

    Ważne

    Użyj przełącznika -i i ustaw go na liczbę bazowego woluminu fizycznego, gdy używasz więcej niż jednego woluminu fizycznego dla każdego woluminu danych lub woluminu dziennika. Użyj przełącznika, -I aby określić rozmiar paska podczas tworzenia woluminu rozłożonego. Zobacz SAP HANA konfiguracje magazynu maszyn wirtualnych, aby uzyskać zalecane konfiguracje magazynu, w tym rozmiary pasków i liczbę dysków.

    sudo lvcreate -i 2 -I 256 -l 100%FREE -n hana_data vg_hana_data_HN1
    sudo lvcreate -l 100%FREE -n hana_log vg_hana_log_HN1
    sudo mkfs.xfs /dev/vg_hana_data_HN1/hana_data
    sudo mkfs.xfs /dev/vg_hana_log_HN1/hana_log
    
  5. [AH] Utwórz katalogi instalacji i skopiuj identyfikator UUID wszystkich woluminów logicznych:

    sudo mkdir -p /hana/data/HN1
    sudo mkdir -p /hana/log/HN1
    # Write down the ID of /dev/vg_hana_data_HN1/hana_data and /dev/vg_hana_log_HN1/hana_log
    sudo blkid
    
  6. [AH] Utwórz fstab wpisy dla woluminów logicznych i zainstaluj:

    sudo vi /etc/fstab
    

    Wstaw następujący wiersz w /etc/fstab pliku:

    /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_data_HN1-hana_data /hana/data/HN1 xfs  defaults,nofail  0  2
    /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_log_HN1-hana_log /hana/log/HN1 xfs  defaults,nofail  0  2
    

    Zainstaluj nowe woluminy:

    sudo mount -a
    

Instalacja

W tym przykładzie do wdrażania SAP HANA w konfiguracji skalowanej w poziomie z modułem HSR na maszynach wirtualnych platformy Azure używasz platformy HANA 2.0 z dodatkiem SP4.

Przygotowanie do instalacji platformy HANA

  1. [AH] Przed instalacją platformy HANA ustaw hasło główne. Po zakończeniu instalacji można wyłączyć hasło główne. Uruchom polecenie jako rootpasswd , aby ustawić hasło.

  2. [1,2] Zmień uprawnienia na /hana/shared.

    chmod 775 /hana/shared
    
  3. [1] Sprawdź, czy możesz zalogować się do platformy hana-s1-db2 i hana-s1-db3 za pośrednictwem protokołu Secure Shell (SSH), bez monitowania o podanie hasła. Jeśli tak nie jest, klucze wymiany ssh , zgodnie z dokumentacją w temacie Korzystanie z uwierzytelniania opartego na kluczach.

    ssh root@hana-s1-db2
    ssh root@hana-s1-db3
    
  4. [2] Sprawdź, czy możesz zalogować się do platformy hana-s2-db2 i hana-s2-db3 za pośrednictwem protokołu SSH bez monitowania o podanie hasła. Jeśli tak nie jest, klucze wymiany ssh , zgodnie z dokumentacją w temacie Korzystanie z uwierzytelniania opartego na kluczach.

    ssh root@hana-s2-db2
    ssh root@hana-s2-db3
    
  5. [AH] Zainstaluj dodatkowe pakiety, które są wymagane dla platformy HANA 2.0 z dodatkiem SP4. Aby uzyskać więcej informacji, zobacz sap Note 2593824 for RHEL 7.

    # If using RHEL 7
    yum install libgcc_s1 libstdc++6 compat-sap-c++-7 libatomic1
    # If using RHEL 8
    yum install libatomic libtool-ltdl.x86_64
    
  6. [A] Tymczasowo wyłącz zaporę, aby nie zakłócała instalacji platformy HANA. Można ją ponownie włączyć po zakończeniu instalacji platformy HANA.

    # Execute as root
    systemctl stop firewalld
    systemctl disable firewalld
    

Instalacja platformy HANA w pierwszym węźle w każdej lokacji

  1. [1] Zainstaluj SAP HANA, postępując zgodnie z instrukcjami w przewodniku po instalacji i aktualizacji SAP HANA 2.0. W poniższych instrukcjach przedstawiono instalację SAP HANA w pierwszym węźle w witrynie SITE 1.

    1. hdblcm Uruchom program jako root z katalogu oprogramowania instalacyjnego HANA. Użyj parametru internal_network i przekaż przestrzeń adresową dla podsieci, która jest używana do wewnętrznej komunikacji między węzłami HANA.

      ./hdblcm --internal_network=10.23.1.128/26
      
    2. W wierszu polecenia wprowadź następujące wartości:

    • W polu Wybierz akcję wprowadź wartość 1 (w przypadku instalacji).
    • W obszarze Dodatkowe składniki instalacji wprowadź wartość 2, 3.
    • Aby uzyskać ścieżkę instalacji, naciśnij klawisz Enter (domyślnie to /hana/shared).
    • W polu Nazwa hosta lokalnego naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Czy chcesz dodać hosty do systemu?, wprowadź n.
    • W polu SAP HANA Identyfikator systemu wprowadź wartość HN1.
    • W polu Liczba wystąpień [00] wprowadź wartość 03.
    • W obszarze Lokalna grupa procesów roboczych hosta [ustawienie domyślne] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Wybierz użycie systemu /Wprowadź indeks [4], wprowadź wartość 4 (dla opcji niestandardowej).
    • W polu Lokalizacja woluminów danych [/hana/data/HN1] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Lokalizacja woluminów dziennika [/hana/log/HN1] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Ogranicz maksymalną alokację pamięci? [n], wprowadź n.
    • W polu Nazwa hosta certyfikatu dla hosta hana-s1-db1 [hana-s1-db1 ] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Hasło użytkownika agenta hosta SAP (sapadm) wprowadź hasło.
    • Aby potwierdzić hasło użytkownika agenta hosta SAP (sapadm), wprowadź hasło.
    • W polu Hasło administratora systemu (hn1adm) wprowadź hasło.
    • W przypadku katalogu macierzystego administratora systemu [/usr/sap/HN1/home] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Powłoka logowania administratora systemu [/bin/sh] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Identyfikator użytkownika administratora systemu [1001] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Wprowadź identyfikator grupy użytkowników (sapsys) [79] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu System Database User (system) Password (Hasło użytkownika bazy danych systemu) wprowadź hasło systemu.
    • W polu Potwierdź hasło użytkownika bazy danych systemu (system) wprowadź hasło systemu.
    • W polu Uruchom ponownie system po ponownym uruchomieniu maszyny? [n], wprowadź n.
    • W obszarze Czy chcesz kontynuować (y/n), zweryfikuj podsumowanie, a jeśli wszystko wygląda dobrze, wprowadź wartość y.
  2. [2] Powtórz poprzedni krok, aby zainstalować SAP HANA w pierwszym węźle w witrynie SITE 2.

  3. [1,2] Sprawdź global.ini.

    Wyświetl global.inii upewnij się, że konfiguracja wewnętrznej komunikacji między węzłami SAP HANA jest włączona. Sprawdź sekcję communication . Powinna ona mieć przestrzeń adresową dla podsieci inter i listeninterface powinna być ustawiona na .internal. Sprawdź sekcję internal_hostname_resolution . Powinna ona zawierać adresy IP maszyn wirtualnych HANA należących do podsieci inter .

      sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
      # Example from SITE1 
      [communication]
      internal_network = 10.23.1.128/26
      listeninterface = .internal
      [internal_hostname_resolution]
      10.23.1.138 = hana-s1-db1
      10.23.1.139 = hana-s1-db2
      10.23.1.140 = hana-s1-db3
    
  4. [1,2] Przygotowanie global.ini do instalacji w środowisku nieużytkowanym, zgodnie z opisem w 2080991 notatek SAP.

     sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
     [persistence]
     basepath_shared = no
    
  5. [1,2] Uruchom ponownie SAP HANA, aby aktywować zmiany.

     sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem
     sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem
    
  6. [1,2] Sprawdź, czy interfejs klienta używa adresów IP z podsieci client do komunikacji.

    # Execute as hn1adm
    /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname
    # Expected result - example from SITE 2
    "hana-s2-db1","net_publicname","10.23.0.14"
    

    Aby uzyskać informacje o sposobie weryfikowania konfiguracji, zobacz 2183363 sap note — Configuration of SAP HANA internal network (Konfiguracja sieci wewnętrznej SAP HANA).

  7. [AH] Zmień uprawnienia do katalogów danych i dzienników, aby uniknąć błędu instalacji platformy HANA.

     sudo chmod o+w -R /hana/data /hana/log
    
  8. [1] Zainstaluj dodatkowe węzły platformy HANA. Przykładowe instrukcje w tym kroku dotyczą witryny SITE 1.

    1. Uruchom program rezydentny hdblcm jako root.

       cd /hana/shared/HN1/hdblcm
       ./hdblcm 
      
    2. W wierszu polecenia wprowadź następujące wartości:

    • W polu Wybierz akcję wprowadź wartość 2 (w przypadku dodawania hostów).
    • W polu Wprowadź nazwy hostów rozdzielonych przecinkami wprowadź hana-s1-db2, hana-s1-db3.
    • W obszarze Dodatkowe składniki instalacji wprowadź wartość 2, 3.
    • W polu Wprowadź nazwę użytkownika głównego [root], naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W obszarze Wybierz role hosta "hana-s1-db2" [1], wybierz pozycję 1 (dla procesu roboczego).
    • W polu Wprowadź grupę trybu failover hosta dla hosta "hana-s1-db2" [default], naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Wprowadź numer partycji Storage hosta "hana-s1-db2" [<<przypisz automatycznie>>], naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Enter Worker Group for host "hana-s1-db2" [default]" naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W obszarze Wybieranie ról dla hosta "hana-s1-db3" [1], wybierz pozycję 1 (dla procesu roboczego).
    • W polu Wprowadź grupę trybu failover hosta dla hosta "hana-s1-db3" [default], naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Wprowadź Storage numer partycji hosta "hana-s1-db3" [<<przypisz automatycznie>>], naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Enter Worker Group for host "hana-s1-db3" [default] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Hasło administratora systemu (hn1adm) wprowadź hasło.
    • W polu Wprowadź hasło użytkownika agenta hosta SAP (sapadm), wprowadź hasło.
    • Aby potwierdzić hasło użytkownika agenta hosta SAP (sapadm), wprowadź hasło.
    • W polu Nazwa hosta certyfikatu dla hosta hana-s1-db2 [hana-s1-db2 ] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W polu Nazwa hosta certyfikatu dla hosta hana-s1-db3 [hana-s1-db3 ] naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
    • W obszarze Czy chcesz kontynuować (y/n), zweryfikuj podsumowanie, a jeśli wszystko wygląda dobrze, wprowadź wartość y.
  9. [2] Powtórz poprzedni krok, aby zainstalować pomocnicze węzły SAP HANA w lokacji 2.

Konfigurowanie replikacji systemu SAP HANA 2.0

Poniższe kroki umożliwiają skonfigurowanie replikacji systemu:

  1. [1] Konfigurowanie replikacji systemu w lokacji 1:

    Tworzenie kopii zapasowych baz danych jako hn1adm:

    hdbsql -d SYSTEMDB -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupSYS')"
    hdbsql -d HN1 -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupHN1')"
    

    Skopiuj systemowe pliki PKI do lokacji dodatkowej:

    scp /usr/sap/HN1/SYS/global/security/rsecssfs/data/SSFS_HN1.DAT hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/data/
    scp /usr/sap/HN1/SYS/global/security/rsecssfs/key/SSFS_HN1.KEY  hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/key/
    

    Utwórz lokację główną:

    hdbnsutil -sr_enable --name=HANA_S1
    
  2. [2] Konfigurowanie replikacji systemu w lokacji 2:

    Zarejestruj drugą lokację, aby rozpocząć replikację systemu. Uruchom następujące polecenie jako <hanasid>adm:

    sapcontrol -nr 03 -function StopWait 600 10
    hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2
    sapcontrol -nr 03 -function StartSystem
    
  3. [1] Sprawdź stan replikacji i poczekaj na zsynchronizowanie wszystkich baz danych.

    sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"
     # | Database | Host          | Port  | Service Name | Volume ID | Site ID | Site Name | Secondary     | Secondary | Secondary | Secondary | Secondary     | Replication | Replication | Replication    |
     # |          |               |       |              |           |         |           | Host          | Port      | Site ID   | Site Name | Active Status | Mode        | Status      | Status Details |
     # | -------- | ------------- | ----- | ------------ | --------- | ------- | --------- | ------------- | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
     # | HN1      | hana-s1-db3   | 30303 | indexserver  |         5 |       1 | HANA_S1   | hana-s2-db3   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
     # | SYSTEMDB | hana-s1-db1   | 30301 | nameserver   |         1 |       1 | HANA_S1   | hana-s2-db1   |     30301 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
     # | HN1      | hana-s1-db1   | 30307 | xsengine     |         2 |       1 | HANA_S1   | hana-s2-db1   |     30307 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
     # | HN1      | hana-s1-db1   | 30303 | indexserver  |         3 |       1 | HANA_S1   | hana-s2-db1   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
     # | HN1      | hana-s1-db2   | 30303 | indexserver  |         4 |       1 | HANA_S1   | hana-s2-db2   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
     #
     # status system replication site "2": ACTIVE
     # overall system replication status: ACTIVE
     #
     # Local System Replication State
     #	
     # mode: PRIMARY
     # site id: 1
     # site name: HANA_S1
    
  4. [1,2] Zmień konfigurację platformy HANA, tak aby komunikacja na potrzeby replikacji systemu HANA odbywała się przez interfejsy sieciowe replikacji systemu HANA.

    1. Zatrzymaj platformę HANA w obu witrynach.

      sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
      
    2. Edytuj global.ini , aby dodać mapowanie hosta na potrzeby replikacji systemu HANA. Użyj adresów IP z podsieci hsr .

      sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
      #Add the section
      [system_replication_hostname_resolution]
      10.23.1.202 = hana-s1-db1
      10.23.1.203 = hana-s1-db2
      10.23.1.204 = hana-s1-db3
      10.23.1.205 = hana-s2-db1
      10.23.1.206 = hana-s2-db2
      10.23.1.207 = hana-s2-db3
      
    3. Uruchom platformę HANA w obu witrynach.

     sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
    

    Aby uzyskać więcej informacji, zobacz Rozpoznawanie nazw hostów na potrzeby replikacji systemu.

  5. [AH] Ponownie włącz zaporę i otwórz niezbędne porty.

    1. Ponownie włącz zaporę.

      # Execute as root
      systemctl start firewalld
      systemctl enable firewalld
      
    2. Otwórz niezbędne porty zapory. Należy dostosować porty dla numeru wystąpienia platformy HANA.

      Ważne

      Utwórz reguły zapory, aby zezwolić na komunikację między węzłami platformy HANA i ruch klienta. Wymagane porty są wyświetlane na portach TCP/IP wszystkich produktów SAP. Oto przykładowe polecenia. W tym scenariuszu jest używany numer systemowy 03.

       # Execute as root
       sudo firewall-cmd --zone=public --add-port=30301/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30301/tcp
       sudo firewall-cmd --zone=public --add-port=30303/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30303/tcp
       sudo firewall-cmd --zone=public --add-port=30306/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30306/tcp
       sudo firewall-cmd --zone=public --add-port=30307/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30307/tcp
       sudo firewall-cmd --zone=public --add-port=30313/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30313/tcp
       sudo firewall-cmd --zone=public --add-port=30315/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30315/tcp
       sudo firewall-cmd --zone=public --add-port=30317/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30317/tcp
       sudo firewall-cmd --zone=public --add-port=30340/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30340/tcp
       sudo firewall-cmd --zone=public --add-port=30341/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30341/tcp
       sudo firewall-cmd --zone=public --add-port=30342/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30342/tcp
       sudo firewall-cmd --zone=public --add-port=1128/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=1128/tcp
       sudo firewall-cmd --zone=public --add-port=1129/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=1129/tcp
       sudo firewall-cmd --zone=public --add-port=40302/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=40302/tcp
       sudo firewall-cmd --zone=public --add-port=40301/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=40301/tcp
       sudo firewall-cmd --zone=public --add-port=40307/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=40307/tcp
       sudo firewall-cmd --zone=public --add-port=40303/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=40303/tcp
       sudo firewall-cmd --zone=public --add-port=40340/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=40340/tcp
       sudo firewall-cmd --zone=public --add-port=50313/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=50313/tcp
       sudo firewall-cmd --zone=public --add-port=50314/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=50314/tcp
       sudo firewall-cmd --zone=public --add-port=30310/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30310/tcp
       sudo firewall-cmd --zone=public --add-port=30302/tcp --permanent
       sudo firewall-cmd --zone=public --add-port=30302/tcp
      

Tworzenie klastra Pacemaker

Aby utworzyć podstawowy klaster Pacemaker dla tego serwera HANA, wykonaj kroki opisane w temacie Konfigurowanie programu Pacemaker w systemie Red Hat Enterprise Linux na platformie Azure. Uwzględnij wszystkie maszyny wirtualne, w tym producenta większości w klastrze.

Ważne

Nie ustawiaj wartości quorum expected-votes 2. Nie jest to klaster z dwoma węzłami. Upewnij się, że właściwość concurrent-fencing klastra jest włączona, aby ogrodzenie węzłów zostało zdeserializowane.

Tworzenie zasobów systemu plików

W następnej części tego procesu należy utworzyć zasoby systemu plików. Oto kroki tej procedury:

  1. [1,2] Zatrzymaj SAP HANA w obu lokacjach replikacji. Uruchom polecenie jako <sid>adm.

    sapcontrol -nr 03 -function StopSystem
    
  2. [AH] Odinstalowywanie systemu /hana/sharedplików , który został tymczasowo zainstalowany na potrzeby instalacji na wszystkich maszynach wirtualnych bazy danych HANA. Przed odinstalowaniem należy zatrzymać wszystkie procesy i sesje korzystające z systemu plików.

    umount /hana/shared 
    
  3. [1] Utwórz zasoby klastra systemu plików dla /hana/shared w stanie wyłączonym. Należy użyć --disabled funkcji , ponieważ należy zdefiniować ograniczenia lokalizacji przed włączeniem instalacji.

    # /hana/shared file system for site 1
    pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1  directory=/hana/shared \
    fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,intr,noatime,sec=sys,vers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=40s OCF_CHECK_LEVEL=20 \
    op start interval=0 timeout=120 op stop interval=0 timeout=120
    
    # /hana/shared file system for site 2	
    pcs resource create fs_hana_shared_s2 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1 directory=/hana/shared \
    fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,intr,noatime,sec=sys,vers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=40s OCF_CHECK_LEVEL=20 \
    op start interval=0 timeout=120 op stop interval=0 timeout=120
    
     # clone the /hana/shared file system resources for both site1 and site2
    pcs resource clone fs_hana_shared_s1 meta clone-node-max=1 interleave=true
    pcs resource clone fs_hana_shared_s2 meta clone-node-max=1 interleave=true
    

    Atrybut OCF_CHECK_LEVEL=20 jest dodawany do operacji monitorowania, dzięki czemu operacje monitorowania wykonują test odczytu/zapisu w systemie plików. Bez tego atrybutu operacja monitorowania sprawdza tylko, czy system plików jest zainstalowany. Może to być problem, ponieważ w przypadku utraty łączności system plików może pozostać zainstalowany, mimo że jest niedostępny.

    Atrybut on-fail=fence jest również dodawany do operacji monitorowania. W przypadku tej opcji, jeśli operacja monitorowania zakończy się niepowodzeniem w węźle, ten węzeł jest natychmiast ogrodzony. Bez tej opcji domyślne zachowanie polega na zatrzymaniu wszystkich zasobów, które zależą od zasobu, który zakończył się niepowodzeniem, a następnie ponowne uruchomienie zasobu, które zakończyły się niepowodzeniem, a następnie uruchomienie wszystkich zasobów, które zależą od zasobu, który zakończył się niepowodzeniem. Nie tylko to zachowanie może zająć dużo czasu, gdy zasób SAP HANA zależy od zasobu, który zakończył się niepowodzeniem, ale może również całkowicie zakończyć się niepowodzeniem. Zasób SAP HANA nie może zakończyć się pomyślnie, jeśli udział NFS przechowujący pliki binarne HANA jest niedostępny.

  4. [1] Konfigurowanie i weryfikowanie atrybutów węzła. Wszystkie węzły bazy danych SAP HANA w lokacji replikacji 1 mają przypisany atrybut S1, a wszystkie węzły bazy danych SAP HANA w lokacji replikacji 2 mają przypisany atrybut S2.

    # HANA replication site 1
    pcs node attribute hana-s1-db1 NFS_SID_SITE=S1
    pcs node attribute hana-s1-db2 NFS_SID_SITE=S1
    pcs node attribute hana-s1-db3 NFS_SID_SITE=S1
     # HANA replication site 2
    pcs node attribute hana-s2-db1 NFS_SID_SITE=S2
    pcs node attribute hana-s2-db2 NFS_SID_SITE=S2
    pcs node attribute hana-s2-db3 NFS_SID_SITE=S2
     #To verify the attribute assignment to nodes execute
    pcs node attribute
    
  5. [1] Skonfiguruj ograniczenia, które określają, gdzie będą instalowane systemy plików NFS, i włączają zasoby systemu plików.

    # Configure the constraints
    pcs constraint location fs_hana_shared_s1-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S1
    pcs constraint location fs_hana_shared_s2-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S2
    # Enable the file system resources
    pcs resource enable fs_hana_shared_s1
    pcs resource enable fs_hana_shared_s2
    

    Po włączeniu zasobów systemu plików klaster zainstaluje /hana/shared systemy plików.

  6. [AH] Sprawdź, czy woluminy Azure NetApp Files są zainstalowane w obszarze /hana/shared, na wszystkich maszynach wirtualnych bazy danych HANA w obu lokacjach.

    sudo nfsstat -m
    # Verify that flag vers is set to 4.1 
    # Example from SITE 1, hana-s1-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s1
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7
    # Example from SITE 2, hana-s2-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s2
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
    
  7. [1] Skonfiguruj i sklonuj zasoby atrybutów oraz skonfiguruj ograniczenia w następujący sposób:

    # Configure the attribute resources
    pcs resource create hana_nfs_s1_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s1_active
    pcs resource create hana_nfs_s2_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s2_active
     # Clone the attribute resources
    pcs resource clone hana_nfs_s1_active meta clone-node-max=1 interleave=true
    pcs resource clone hana_nfs_s2_active meta clone-node-max=1 interleave=true
     # Configure the constraints, which will set the attribute values
    pcs constraint order fs_hana_shared_s1-clone then hana_nfs_s1_active-clone
    pcs constraint order fs_hana_shared_s2-clone then hana_nfs_s2_active-clone
    

    Porada

    Jeśli konfiguracja obejmuje systemy plików inne niż /hana/shared, a te systemy plików są zainstalowane w systemie plików NFS, dołącz sequential=false opcję . Ta opcja zapewnia, że nie ma zależności porządkowania między systemami plików. Wszystkie zainstalowane systemy plików NFS muszą zostać uruchomione przed odpowiednim zasobem atrybutu, ale nie muszą być uruchamiane w żadnej kolejności względem siebie. Aby uzyskać więcej informacji, zobacz Jak mogę skonfigurować moduł HSR w poziomie SAP HANA w klastrze Pacemaker, gdy systemy plików HANA są udziałami NFS.

  8. [1] Umieść program Pacemaker w trybie konserwacji w ramach przygotowań do utworzenia zasobów klastra HANA.

    pcs property set maintenance-mode=true
    

Tworzenie zasobów klastra SAP HANA

Teraz możesz przystąpić do tworzenia zasobów klastra:

  1. [A] Zainstaluj agenta zasobów skalowalnego w poziomie platformy HANA na wszystkich węzłach klastra, w tym producenta większości.

    yum install -y resource-agents-sap-hana-scaleout 
    

    Uwaga

    Aby uzyskać minimalną obsługiwaną wersję pakietu resource-agents-sap-hana-scaleout dla wersji systemu operacyjnego, zobacz Zasady pomocy technicznej dla klastrów RHEL HA — zarządzanie SAP HANA w klastrze .

  2. [1,2] Zainstaluj punkt zaczepienia replikacji systemu HANA na jednym węźle bazy danych HANA w każdej lokacji replikacji systemu. SAP HANA powinny być nadal w dół.

    1. Przygotuj hak jako root.

       mkdir -p /hana/shared/myHooks
       cp /usr/share/SAPHanaSR-ScaleOut/SAPHanaSR.py /hana/shared/myHooks
       chown -R hn1adm:sapsys /hana/shared/myHooks
      
    2. dostosuj element global.ini.

      # add to global.ini
      [ha_dr_provider_SAPHanaSR]
      provider = SAPHanaSR
      path = /hana/shared/myHooks
      execution_order = 1
      
      [trace]
      ha_dr_saphanasr = info
      
  3. [AH] Klaster wymaga konfiguracji sudoers w węźle klastra dla <identyfikatora SID>adm. W tym przykładzie można to osiągnąć, tworząc nowy plik. Uruchom polecenia jako root.

    sudo visudo -f /etc/sudoers.d/20-saphana
    # Insert the following lines and then save
    Cmnd_Alias SOK = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SFAIL -t crm_config -s SAPHanaSR
    hn1adm ALL=(ALL) NOPASSWD: SOK, SFAIL
    Defaults!SOK, SFAIL !requiretty
    
  4. [1,2] Uruchom SAP HANA w obu lokacjach replikacji. Uruchom polecenie jako <sid>adm.

    sapcontrol -nr 03 -function StartSystem 
    
  5. [1] Sprawdź instalację haka. Uruchom polecenie sid <>adm w aktywnej lokacji replikacji systemu HANA.

    cdtrace
     awk '/ha_dr_SAPHanaSR.*crm_attribute/ \
     { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*
    
     # Example entries
      # 2020-07-21 22:04:32.364379 ha_dr_SAPHanaSR SFAIL
      # 2020-07-21 22:04:46.905661 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:52.092016 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:52.782774 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:53.117492 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:06:35.599324 ha_dr_SAPHanaSR SOK
    
  6. [1] Tworzenie zasobów klastra HANA. Uruchom następujące polecenia jako root.

    1. Upewnij się, że klaster jest już w trybie konserwacji.

    2. Następnie utwórz zasób topologii HANA.
      Jeśli tworzysz klaster RHEL 7.x , użyj następujących poleceń:

      pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopologyScaleOut \
       SID=HN1 InstanceNumber=03 \
       op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600
      
      pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
      

      Jeśli tworzysz klaster RHEL 8.x , użyj następujących poleceń:

      pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopology \
       SID=HN1 InstanceNumber=03 meta clone-node-max=1 interleave=true \
       op methods interval=0s timeout=5 \
       op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600
      
      pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
      
    3. Utwórz zasób wystąpienia HANA.

      Uwaga

      Ten artykuł zawiera odwołania do terminu podrzędnego — terminu, którego firma Microsoft już nie używa. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.

      Jeśli tworzysz klaster RHEL 7.x , użyj następujących poleceń:

      pcs resource create SAPHana_HN1_HDB03 SAPHanaController \
       SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
       op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \
       op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700
      
      pcs resource master msl_SAPHana_HN1_HDB03 SAPHana_HN1_HDB03 \
       meta master-max="1" clone-node-max=1 interleave=true
      

      Jeśli tworzysz klaster RHEL 8.x , użyj następujących poleceń:

      pcs resource create SAPHana_HN1_HDB03 SAPHanaController \
       SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
       op demote interval=0s timeout=320 op methods interval=0s timeout=5 \
       op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \
       op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700
      
      pcs resource promotable SAPHana_HN1_HDB03 \
       meta master-max="1" clone-node-max=1 interleave=true
      

      Ważne

      Dobrym pomysłem jest ustawienie wartości AUTOMATED_REGISTERfalse, podczas wykonywania testów trybu failover, aby zapobiec automatycznemu zarejestrowaniu wystąpienia podstawowego jako pomocniczego, które zakończyło się niepowodzeniem. Po przetestowaniu jako najlepsze rozwiązanie ustaw wartość AUTOMATED_REGISTERtrue, aby po przejęciu replikacja systemu mogła być automatycznie wznawiana.

    4. Utwórz wirtualny adres IP i skojarzone zasoby.

      pcs resource create vip_HN1_03 ocf:heartbeat:IPaddr2 ip=10.23.0.18 op monitor interval="10s" timeout="20s"
      sudo pcs resource create nc_HN1_03 azure-lb port=62503
      sudo pcs resource group add g_ip_HN1_03 nc_HN1_03 vip_HN1_03
      
    5. Utwórz ograniczenia klastra.
      Jeśli tworzysz klaster RHEL 7.x , użyj następujących poleceń:

      #Start HANA topology, before the HANA instance
      pcs constraint order SAPHanaTopology_HN1_HDB03-clone then msl_SAPHana_HN1_HDB03
      
      pcs constraint colocation add g_ip_HN1_03 with master msl_SAPHana_HN1_HDB03 4000
      #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node
      pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
      

      Jeśli tworzysz klaster RHEL 8.x , użyj następujących poleceń:

      #Start HANA topology, before the HANA instance
      pcs constraint order SAPHanaTopology_HN1_HDB03-clone then SAPHana_HN1_HDB03-clone
      
      pcs constraint colocation add g_ip_HN1_03 with master SAPHana_HN1_HDB03-clone 4000
      #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node
      pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
      
  7. [1] Umieść klaster w trybie konserwacji. Upewnij się, że stan klastra to ok, i że wszystkie zasoby zostały uruchomione.

    sudo pcs property set maintenance-mode=false
    #If there are failed cluster resources, you may need to run the next command
    pcs resource cleanup
    

    Uwaga

    Limity czasu w poprzedniej konfiguracji to tylko przykłady i może być konieczne dostosowanie ich do określonej konfiguracji platformy HANA. Na przykład może być konieczne zwiększenie limitu czasu rozpoczęcia, jeśli uruchomienie bazy danych SAP HANA trwa dłużej.

Konfigurowanie replikacji systemu z obsługą aktywnego/odczytu platformy HANA

Począwszy od SAP HANA 2.0 z dodatkiem SPS 01, system SAP zezwala na aktywne/odczyty konfiguracji na potrzeby replikacji systemu SAP HANA. Dzięki tej możliwości można aktywnie korzystać z pomocniczych systemów replikacji systemu SAP HANA w przypadku obciążeń intensywnie korzystających z odczytu. Do obsługi takiej konfiguracji w klastrze potrzebny jest drugi wirtualny adres IP, który umożliwia klientom dostęp do pomocniczej bazy danych SAP HANA z obsługą odczytu. Aby upewnić się, że lokacja replikacji dodatkowej nadal może być dostępna po przejęciu, klaster musi przenieść wirtualny adres IP wokół z pomocniczym zasobem SAP HANA.

W tej sekcji opisano dodatkowe kroki, które należy wykonać, aby zarządzać tego typu replikacją systemową w klastrze wysokiej dostępności systemu Red Hat z drugim wirtualnym adresem IP.

Przed kontynuowaniem upewnij się, że w pełni skonfigurowano klaster wysokiej dostępności oprogramowania Red Hat, zarządzając bazą danych SAP HANA zgodnie z wcześniejszym opisem w tym artykule.

SAP HANA scale-out high availability with read-enabled secondary

Dodatkowa konfiguracja w Azure Load Balancer dla konfiguracji z włączoną obsługą aktywnego/odczytu

Aby kontynuować aprowizowanie drugiego wirtualnego adresu IP, upewnij się, że skonfigurowano Azure Load Balancer zgodnie z opisem w temacie Wdrażanie Azure Load Balancer.

W przypadku modułu równoważenia obciążenia w warstwie Standardowa wykonaj następujące dodatkowe kroki dotyczące tego samego modułu równoważenia obciążenia utworzonego we wcześniejszej sekcji.

  1. Utwórz drugą pulę adresów IP frontonu:

    1. Otwórz moduł równoważenia obciążenia, wybierz pulę adresów IP frontonu i wybierz pozycję Dodaj.
    2. Wprowadź nazwę drugiej puli adresów IP frontonu (na przykład hana-secondaryIP).
    3. Ustaw wartość Przypisanie na Statyczne i wprowadź adres IP (na przykład 10.23.0.19).
    4. Wybierz przycisk OK.
    5. Po utworzeniu nowej puli adresów IP frontonu zanotuj adres IP puli.
  2. Następnie utwórz sondę kondycji:

    1. Otwórz moduł równoważenia obciążenia, wybierz pozycję Sondy kondycji i wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej sondy kondycji (na przykład hana-secondaryhp).
    3. Wybierz protokół TCP jako protokół i port 62603. Zachowaj wartość Interwał ustawioną na 5, a wartość progu złej kondycji ustawiona na 2.
    4. Wybierz przycisk OK.
  3. Następnie utwórz reguły równoważenia obciążenia:

    1. Otwórz moduł równoważenia obciążenia, wybierz pozycję Reguły równoważenia obciążenia, a następnie wybierz pozycję Dodaj.
    2. Wprowadź nazwę nowej reguły modułu równoważenia obciążenia (na przykład hana-secondarylb).
    3. Wybierz adres IP frontonu, pulę zaplecza i utworzoną wcześniej sondę kondycji (na przykład hana-secondaryIP, hana-backend i hana-secondaryhp).
    4. Wybierz pozycję Porty wysokiej dostępności.
    5. Upewnij się, że włączono zmienny adres IP.
    6. Wybierz przycisk OK.

Konfigurowanie replikacji systemu z obsługą aktywnego/odczytu platformy HANA

Kroki konfigurowania replikacji systemu HANA zostały opisane w sekcji Konfigurowanie replikacji systemu SAP HANA 2.0. Jeśli wdrażasz scenariusz pomocniczy z obsługą odczytu, podczas konfigurowania replikacji systemu w drugim węźle uruchom następujące polecenie jako adm hanasid:

sapcontrol -nr 03 -function StopWait 600 10 

hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2 --operationMode=logreplay_readaccess 

Dodawanie pomocniczego zasobu wirtualnego adresu IP dla konfiguracji z włączoną obsługą aktywnego/odczytu

Możesz skonfigurować drugi wirtualny adres IP i dodatkowe ograniczenia za pomocą następujących poleceń. Jeśli wystąpienie pomocnicze nie działa, pomocniczy wirtualny adres IP zostanie przełączony na podstawowy.

pcs property set maintenance-mode=true

pcs resource create secvip_HN1_03 ocf:heartbeat:IPaddr2 ip="10.23.0.19"
pcs resource create secnc_HN1_03 ocf:heartbeat:azure-lb port=62603
pcs resource group add g_secip_HN1_03 secnc_HN1_03 secvip_HN1_03

# RHEL 8.x: 
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50  hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote  SAPHana_HN1_HDB03-clone then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave SAPHana_HN1_HDB03-clone 5

# RHEL 7.x:
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50  hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote  msl_SAPHana_HN1_HDB03 then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave msl_SAPHana_HN1_HDB03 5

pcs property set maintenance-mode=false

Upewnij się, że stan klastra to ok, a wszystkie zasoby zostały uruchomione. Drugi wirtualny adres IP zostanie uruchomiony w lokacji dodatkowej wraz z zasobem pomocniczym SAP HANA.

# Example output from crm_mon
#Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#
#Active resources:
#
#rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
#Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
#    Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
#    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
#    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
#    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
#    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
#    Masters: [ hana-s1-db1 ]
#    Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Resource Group: g_ip_HN1_03
#    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
#    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
#Resource Group: g_secip_HN1_03
#    secnc_HN1_03       (ocf::heartbeat:azure-lb):      Started hana-s2-db1
#    secvip_HN1_03      (ocf::heartbeat:IPaddr2):       Started hana-s2-db1

W następnej sekcji można znaleźć typowy zestaw testów trybu failover do uruchomienia.

Podczas testowania klastra HANA skonfigurowanego przy użyciu pomocniczego z obsługą odczytu należy pamiętać o następującym zachowaniu drugiego wirtualnego adresu IP:

  • Gdy zasób klastra SAPHana_HN1_HDB03 zostanie przeniesiony do lokacji dodatkowej (S2), drugi wirtualny adres IP zostanie przeniesiony do innej lokacji , hana-s1-db1. Jeśli skonfigurowano AUTOMATED_REGISTER="false"replikację systemu , a replikacja systemu HANA nie jest automatycznie zarejestrowana, drugi wirtualny adres IP zostanie uruchomiony w bazie danych hana-s2-db1.

  • Podczas testowania awarii serwera drugie zasoby wirtualnego adresu IP (secvip_HN1_03) i zasób portu Azure Load Balancer (secnc_HN1_03) są uruchamiane na serwerze podstawowym wraz z podstawowymi zasobami wirtualnego adresu IP. Gdy serwer pomocniczy nie działa, aplikacje połączone z bazą danych HANA z włączoną obsługą odczytu będą łączyć się z podstawową bazą danych HANA. Takie zachowanie jest oczekiwane. Umożliwia ona działanie aplikacji połączonych z bazą danych HANA z włączoną obsługą odczytu, gdy serwer pomocniczy jest niedostępny.

  • Podczas pracy w trybie failover i powrotu istniejące połączenia dla aplikacji korzystających z drugiego wirtualnego adresu IP do nawiązania połączenia z bazą danych HANA mogą zostać przerwane.

Testowanie SAP HANA pracy w trybie failover

  1. Przed rozpoczęciem testu sprawdź klaster i SAP HANA stan replikacji systemu.

    1. Sprawdź, czy nie ma żadnych nieudanych akcji klastra.

      #Verify that there are no failed cluster actions
      pcs status
      # Example
      #Stack: corosync
      #Current DC: hana-s-mm (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
      #Last updated: Thu Sep 24 06:00:20 2020
      #Last change: Thu Sep 24 05:59:17 2020 by root via crm_attribute on hana-s1-db1
      #
      #7 nodes configured
      #45 resources configured
      #
      #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #
      #Active resources:
      #
      #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
      #Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
      #    Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ]
      #Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
      #    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
      #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
      #Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
      #    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
      #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
      #    Masters: [ hana-s1-db1 ]
      #    Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Resource Group: g_ip_HN1_03
      #    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
      #    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
      
    2. Sprawdź, czy replikacja systemu SAP HANA jest zsynchronizowana.

      # Verify HANA HSR is in sync
      sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"
      #| Database | Host        | Port  | Service Name | Volume ID | Site ID | Site Name | Secondary     | Secondary| Secondary | Secondary | Secondary     | Replication | Replication | Replication    |
      #|          |             |       |              |           |         |           | Host          | Port     | Site ID   | Site Name | Active Status | Mode        | Status      | Status Details |
      #| -------- | ----------- | ----- | ------------ | --------- | ------- | --------- | ------------- | -------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
      #| HN1      | hana-s1-db3 | 30303 | indexserver  |         5 |       2 | HANA_S1   | hana-s2-db3 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db2 | 30303 | indexserver  |         4 |       2 | HANA_S1   | hana-s2-db2 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |  
      #| SYSTEMDB | hana-s1-db1 | 30301 | nameserver   |         1 |       2 | HANA_S1   | hana-s2-db1 |     30301  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db1 | 30307 | xsengine     |         2 |       2 | HANA_S1   | hana-s2-db1 |     30307  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db1 | 30303 | indexserver  |         3 |       2 | HANA_S1   | hana-s2-db1 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      
      #status system replication site "1": ACTIVE
      #overall system replication status: ACTIVE
      
      #Local System Replication State
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      #mode: PRIMARY
      #site id: 1
      #site name: HANA_S1
      
  2. Sprawdź konfigurację klastra pod kątem scenariusza awarii, gdy węzeł utraci dostęp do udziału NFS (/hana/shared).

    Agenci zasobów SAP HANA zależą od plików binarnych przechowywanych w /hana/sharedsystemie w celu wykonywania operacji podczas pracy w trybie failover. System /hana/shared plików jest instalowany za pośrednictwem systemu plików NFS w przedstawionej konfiguracji. Jednym z testów, które można wykonać, jest ponowne odinstalowanie /hana/shared systemu plików jako tylko do odczytu. Takie podejście sprawdza, czy klaster przejdzie w tryb failover, jeśli dostęp do /hana/shared zostanie utracony w aktywnej lokacji replikacji systemu.

    Oczekiwany wynik: w przypadku ponownego zainstalowania /hana/shared jako tylko do odczytu operacja monitorowania, która wykonuje operację odczytu/zapisu w systemie plików, zakończy się niepowodzeniem. Jest to spowodowane tym, że nie jest w stanie zapisać w systemie plików i spowoduje wyzwolenie trybu failover zasobu HANA. Ten sam wynik jest oczekiwany, gdy węzeł HANA utraci dostęp do udziału NFS.

    Stan zasobów klastra można sprawdzić, uruchamiając polecenie crm_mon lub pcs status. Stan zasobu przed rozpoczęciem testu:

    # Output of crm_mon
    #7 nodes configured
    #45 resources configured
    
    #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #
    #Active resources:
    
    #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
    # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
    #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
    #     Masters: [ hana-s1-db1 ]
    #     Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Resource Group: g_ip_HN1_03
    #     nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
    #     vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
    

    Aby symulować błąd dla /hana/shared jednej z maszyn wirtualnych lokacji głównej replikacji, uruchom następujące polecenie:

    # Execute as root 
    mount -o ro /hana/shared
    # Or if the preceding command returns an error
    sudo mount -o ro 10.23.1.7/HN1-shared-s1 /hana/shared
    

    Maszyna wirtualna platformy HANA, która utraciła dostęp, /hana/shared powinna zostać uruchomiona ponownie lub zatrzymana w zależności od konfiguracji klastra. Zasoby klastra są migrowane do innej lokacji replikacji systemu HANA.

    Jeśli klaster nie został uruchomiony na maszynie wirtualnej, która została uruchomiona ponownie, uruchom klaster, uruchamiając następujące polecenie:

    # Start the cluster 
    pcs cluster start
    

    Po uruchomieniu klastra system /hana/shared plików jest instalowany automatycznie. W przypadku ustawienia AUTOMATED_REGISTER="false"należy skonfigurować replikację systemu SAP HANA w lokacji dodatkowej. W takim przypadku można uruchomić te polecenia, aby ponownie skonfigurować SAP HANA jako pomocnicze.

    # Execute on the secondary 
    su - hn1adm
    # Make sure HANA is not running on the secondary site. If it is started, stop HANA
    sapcontrol -nr 03 -function StopWait 600 10
    # Register the HANA secondary site
    hdbnsutil -sr_register --name=HANA_S1 --remoteHost=hana-s2-db1 --remoteInstance=03 --replicationMode=sync
    # Switch back to root and clean up failed resources
    pcs resource cleanup SAPHana_HN1_HDB03
    

    Stan zasobów po teście:

    # Output of crm_mon
    #7 nodes configured
    #45 resources configured
    
    #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    
    #Active resources:
    
    #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
    # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
    #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
    #     Masters: [ hana-s2-db1 ]
    #     Slaves: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db2 hana-s2-db3 ]
    # Resource Group: g_ip_HN1_03
    #     nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s2-db1
    #     vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s2-db1
    

Warto dokładnie przetestować konfigurację klastra SAP HANA, wykonując również testy udokumentowane w ha dla SAP HANA na maszynach wirtualnych platformy Azure w systemie RHEL.

Następne kroki