Udostępnij za pośrednictwem


Wysoka dostępność skalowalnego w poziomie oprogramowania SAP HANA 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 korzysta z replikacji systemu HANA (HSR) i pacemaker na maszynach wirtualnych z systemem Linux w usłudze Azure Red Hat Enterprise Linux. Udostępnione systemy plików w przedstawionej architekturze są zainstalowane w systemie plików NFS i są udostępniane przez udziały usługi Azure NetApp Files lub NFS w usłudze Azure Files.

W przykładowych konfiguracjach i poleceniach instalacji wystąpienie platformy HANA to 03 , a identyfikator systemu HANA to HN1.

Wymagania wstępne

Niektórzy czytelnicy skorzystają z konsultacji z różnymi uwagami i zasobami sap przed kontynuowaniem pracy z tematami w tym artykule:

Omówienie

Aby osiągnąć 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ł ulegnie awarii, klaster przejmie zasoby platformy HANA w tryb failover w 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 "podzielonego mózgu". Instrukcje można dostosować w celu uwzględnienia większej liczby maszyn wirtualnych jako węzłów bazy danych HANA.

Udostępniony system /hana/shared plików HANA w przedstawionej architekturze może być udostępniany przez usługę Azure NetApp Files lub udział NFS w usłudze Azure Files. Udostępniony system plików HANA jest zainstalowany w każdym węźle HANA w tej samej lokacji replikacji systemu HANA. Systemy plików i /hana/log są lokalnymi systemami /hana/data plików i nie są współużytkowane między węzłami bazy danych HANA. Oprogramowanie SAP HANA zostanie zainstalowane w trybie nieudzielonym.

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

Ważne

W przypadku wdrażania wszystkich systemów plików HANA w usłudze Azure NetApp Files w systemach produkcyjnych, gdzie wydajność jest kluczem, zalecamy ocenę i rozważenie użycia grupy woluminów aplikacji usługi Azure NetApp Files dla platformy SAP HANA.

Diagram przedstawiający skalowanie w poziomie oprogramowania SAP HANA za pomocą modułu HSR i klastra Pacemaker.

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
  • W przypadku wewnętrznej komunikacji 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 oddzielnej podsieci i oddzielnych wirtualnych kart sieciowych na potrzeby komunikacji z magazynem.

Jeśli używasz usługi Azure NetApp Files, woluminy NFS dla /hana/sharedsystemu plików są wdrażane w oddzielnej podsieci delegowanej do usługi Azure NetApp Files: anf 10.23.1.0/26.

Konfigurowanie infrastruktury

W poniższych instrukcjach przyjęto założenie, ż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 witryny Azure Portal

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

    • Trzy maszyny wirtualne do obsługi węzłów bazy danych HANA dla lokacji replikacji HANA 1: hana-s1-db1, hana-s1-db2 i hana-s1-db3.
    • Trzy maszyny wirtualne, które służą 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 platformy SAP HANA. Maszyna wirtualna twórcy większości jest używana w konfiguracji klastra do osiągnięcia i nieparzystej liczby węzłów klastra w scenariuszu podzielonym mózgiem. W tym przykładzie maszyna wirtualna twórcy większości potrzebuje tylko jednego wirtualnego interfejsu sieciowego w podsieci client .

    Wdróż lokalne dyski zarządzane dla i /hana/data /hana/log. Minimalna zalecana konfiguracja magazynu dla /hana/data programu i /hana/log jest opisana w temacie Konfiguracje magazynu maszyn wirtualnych platformy Azure sap HANA.

    Wdróż podstawowy interfejs sieciowy dla każdej maszyny wirtualnej w podsieci client sieci wirtualnej. Po wdrożeniu maszyny wirtualnej za pośrednictwem witryny 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 jest certyfikowany dla oprogramowania SAP HANA na określonych typach maszyn wirtualnych, których używasz. Aby uzyskać listę certyfikowanych typów maszyn wirtualnych i wydań systemu operacyjnego SAP HANA dla tych typów, zobacz certyfikowane platformy IaaS oprogramowania SAP HANA. Przejdź do szczegółów wymienionego typu maszyny wirtualnej, aby uzyskać pełną listę wersji systemu operacyjnego obsługiwanych przez platformę SAP HANA dla tego typu.

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

  3. Utwórz sześć interfejsów sieciowych, po jednym dla każdej maszyny wirtualnej bazy danych HANA, w 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). hsr

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

    1. Przejdź do maszyny wirtualnej w witrynie Azure Portal.
    2. W okienku po lewej stronie wybierz pozycję Maszyny wirtualne. Odfiltruj 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. Z listy 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. Pozostaw maszyny wirtualne w stanie zatrzymany na razie.
  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 usługę Azure Cloud Shell w witrynie Azure Portal.

    2. Uruchom następujące polecenia, aby włączyć przyspieszoną sieć dla dodatkowych interfejsów sieciowych dołączonych 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 HANA DB.

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 bazy danych HANA o wysokiej dostępności.

Uwaga

  • W przypadku skalowania platformy HANA w poziomie wybierz kartę sieciową dla client podsieci podczas dodawania maszyn wirtualnych w puli zaplecza.
  • Pełny zestaw poleceń w interfejsie wiersza polecenia platformy Azure i programie PowerShell dodaje maszyny wirtualne z podstawową kartą sieciową w puli zaplecza.

Wykonaj kroki opisane w temacie Tworzenie 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 adres IP frontonu. Wybierz tę samą sieć wirtualną i nazwę podsieci co maszyny wirtualne bazy danych.
  2. Pula zaplecza: utwórz pulę zaplecza i dodaj maszyny wirtualne bazy danych.
  3. Reguły ruchu przychodzącego: utwórz regułę równoważenia obciążenia. Wykonaj te same kroki dla obu reguł równoważenia obciążenia.
    • Adres IP frontonu: wybierz adres IP frontonu.
    • Pula zaplecza: wybierz pulę zaplecza.
    • Porty wysokiej dostępności: wybierz tę opcję.
    • Protokół: wybierz pozycję TCP.
    • Sonda kondycji: utwórz sondę kondycji z następującymi szczegółami:
      • Protokół: wybierz pozycję TCP.
      • Port: na przykład 625<instance-no.>.
      • Interwał: wprowadź wartość 5.
      • Próg sondy: wprowadź wartość 2.
    • Limit czasu bezczynności (w minutach): wprowadź wartość 30.
    • Włącz pływający adres IP: wybierz tę opcję.

Uwaga

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

Uwaga

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 korzystających z 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 PROTOKOŁU TCP na maszynach wirtualnych platformy Azure umieszczonych za usługą 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 health probes and SAP note 2382421 (Sondy kondycji modułu równoważenia obciążenia i sap) 2382421.

Wdrażanie systemu plików NFS

Istnieją dwie opcje wdrażania natywnego systemu plików NFS platformy Azure dla systemu /hana/shared. Wolumin NFS można wdrożyć w usłudze Azure NetApp Files lub udziale NFS w usłudze Azure Files. Usługa Azure Files obsługuje protokół NFSv4.1, system plików NFS w usłudze Azure NetApp files obsługuje zarówno system plików NFSv4.1, jak i NFSv3.

W następnych sekcjach opisano kroki wdrażania systemu plików NFS — musisz wybrać tylko jedną z opcji.

Wdrażanie infrastruktury usługi Azure NetApp Files

Wdróż woluminy usługi 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 usługi Azure NetApp Files.

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

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

Wdrażanie systemu plików NFS w infrastrukturze usługi Azure Files

Wdróż udziały NFS usługi Azure Files dla /hana/shared systemu plików. Będzie potrzebny oddzielny /hana/shared udział NFS usługi Azure Files dla każdej lokacji replikacji systemu HANA. Aby uzyskać więcej informacji, zobacz How to create an NFS share (Jak utworzyć udział NFS).

W tym przykładzie użyto następujących udziałów NFS usługi Azure Files:

  • share hn1-shared-s1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
  • share hn1-shared-s2 (sapnfsafs.file.core.windows.net:/sapnfsafs/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, WITRYNY 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. Następujące wpisy są dodawane do /etc/hosts tego przykładu.

    # 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] Utwórz plik konfiguracji /etc/sysctl.d/ms-az.conf z firmą Microsoft dla ustawień konfiguracji platformy Azure.

    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
    

    Napiwek

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

  3. [A] Zainstaluj pakiet klienta NFS.

    yum install nfs-utils
    
  4. [AH] Red Hat for HANA configuration (Konfiguracja oprogramowania Red Hat dla platformy HANA).

    Skonfiguruj system RHEL zgodnie z opisem w portalu klienta oprogramowania 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. Wybrano wdrożenie /hana/shared" w udziale NFS w usłudze Azure Files lub woluminie NFS w usłudze Azure NetApp Files.

Instalowanie udostępnionych systemów plików (Azure NetApp Files NFS)

W tym przykładzie udostępnione systemy plików HANA są wdrażane w usłudze Azure NetApp Files i instalowane za pośrednictwem systemu plików NFSv4.1. Wykonaj kroki opisane w tej sekcji, tylko jeśli używasz systemu plików NFS w usłudze Azure NetApp Files.

  1. [AH] Przygotuj system operacyjny do uruchamiania oprogramowania SAP HANA w systemach NetApp Systems z systemem plików NFS, zgodnie z opisem w uwagach sap 3024346 — Ustawienia jądra systemu Linux dla systemu plików NetApp NFS. Utwórz plik konfiguracji /etc/sysctl.d/91-NetApp-HANA.conf dla ustawień konfiguracji usługi NetApp.

    vi /etc/sysctl.d/91-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
    
  2. [AH] Dostosuj ustawienia sunrpc zgodnie z zaleceniami w temacie SAP 3024346 — Ustawienia jądra systemu Linux dla systemu plików NFS usługi NetApp.

    vi /etc/modprobe.d/sunrpc.conf
    
    # Insert the following line
    options sunrpc tcp_max_slot_table_entries=128
    
  3. [AH] Tworzenie punktów instalacji dla woluminów bazy danych HANA.

    mkdir -p /hana/shared
    
  4. [AH] Sprawdź ustawienie domeny NFS. Upewnij się, że domena jest skonfigurowana jako domyślna domena usługi 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 usłudze Azure NetApp Files: defaultv4iddomain.com. W przypadku niezgodności konfiguracji domeny na kliencie NFS i serwerze NFS uprawnienia dla 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
    
  5. [AH] Zweryfikuj nfs4_disable_idmappingpolecenie . Powinna być ustawiona wartość Y. Aby utworzyć strukturę katalogów, w której nfs4_disable_idmapping się znajduje, uruchom polecenie instalacji. Nie będzie można ręcznie utworzyć katalogu w katalogu /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 zmiany parametru nfs4_disable_idmapping , zobacz Portal klienta usługi Red Hat.

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

    sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s1 /hana/shared
    
  7. [AH2] Zainstaluj udostępnione woluminy usługi Azure NetApp Files na maszynach wirtualnych USŁUGI SITE2 HANA DB.

    sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s2 /hana/shared
    
  8. [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
    

Instalowanie udostępnionych systemów plików (Azure Files NFS)

W tym przykładzie udostępnione systemy plików HANA są wdrażane w systemie plików NFS w usłudze Azure Files. Wykonaj kroki opisane w tej sekcji, tylko jeśli używasz systemu plików NFS w usłudze Azure Files.

  1. [AH] Tworzenie punktów instalacji dla woluminów bazy danych HANA.

    mkdir -p /hana/shared
    
  2. [AH1] Zainstaluj udostępnione woluminy usługi Azure NetApp Files na maszynach wirtualnych USŁUGI SITE1 HANA DB.

    sudo vi /etc/fstab
    # Add the following entry
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 /hana/shared  nfs nfsvers=4.1,sec=sys  0  0
    # Mount all volumes
    sudo mount -a 
    
  3. [AH2] Zainstaluj udostępnione woluminy usługi Azure NetApp Files na maszynach wirtualnych USŁUGI SITE2 HANA DB.

    sudo vi /etc/fstab
    # Add the following entries
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 /hana/shared  nfs nfsvers=4.1,sec=sys  0  0
    # Mount the volume
    sudo mount -a 
    
  4. [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.1.

    sudo nfsstat -m
    # Example from SITE 1, hana-s1-db1
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1
     Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35
    # Example from SITE 2, hana-s2-db1
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2
     Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
    

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, a te systemy plików są dołączane lokalnie do każdej maszyny wirtualnej bazy danych HANA. Uruchom następujące kroki, aby utworzyć lokalne woluminy danych i dzienników 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 przyjęto założenie, ż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 wyjście:

    /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 katalogu udostępnionego platformy 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 operacji we/wy. Wyrównuj rozmiary pasków do wartości opisanych w konfiguracjach magazynu maszyn wirtualnych SAP HANA. Argument -i powinien być liczbą źródłowych 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 Konfiguracje magazynu maszyn wirtualnych SAP HANA, aby uzyskać zalecane konfiguracje magazynu, w tym rozmiary stripe 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 na potrzeby wdrażania platformy 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 jako root polecenie passwd , 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, należy wymienić ssh klucze zgodnie z dokumentacją w artykule Korzystanie z uwierzytelniania opartego na kluczach.

    ssh root@hana-s1-db2
    ssh root@hana-s1-db3
    
  4. [2] Sprawdź, czy możesz zalogować się w hana-s2-db2 i hana-s2-db3 za pośrednictwem protokołu SSH bez monitowania o podanie hasła. Jeśli tak nie jest, należy wymienić ssh klucze zgodnie z dokumentacją w artykule 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 oprogramowanie SAP HANA, postępując zgodnie z instrukcjami w przewodniku instalacji i aktualizacji oprogramowania SAP HANA 2.0. Poniższe instrukcje pokazują instalację oprogramowania 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 obszarze Wybierz akcję wprowadź wartość 1 (w przypadku instalacji).
      • W polu Dodatkowe składniki do instalacji wprowadź wartość 2, 3.
      • Aby uzyskać ścieżkę instalacji, naciśnij Enter (domyślnie to /hana/shared).
      • W polu Nazwa hosta lokalnego naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Czy chcesz dodać hosty do systemu?, wprowadź n.
      • W polu Identyfikator systemu SAP HANA 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 Enter, aby zaakceptować wartość domyślną.
      • W obszarze Wybierz użycie systemu / Wprowadź indeks [4], wprowadź wartość 4 (dla ustawienia niestandardowego).
      • W obszarze Lokalizacja woluminów danych [/hana/data/HN1] naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Lokalizacja woluminów dziennika [/hana/log/HN1] naciśnij 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 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 obszarze Katalog główny administratora systemu [/usr/sap/HN1/home] naciśnij Enter, aby zaakceptować wartość domyślną.
      • W obszarze Powłoka logowania administratora systemu [/bin/sh] naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Identyfikator użytkownika administratora systemu [1001] naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Wprowadź identyfikator grupy użytkowników (sapsys) [79] naciśnij 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 (systemu) bazy danych systemu 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 i jeśli wszystko wygląda dobrze, wprowadź y.
  2. [2] Powtórz poprzedni krok, aby zainstalować platformę SAP HANA w pierwszym węźle w witrynie SITE 2.

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

    Wyświetl global.ini i upewnij się, że konfiguracja wewnętrznej komunikacji między węzłami SAP HANA jest włączona. Sprawdź sekcję communication . Powinna mieć przestrzeń adresową podsieci inter i listeninterface powinna być ustawiona na .internal. Sprawdź sekcję internal_hostname_resolution . Powinien mieć 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 nieudostępnianym, zgodnie z opisem w uwagach sap 2080991.

     sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
     [persistence]
     basepath_shared = no
    
  5. [1,2] Uruchom ponownie platformę 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 uwaga SAP 2183363 — 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 pomocnicze 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 obszarze Wybierz akcję wprowadź wartość 2 (dla dodawania hostów).
      • W polu Wprowadź nazwy hostów rozdzielonych przecinkami wprowadź hana-s1-db2, hana-s1-db3.
      • W polu Dodatkowe składniki do instalacji wprowadź wartość 2, 3.
      • W polu Wprowadź nazwę użytkownika głównego [root], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W obszarze Wybierz role dla hosta "hana-s1-db2" [1], wybierz pozycję 1 (dla procesu roboczego).
      • W polu Wprowadź grupę trybu failover hosta dla hosta "hana-s1-db2" [domyślne], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Wprowadź numer partycji magazynu dla hosta "hana-s1-db2" [<<przypisz automatycznie>>], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Wprowadź grupę procesów roboczych dla hosta "hana-s1-db2" [domyślne], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W obszarze Wybierz role dla hosta "hana-s1-db3" [1], wybierz pozycję 1 (dla procesu roboczego).
      • W polu Wprowadź grupę trybu failover hosta dla hosta "hana-s1-db3" [domyślne], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Wprowadź numer partycji magazynu dla hosta "hana-s1-db3" [<<przypisz automatycznie>>], naciśnij Enter, aby zaakceptować wartość domyślną.
      • W polu Wprowadź grupę procesów roboczych dla hosta "hana-s1-db3" [domyślne], naciśnij 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 Enter, aby zaakceptować wartość domyślną.
      • W polu Nazwa hosta certyfikatu dla hosta hana-s1-db3 [hana-s1-db3] naciśnij Enter, aby zaakceptować wartość domyślną.
      • W obszarze Czy chcesz kontynuować (y/n), zweryfikuj podsumowanie i jeśli wszystko wygląda dobrze, wprowadź 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 witrynie SITE 1:

    Tworzenie kopii zapasowej 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, aby komunikacja na potrzeby replikacji systemu HANA została skierowana, mimo że 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 hostów 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. Konieczne będzie dostosowanie portów dla numeru wystąpienia platformy HANA.

      Ważne

      Utwórz reguły zapory, aby zezwolić na komunikację między węzłami HANA i ruch klienta. Wymagane porty są wyświetlane na portach TCP/IP wszystkich produktów SAP. Poniższe polecenia są tylko przykładem. W tym scenariuszu użyjesz numeru systemowego 03.

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

Tworzenie klastra Pacemaker

Aby utworzyć podstawowy klaster Pacemaker, 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 dwuwęźleowy. 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, jak to zrobić:

  1. [1,2] Zatrzymaj platformę SAP HANA w obu lokacjach replikacji. Uruchom jako <identyfikator 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 jego 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.
    Wybrano wdrożenie /hana/shared" w udziale NFS w usłudze Azure Files lub woluminie NFS w usłudze Azure NetApp Files.

    • W tym przykładzie system plików "/hana/shared" jest wdrażany w usłudze Azure NetApp Files i instalowany za pośrednictwem systemu plików NFSv4.1. Wykonaj kroki opisane w tej sekcji, tylko jeśli używasz systemu plików NFS w usłudze Azure NetApp Files.

      # /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,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s 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,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s 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
      
      

    Sugerowane wartości limitów czasu umożliwiają zasobom klastra wytrzymanie wstrzymania specyficznego dla protokołu związanego z odnawianiem dzierżawy NFSv4.1 w usłudze Azure NetApp Files. Aby uzyskać więcej informacji, zobacz NFS in NetApp Best practices (Najlepsze rozwiązanie dotyczące systemu plików NFS w usłudze NetApp).

    • W tym przykładzie system plików "/hana/shared" jest wdrażany w systemie plików NFS w usłudze Azure Files. Wykonaj kroki opisane w tej sekcji, tylko jeśli używasz systemu plików NFS w usłudze Azure Files.

      # /hana/shared file system for site 1
      pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1  directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s 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=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s 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 monitorowanie operacji wykonuje 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órego działanie nie powiodło się, a następnie ponowne uruchomienie zasobu, które zakończyło 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.

      Przekroczenia limitu czasu w powyższych konfiguracjach mogą być dostosowane do określonej konfiguracji systemu SAP.

  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 określające, gdzie będą zainstalowane systemy plików NFS, i włączyć 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 usługi Azure NetApp Files są zainstalowane w obszarze /hana/shared, na wszystkich maszynach wirtualnych bazy danych HANA w obu lokacjach.

    • Jeśli na przykład używasz usługi Azure NetApp Files:

      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
      
    • Jeśli na przykład używasz systemu plików NFS usługi Azure Files:

      sudo nfsstat -m
      # Example from SITE 1, hana-s1-db1
      sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1
       Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35
      # Example from SITE 2, hana-s2-db1
      sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2
       Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
      
  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
    

    Napiwek

    Jeśli konfiguracja obejmuje systemy plików inne niż /hana/shared, a te systemy plików są zainstalowane systemu plików NFS, dołącz sequential=false opcję . Ta opcja gwarantuje, że nie ma zależności porządkowania między systemami plików. Wszystkie zainstalowane systemy plików NFS muszą rozpoczynać się przed odpowiednim zasobem atrybutu, ale nie muszą uruchamiać się w żadnej kolejności względem siebie. Aby uzyskać więcej informacji, zobacz Jak mogę skonfigurować moduł HSR sap HANA skalowalny w poziomie 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 platformą 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. Oprogramowanie SAP HANA powinno 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 platformę SAP HANA w obu lokacjach replikacji. Uruchom jako <identyfikator 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 platformy 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, którego firma Microsoft już nie używa. Po usunięciu tego terminu z oprogramowania usuniemy go również z 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 AUTOMATED_REGISTER falsewartości , gdy przeprowadzasz testy trybu failover, aby zapobiec automatycznemu zarejestrowaniu się jako pomocniczego wystąpienia podstawowego, które zakończyło się niepowodzeniem. Po przetestowaniu jako najlepsze rozwiązanie ustaw wartość AUTOMATED_REGISTER true, aby po przejęciu replikacja systemu mogła być wznawiana automatycznie.

    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 na platformie HANA

Począwszy od platformy SAP HANA 2.0 SPS 01, oprogramowanie SAP zezwala na aktywne/odczytu konfiguracje replikacji systemu SAP HANA. Dzięki tej możliwości można aktywnie korzystać z pomocniczych systemów replikacji systemu SAP HANA na potrzeby obciążeń intensywnie korzystających z odczytu. Aby obsługiwać taką konfigurację w klastrze, potrzebny jest drugi wirtualny adres IP, który umożliwia klientom dostęp do pomocniczej bazy danych SAP HANA z włączoną obsługą odczytu. Aby upewnić się, że lokacja replikacji dodatkowej będzie nadal 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ą systemu 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 opisem we wcześniejszej części tego artykułu.

Wysoka dostępność platformy SAP HANA skalowana w poziomie z obsługą odczytu pomocniczego

Dodatkowa konfiguracja w usłudze Azure Load Balancer na potrzeby konfiguracji z obsługą aktywnego/odczytu

Aby kontynuować aprowizowanie drugiego wirtualnego adresu IP, upewnij się, że skonfigurowano usługę Azure Load Balancer zgodnie z opisem w temacie Konfigurowanie usługi Azure Load Balancer.

W przypadku modułu równoważenia obciążenia w warstwie Standardowa wykonaj następujące dodatkowe kroki dla 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 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 pływający adres IP.
    6. Wybierz przycisk OK.

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

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

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

Drugi wirtualny adres IP i dodatkowe ograniczenia można skonfigurować 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, i że 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 znajdziesz typowy zestaw testów trybu failover do uruchomienia.

Podczas testowania klastra HANA skonfigurowanego przy użyciu pomocniczego obsługującego odczyt 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 zostanie zarejestrowana automatycznie, 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 usługi 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. To zachowanie jest oczekiwane. Umożliwia ona działanie aplikacji połączonych z bazą danych HANA z obsługą odczytu, gdy serwer pomocniczy jest niedostępny.

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

Testowanie trybu failover platformy SAP HANA

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

    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 na /hana/sharedplatformie , aby wykonywać operacje podczas pracy w trybie failover. System /hana/shared plików jest instalowany za pośrednictwem systemu plików NFS w przedstawionej konfiguracji. Test, który można wykonać, to utworzenie tymczasowej reguły zapory w celu zablokowania dostępu do /hana/shared zainstalowanego systemu plików NFS na jednej z maszyn wirtualnych lokacji głównej. To 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: jeśli zablokujesz dostęp do zainstalowanego /hana/shared systemu plików NFS na jednej z maszyn wirtualnych lokacji głównej, operacja monitorowania, która wykonuje operację odczytu/zapisu w systemie plików, zakończy się niepowodzeniem, ponieważ nie będzie w stanie uzyskać dostępu do systemu plików i wyzwoli tryb failover zasobu platformy 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 zasymulować błąd dla elementu /hana/shared:

    • Jeśli używasz systemu plików NFS w usłudze ANF, najpierw potwierdź adres IP woluminu /hana/shared ANF w lokacji głównej. Możesz to zrobić, uruchamiając polecenie df -kh|grep /hana/shared.
    • W przypadku korzystania z systemu plików NFS w usłudze Azure Files najpierw określ adres IP prywatnego punktu końcowego dla konta magazynu.

    Następnie skonfiguruj tymczasową regułę zapory, aby zablokować dostęp do adresu /hana/shared IP systemu plików NFS, wykonując następujące polecenie na jednej z podstawowych maszyn wirtualnych lokacji replikacji systemu HANA.

    W tym przykładzie polecenie zostało wykonane na woluminie /hana/sharedANF hana-s1-db1.

    iptables -A INPUT -s 10.23.1.7 -j DROP; iptables -A OUTPUT -d 10.23.1.7 -j DROP
    

    Maszyna wirtualna 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 automatycznie instalowany. 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ć platformę SAP HANA jako pomocniczą.

    # 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 ha dla platformy SAP HANA na maszynach wirtualnych platformy Azure w systemie RHEL.

Następne kroki