Sdílet prostřednictvím


Vysoká dostupnost SAP HANA na virtuálních počítačích Azure v systému Red Hat Enterprise Linux

Pro místní vývoj můžete použít replikaci systému HANA nebo sdílené úložiště k vytvoření vysoké dostupnosti (HA) pro SAP HANA. Na virtuálních počítačích Azure je replikace systému HANA v Azure aktuálně jedinou podporovanou funkcí vysoké dostupnosti.

Replikace SAP HANA se skládá z jednoho primárního uzlu a nejméně jednoho sekundárního uzlu. Změny dat v primárním uzlu se replikují do sekundárního uzlu synchronně nebo asynchronně.

Tento článek popisuje, jak nasadit a nakonfigurovat virtuální počítače, nainstalovat architekturu clusteru a nainstalovat a nakonfigurovat replikaci systému SAP HANA.

V ukázkových konfiguracích se používají instalační příkazy, číslo instance 03 a ID systému HANA HN1 .

Požadavky

Nejprve si přečtěte následující poznámky a dokumenty SAP:

Přehled

K dosažení vysoké dostupnosti se SAP HANA nainstaluje na dva virtuální počítače. Data se replikují pomocí systémové replikace HANA.

Diagram znázorňující přehled vysoké dostupnosti SAP HANA

Nastavení replikace systému SAP HANA používá vyhrazený název virtuálního hostitele a virtuální IP adresy. V Azure se k použití virtuální IP adresy vyžaduje nástroj pro vyrovnávání zatížení. Zobrazená konfigurace ukazuje nástroj pro vyrovnávání zatížení s:

  • Front-endová IP adresa: 10.0.0.13 pro hn1-db
  • Port sondy: 62503

Příprava infrastruktury

Azure Marketplace obsahuje image kvalifikované pro SAP HANA s doplňkem Pro vysokou dostupnost, který můžete použít k nasazení nových virtuálních počítačů pomocí různých verzí Red Hatu.

Ruční nasazení virtuálních počítačů s Linuxem prostřednictvím webu Azure Portal

Tento dokument předpokládá, že jste už nasadili skupinu prostředků, virtuální síť Azure a podsíť.

Nasazení virtuálních počítačů pro SAP HANA Zvolte vhodný obrázek RHEL, který je podporovaný pro systém HANA. Virtuální počítač můžete nasadit v libovolné z možností dostupnosti: škálovací sada virtuálních počítačů, zóna dostupnosti nebo skupina dostupnosti.

Důležité

Ujistěte se, že vybraný operační systém má certifikaci SAP pro SAP HANA na konkrétních typech virtuálních počítačů, které plánujete použít ve svém nasazení. V platformách SAP HANA Certified IaaS můžete vyhledat typy virtuálních počítačů certifikovaných pro SAP HANA a jejich vydání operačního systému. Ujistěte se, že se podíváte na podrobnosti o typu virtuálního počítače, abyste získali úplný seznam vydaných verzí operačního systému podporovaných SAP HANA pro konkrétní typ virtuálního počítače.

Konfigurace nástroje pro vyrovnávání zatížení Azure

Během konfigurace virtuálního počítače máte možnost vytvořit nebo vybrat ukončení nástroje pro vyrovnávání zatížení v části Sítě. Pokud chcete nastavit standardní nástroj pro vyrovnávání zatížení pro nastavení databáze HANA s vysokou dostupností, postupujte podle následujících kroků.

Postupujte podle kroků v tématu Vytvoření nástroje pro vyrovnávání zatížení a nastavte standardní nástroj pro vyrovnávání zatížení pro systém SAP s vysokou dostupností pomocí webu Azure Portal. Při nastavování nástroje pro vyrovnávání zatížení zvažte následující body:

  1. Konfigurace front-endové IP adresy: Vytvořte front-endovou IP adresu. Vyberte stejnou virtuální síť a název podsítě jako vaše databázové virtuální počítače.
  2. Back-endový fond: Vytvořte back-endový fond a přidejte databázové virtuální počítače.
  3. Příchozí pravidla: Vytvořte pravidlo vyrovnávání zatížení. U obou pravidel vyrovnávání zatížení postupujte stejně.
    • IP adresa front-endu: Vyberte front-endovou IP adresu.
    • Back-endový fond: Vyberte back-endový fond.
    • Porty s vysokou dostupností: Tuto možnost vyberte.
    • Protokol: Vyberte TCP.
    • Sonda stavu: Vytvořte sondu stavu s následujícími podrobnostmi:
      • Protokol: Vyberte TCP.
      • Port: Například 625<instance-no.>.
      • Interval: Zadejte 5.
      • Prahová hodnota sondy: Zadejte 2.
    • Časový limit nečinnosti (minuty):Zadejte 30.
    • Povolit plovoucí IP adresu: Vyberte tuto možnost.

Poznámka:

Vlastnost numberOfProbeskonfigurace sondy stavu , jinak označovaná jako prahová hodnota není v pořádku na portálu, se nerespektuje. Chcete-li řídit počet úspěšných nebo neúspěšných po sobě jdoucích sond, nastavte vlastnost probeThreshold na 2hodnotu . V současné době není možné tuto vlastnost nastavit pomocí webu Azure Portal, takže použijte buď Azure CLI, nebo příkaz PowerShellu.

Další informace o požadovaných 2388694 portch

Poznámka:

Pokud jsou virtuální počítače bez veřejných IP adres umístěny do back-endového fondu interní instance (bez veřejné IP adresy) služby Azure Load Balancer úrovně Standard, neexistuje odchozí připojení k internetu, pokud se neprovádí další konfigurace umožňující směrování do veřejných koncových bodů. Další informace o tom, jak dosáhnout odchozího připojení, najdete v tématu Připojení k veřejnému koncovému bodu pro virtuální počítače využívající Azure Standard Load Balancer ve scénářích s vysokou dostupností SAP.

Důležité

Nepovolujte časové razítka PROTOKOLU TCP na virtuálních počítačích Azure umístěných za Azure Load Balancerem. Povolení časových razítek PROTOKOLU TCP může způsobit selhání sond stavu. Nastavte parametr net.ipv4.tcp_timestamps na 0. Další informace najdete v tématu Sondy stavu Load Balanceru a 2382421 SAP Note.

Instalace SAP HANA

Kroky v této části používají následující předpony:

  • [A]: Tento krok platí pro všechny uzly.
  • [1]: Krok se vztahuje pouze na uzel 1.
  • [2]: Krok se vztahuje pouze na uzel 2 clusteru Pacemaker.
  1. [A] Nastavení rozložení disku: Správce logických svazků (LVM)

    Doporučujeme použít LVM pro svazky, které ukládají data a soubory protokolů. Následující příklad předpokládá, že virtuální počítače mají připojené čtyři datové disky, které se používají k vytvoření dvou svazků.

    Výpis všech dostupných disků:

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

    Příklad výstupu:

    /dev/disk/azure/scsi1/lun0  /dev/disk/azure/scsi1/lun1  /dev/disk/azure/scsi1/lun2  /dev/disk/azure/scsi1/lun3
    

    Vytvořte fyzické svazky pro všechny disky, které chcete použít:

    sudo pvcreate /dev/disk/azure/scsi1/lun0
    sudo pvcreate /dev/disk/azure/scsi1/lun1
    sudo pvcreate /dev/disk/azure/scsi1/lun2
    sudo pvcreate /dev/disk/azure/scsi1/lun3
    

    Vytvořte skupinu svazků pro datové soubory. Pro soubory protokolu použijte jednu skupinu svazků a jednu pro sdílený adresář 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
    sudo vgcreate vg_hana_shared_HN1 /dev/disk/azure/scsi1/lun3
    

    Vytvořte logické svazky. Lineární svazek se vytvoří, když použijete lvcreate bez -i přepínače. Doporučujeme vytvořit pruhovaný svazek pro lepší výkon vstupně-výstupních operací. Zarovnejte velikosti pruhů s hodnotami zdokumentovanými v konfiguracích úložiště virtuálních počítačů SAP HANA. Argumentem -i by měl být počet základních fyzických svazků a -I argumentem je velikost pruhu.

    V tomto dokumentu se pro datový svazek používají dva fyzické svazky, takže -i je argument přepínače nastavený na hodnotu 2. Velikost pruhu datového svazku je 256KiB. Jeden fyzický svazek se používá pro svazek protokolu, takže pro příkazy svazku protokolu se explicitně nepoužívají žádné -i nebo -I přepínače.

    Důležité

    -i Přepínač použijte a nastavte ho na počet podkladových fyzických svazků, pokud pro každou data, protokol nebo sdílené svazky použijete více než jeden fyzický svazek. -I Pomocí přepínače určete velikost pruhu při vytváření prokládání svazku. Doporučené konfigurace úložiště, včetně velikostí prokládání a počtu disků, najdete v tématu Konfigurace úložiště virtuálního počítače SAP HANA. Následující příklady rozložení nemusí nutně splňovat pokyny k výkonu pro konkrétní velikost systému. Jsou určené jenom pro ilustraci.

    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 lvcreate -l 100%FREE -n hana_shared vg_hana_shared_HN1
    sudo mkfs.xfs /dev/vg_hana_data_HN1/hana_data
    sudo mkfs.xfs /dev/vg_hana_log_HN1/hana_log
    sudo mkfs.xfs /dev/vg_hana_shared_HN1/hana_shared
    

    Nenamontujte adresáře tak, že vydáte příkazy pro připojení. Místo toho zadejte do konfigurace fstab a zadejte konečnou mount -a verzi, abyste ověřili syntaxi. Začněte vytvořením adresářů připojení pro každý svazek:

    sudo mkdir -p /hana/data
    sudo mkdir -p /hana/log
    sudo mkdir -p /hana/shared
    

    Dále vytvořte fstab položky pro tři logické svazky vložením následujících řádků do /etc/fstab souboru:

    /dev/mapper/vg_hana_data_HN1-hana_data /hana/data xfs defaults,nofail 0 2 /dev/mapper/vg_hana_log_HN1-hana_log /hana/log xfs defaults,nofail 0 2 /dev/mapper/vg_hana_shared_HN1-hana_shared /hana/shared xfs defaults,nofail 0 2

    Nakonec připojte nové svazky najednou:

    sudo mount -a
    
  2. [A] Nastavte překlad názvů hostitelů pro všechny hostitele.

    Můžete použít server DNS nebo upravit /etc/hosts soubor na všech uzlech vytvořením položek pro všechny uzly takto /etc/hosts:

    10.0.0.5 hn1-db-0 10.0.0.6 hn1-db-1

  3. [A] Proveďte RHEL pro konfiguraci HANA.

    Nakonfigurujte RHEL, jak je popsáno v následujících poznámkách:

  4. [A] Nainstalujte SAP HANA podle dokumentace k SAP.

  5. [A] Nakonfigurujte bránu firewall.

    Vytvořte pravidlo brány firewall pro port sondy Azure Load Balanceru.

    sudo firewall-cmd --zone=public --add-port=62503/tcp
    sudo firewall-cmd --zone=public --add-port=62503/tcp --permanent
    

Konfigurace systémové replikace SAP HANA 2.0

Kroky v této části používají následující předpony:

  • [A]: Tento krok platí pro všechny uzly.
  • [1]: Krok se vztahuje pouze na uzel 1.
  • [2]: Krok se vztahuje pouze na uzel 2 clusteru Pacemaker.
  1. [A] Nakonfigurujte bránu firewall.

    Vytvořte pravidla brány firewall, která povolí replikaci systému HANA a klientský provoz. Požadované porty jsou uvedené na portech TCP/IP všech produktů SAP. Následující příkazy jsou jen příkladem, jak povolit replikaci systému HANA 2.0 a klientský provoz do databáze SYSTEMDB, HN1 a NW1.

     sudo firewall-cmd --zone=public --add-port={40302,40301,40307,40303,40340,30340,30341,30342}/tcp --permanent
     sudo firewall-cmd --zone=public --add-port={40302,40301,40307,40303,40340,30340,30341,30342}/tcp
    
    
  2. [1] Vytvořte databázi tenanta.

    Spusťte následující příkaz jako <hanasid>adm:

    hdbsql -u SYSTEM -p "[passwd]" -i 03 -d SYSTEMDB 'CREATE DATABASE NW1 SYSTEM USER PASSWORD "<passwd>"'
    
  3. [1] Nakonfigurujte replikaci systému na prvním uzlu.

    Zálohujte databáze jako <adm hanasid>:

    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')"
    hdbsql -d NW1 -u SYSTEM -p "<passwd>" -i 03 "BACKUP DATA USING FILE ('initialbackupNW1')"
    

    Zkopírujte systémové soubory PKI do sekundární lokality:

    scp /usr/sap/HN1/SYS/global/security/rsecssfs/data/SSFS_HN1.DAT   hn1-db-1:/usr/sap/HN1/SYS/global/security/rsecssfs/data/
    scp /usr/sap/HN1/SYS/global/security/rsecssfs/key/SSFS_HN1.KEY  hn1-db-1:/usr/sap/HN1/SYS/global/security/rsecssfs/key/
    

    Vytvořte primární lokalitu:

    hdbnsutil -sr_enable --name=SITE1
    
  4. [2] Nakonfigurujte replikaci systému na druhém uzlu.

    Zaregistrujte druhý uzel a spusťte replikaci systému. Spusťte následující příkaz jako <hanasid>adm:

    sapcontrol -nr 03 -function StopWait 600 10
    hdbnsutil -sr_register --remoteHost=hn1-db-0 --remoteInstance=03 --replicationMode=sync --name=SITE2
    
  5. [2] Spusťte HANA.

    Spuštěním následujícího příkazu jako <hanasid>adm spusťte HANA:

    sapcontrol -nr 03 -function StartSystem
    
  6. [1] Zkontrolujte stav replikace.

    Zkontrolujte stav replikace a počkejte na synchronizaci všech databází. Pokud stav zůstane NEZNÁMÝ, zkontrolujte nastavení brány firewall.

    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 |
    # | -------- | -------- | ----- | ------------ | --------- | ------- | --------- | --------- | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
    # | SYSTEMDB | hn1-db-0 | 30301 | nameserver   |         1 |       1 | SITE1     | hn1-db-1  |     30301 |         2 | SITE2     | YES           | SYNC        | ACTIVE      |                |
    # | HN1      | hn1-db-0 | 30307 | xsengine     |         2 |       1 | SITE1     | hn1-db-1  |     30307 |         2 | SITE2     | YES           | SYNC        | ACTIVE      |                |
    # | NW1      | hn1-db-0 | 30340 | indexserver  |         2 |       1 | SITE1     | hn1-db-1  |     30340 |         2 | SITE2     | YES           | SYNC        | ACTIVE      |                |
    # | HN1      | hn1-db-0 | 30303 | indexserver  |         3 |       1 | SITE1     | hn1-db-1  |     30303 |         2 | SITE2     | 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: SITE1
    

Vytvoření clusteru Pacemaker

Postupujte podle kroků v nastavení Pacemakeru v Red Hat Enterprise Linuxu v Azure a vytvořte základní cluster Pacemaker pro tento server HANA.

Důležité

Se systémem založeným na platformě SAP Startup Framework je teď možné spravovat instance SAP HANA systémem. Minimální požadovaná verze Red Hat Enterprise Linuxu (RHEL) je RHEL 8 pro SAP. Jak je uvedeno v sap Note 3189534, všechny nové instalace SAP HANA SPS07 revize 70 nebo vyšší nebo aktualizace systémů HANA na HANA 2.0 SPS07 revize 70 nebo vyšší, architektura SAP Startup se automaticky zaregistruje se systémem.

Pokud ke správě replikace systému SAP HANA používáte řešení pro zajištění vysoké dostupnosti v kombinaci s instancemi SAP HANA s povoleným systémem (viz SAP Note 3189534), jsou potřeba další kroky k zajištění toho, aby cluster s vysokou dostupností mohl spravovat instanci SAP bez zásahu systému. Takže pro systém SAP HANA integrovaný se systémem, další kroky popsané v nástroji Red Hat KBA 7029705 musí následovat na všech uzlech clusteru.

Implementace háků replikace systému SAP HANA

Tento důležitý krok optimalizuje integraci s clusterem a zlepšuje detekci v případě potřeby převzetí služeb při selhání clusteru. Pro správnou operaci clusteru je povinné povolit háček SAPHanaSR. Důrazně doporučujeme nakonfigurovat háky PYTHONu SAPHanaSR i ChkSrv.

  1. [A] Nainstalujte agenty prostředků SAP HANA na všechny uzly. Nezapomeňte povolit úložiště, které obsahuje balíček. Pokud používáte image s podporou vysoké dostupnosti RHEL 8.x nebo novější, nemusíte povolovat další úložiště.

    # Enable repository that contains SAP HANA resource agents
    sudo subscription-manager repos --enable="rhel-sap-hana-for-rhel-7-server-rpms"
    
    sudo dnf install -y resource-agents-sap-hana
    

    Poznámka:

    V případě RHEL 8.x a RHEL 9.x ověřte, jestli je nainstalovaný balíček resource-agents-sap-hana verze 0.162.3-5 nebo novější.

  2. [A] Nainstalujte HANA system replication hooks. Konfigurace pro připojení replikace musí být nainstalovaná na obou uzlech DATABÁZE HANA.

    1. Zastavte HANA na obou uzlech. Spustit jako <sid>adm.

      sapcontrol -nr 03 -function StopSystem
      
    2. Upravte global.ini ho na každém uzlu clusteru.

      [ha_dr_provider_SAPHanaSR]
      provider = SAPHanaSR
      path = /usr/share/SAPHanaSR/srHook
      execution_order = 1
      
      [ha_dr_provider_chksrv]
      provider = ChkSrv
      path = /usr/share/SAPHanaSR/srHook
      execution_order = 2
      action_on_lost = kill
      
      [trace]
      ha_dr_saphanasr = info
      ha_dr_chksrv = info
      

    Pokud odkazujete na výchozí path /usr/share/SAPHanaSR/srHook umístění, kód háku Pythonu se automaticky aktualizuje prostřednictvím aktualizací operačního systému nebo aktualizací balíčků. HANA při příštím restartování používá aktualizace kódu hooku. S volitelnou vlastní cestou, jako /hana/shared/myHooksje , můžete oddělit aktualizace operačního systému od verze háku, kterou bude HANA používat.

    Chování ChkSrv háku můžete upravit pomocí parametru action_on_lost . Platné hodnoty jsou [ ignore | | stopkill ].

  3. [A] Cluster vyžaduje sudoers konfiguraci na každém uzlu clusteru pro <sid>adm. V tomto příkladu toho dosáhnete vytvořením nového souboru. visudo Pomocí příkazu upravte soubor v rozevíracím 20-saphana seznamu jako root.

    sudo visudo -f /etc/sudoers.d/20-saphana
    

    Vložte následující řádky a pak uložte:

    Cmnd_Alias SITE1_SOK   = /usr/sbin/crm_attribute -n hana_hn1_site_srHook_SITE1 -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SITE1_SFAIL = /usr/sbin/crm_attribute -n hana_hn1_site_srHook_SITE1 -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias SITE2_SOK   = /usr/sbin/crm_attribute -n hana_hn1_site_srHook_SITE2 -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SITE2_SFAIL = /usr/sbin/crm_attribute -n hana_hn1_site_srHook_SITE2 -v SFAIL -t crm_config -s SAPHanaSR
    hn1adm ALL=(ALL) NOPASSWD: SITE1_SOK, SITE1_SFAIL, SITE2_SOK, SITE2_SFAIL
    Defaults!SITE1_SOK, SITE1_SFAIL, SITE2_SOK, SITE2_SFAIL !requiretty
    
  4. [A] Spusťte SAP HANA na obou uzlech. Spustit jako <sid>adm.

    sapcontrol -nr 03 -function StartSystem 
    
  5. [1] Ověřte instalaci háku SRHanaSR. Spustit jako <sid>adm v aktivní lokalitě replikace systému HANA.

     cdtrace
     awk '/ha_dr_SAPHanaSR.*crm_attribute/ \
     { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*
    
     # 2021-04-12 21:36:16.911343 ha_dr_SAPHanaSR SFAIL
     # 2021-04-12 21:36:29.147808 ha_dr_SAPHanaSR SFAIL
     # 2021-04-12 21:37:04.898680 ha_dr_SAPHanaSR SOK
    
  6. [1] Ověřte instalaci háku ChkSrv. Spustit jako <sid>adm v aktivní lokalitě replikace systému HANA.

     cdtrace
     tail -20 nameserver_chksrv.trc
    

Další informace o implementaci háků SAP HANA najdete v tématu Povolení háku SAP HANA srConnectionChanged() a povolení háku SAP HANA srServiceStateChanged() pro akci selhání procesu hdbindexserveru (volitelné).

Vytvoření prostředků clusteru SAP HANA

Vytvořte topologii HANA. Na jednom z uzlů clusteru Pacemaker spusťte následující příkazy. V těchto pokynech nezapomeňte v případě potřeby nahradit vaše číslo instance, ID systému HANA, IP adresy a systémové názvy.

sudo pcs property set maintenance-mode=true

sudo pcs resource create SAPHanaTopology_HN1_03 SAPHanaTopology SID=HN1 InstanceNumber=03 \
op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600 \
clone clone-max=2 clone-node-max=1 interleave=true

Dále vytvořte prostředky HANA.

Poznámka:

Tento článek obsahuje odkazy na termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.

Pokud vytváříte cluster na RHEL 7.x, použijte následující příkazy:

sudo pcs resource create SAPHana_HN1_03 SAPHana SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
  op start timeout=3600 op stop timeout=3600 \
  op monitor interval=61 role="Slave" timeout=700 \
  op monitor interval=59 role="Master" timeout=700 \
  op promote timeout=3600 op demote timeout=3600 \
  master notify=true clone-max=2 clone-node-max=1 interleave=true

sudo pcs resource create vip_HN1_03 IPaddr2 ip="10.0.0.13"
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

sudo pcs constraint order SAPHanaTopology_HN1_03-clone then SAPHana_HN1_03-master symmetrical=false
sudo pcs constraint colocation add g_ip_HN1_03 with master SAPHana_HN1_03-master 4000

sudo pcs resource defaults resource-stickiness=1000
sudo pcs resource defaults migration-threshold=5000

sudo pcs property set maintenance-mode=false

Pokud vytváříte cluster na RHEL 8.x/9.x, použijte následující příkazy:

sudo pcs resource create SAPHana_HN1_03 SAPHana SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
  op start timeout=3600 op stop timeout=3600 \
  op monitor interval=61 role="Slave" timeout=700 \
  op monitor interval=59 role="Master" timeout=700 \
  op promote timeout=3600 op demote timeout=3600 \
  promotable notify=true clone-max=2 clone-node-max=1 interleave=true

sudo pcs resource create vip_HN1_03 IPaddr2 ip="10.0.0.13"
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

sudo pcs constraint order SAPHanaTopology_HN1_03-clone then SAPHana_HN1_03-clone symmetrical=false
sudo pcs constraint colocation add g_ip_HN1_03 with master SAPHana_HN1_03-clone 4000

sudo pcs resource defaults update resource-stickiness=1000
sudo pcs resource defaults update migration-threshold=5000

sudo pcs property set maintenance-mode=false

Pokud chcete nakonfigurovat priority-fencing-delay SAP HANA (platí jenom pro pacemaker-2.0.4-6.el8 nebo vyšší), je potřeba spustit následující příkazy.

Poznámka:

Pokud máte cluster se dvěma uzly, můžete nakonfigurovat vlastnost clusteru priority-fencing-delay . Tato vlastnost představuje zpoždění při dělení uzlu, který má vyšší celkovou prioritu zdroje, když dojde ke scénáři rozděleného mozku. Další informace najdete v tématu Může Pacemaker ohražovat uzel clusteru s nejmenšími spuštěnými prostředky?.

Vlastnost priority-fencing-delay se vztahuje na pacemaker-2.0.4-6.el8 verze nebo vyšší. Pokud nastavujete priority-fencing-delay na existujícím clusteru, nezapomeňte zrušit nastavení pcmk_delay_max možnosti v zařízení pro ohraničení.

sudo pcs property set maintenance-mode=true

sudo pcs resource defaults update priority=1
sudo pcs resource update SAPHana_HN1_03-clone meta priority=10

sudo pcs property set priority-fencing-delay=15s

sudo pcs property set maintenance-mode=false

Důležité

Při provádění testů převzetí služeb při selhání je vhodné nastavit AUTOMATED_REGISTER false, aby se primární instance, která selhala, automaticky zaregistrovala jako sekundární. Po otestování je jako osvědčený postup nastavený AUTOMATED_REGISTER tak true , aby po převzetí mohl replikace systému pokračovat automaticky.

Ujistěte se, že je stav clusteru v pořádku a že jsou spuštěné všechny prostředky. Na kterém uzlu jsou prostředky spuštěné, není důležité.

Poznámka:

Časové limity v předchozí konfiguraci jsou pouze příklady a může být potřeba je přizpůsobit konkrétnímu nastavení HANA. Pokud například spuštění databáze SAP HANA trvá déle, může být potřeba zvýšit časový limit spuštění.

Pomocí příkazu sudo pcs status zkontrolujte stav vytvořených prostředků clusteru:

# Online: [ hn1-db-0 hn1-db-1 ]
#
# Full list of resources:
#
# azure_fence     (stonith:fence_azure_arm):      Started hn1-db-0
#  Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
#      Started: [ hn1-db-0 hn1-db-1 ]
#  Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
#      Masters: [ hn1-db-0 ]
#      Slaves: [ hn1-db-1 ]
#  Resource Group: g_ip_HN1_03
#      nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-0
#      vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-0

Konfigurace replikace systému s podporou aktivní/čtení HANA v clusteru Pacemaker

Počínaje SAP HANA 2.0 SPS 01 umožňuje SAP nastavení pro replikaci systému SAP HANA s podporou aktivního a čtení, kde sekundární systémy replikace systému SAP HANA je možné aktivně používat pro úlohy náročné na čtení.

Aby bylo možné takové nastavení podporovat v clusteru, vyžaduje se druhá virtuální IP adresa, která klientům umožňuje přístup k sekundární databázi SAP HANA s podporou čtení. Aby se zajistilo, že sekundární replikační lokalita bude mít přístup i po převzetí, cluster musí přesunout virtuální IP adresu s sekundárním prostředkem SAPHana.

Tato část popisuje další kroky potřebné ke správě replikace systému s podporou aktivní/čtení HANA v clusteru s vysokou dostupností pro Red Hat s druhou virtuální IP adresou.

Než budete pokračovat, ujistěte se, že jste plně nakonfigurovali cluster Red Hat HA, který spravuje databázi SAP HANA, jak je popsáno v předchozích segmentech dokumentace.

Diagram znázorňující vysokou dostupnost SAP HANA se sekundární s povoleným čtením

Další nastavení v Azure Load Balanceru pro aktivní/čtení s povoleným nastavením

Pokud chcete pokračovat v dalších krocích zřizování druhé virtuální IP adresy, ujistěte se, že jste nakonfigurovali Azure Load Balancer, jak je popsáno v části Nasazení virtuálních počítačů s Linuxem ručně prostřednictvím webu Azure Portal .

  1. Pro nástroj pro vyrovnávání zatížení úrovně Standard postupujte podle těchto kroků na stejném nástroji pro vyrovnávání zatížení, který jste vytvořili v předchozí části.

    a. Vytvořte druhý front-endový fond IP adres:

    • Otevřete nástroj pro vyrovnávání zatížení, vyberte front-endový fond IP adres a vyberte Přidat.
    • Zadejte název druhého front-endového fondu IP adres (například hana-secondaryIP).
    • Nastavte přiřazení na Static a zadejte IP adresu (například 10.0.0.14).
    • Vyberte OK.
    • Po vytvoření nového front-endového fondu IP adres si poznamenejte IP adresu fondu.

    b. Vytvoření sondy stavu:

    • Otevřete nástroj pro vyrovnávání zatížení, vyberte sondy stavu a vyberte Přidat.
    • Zadejte název nové sondy stavu (například hana-secondaryhp).
    • Jako protokol a port 62603 vyberte tcp. Ponechte hodnotu Interval nastavenou na 5 a prahovou hodnotu není v pořádku nastavená na hodnotu 2.
    • Vyberte OK.

    c. Vytvořte pravidla vyrovnávání zatížení:

    • Otevřete nástroj pro vyrovnávání zatížení, vyberte pravidla vyrovnávání zatížení a vyberte Přidat.
    • Zadejte název nového pravidla nástroje pro vyrovnávání zatížení (například hana-secondarylb).
    • Vyberte front-endovou IP adresu, back-endový fond a sondu stavu, kterou jste vytvořili dříve (například hana-secondaryIP, hana-backend a hana-secondaryhp).
    • Vyberte porty vysoké dostupnosti.
    • Nezapomeňte povolit plovoucí IP adresu.
    • Vyberte OK.

Konfigurace replikace systému s podporou aktivní/čtení hana

Postup konfigurace systémové replikace HANA najdete v části Konfigurace systémové replikace SAP HANA 2.0. Pokud při konfiguraci replikace systému na druhém uzlu nasazujete sekundární scénář s podporou čtení, spusťte následující příkaz jako hanasidadm:

sapcontrol -nr 03 -function StopWait 600 10 

hdbnsutil -sr_register --remoteHost=hn1-db-0 --remoteInstance=03 --replicationMode=sync --name=SITE2 --operationMode=logreplay_readaccess 

Přidání sekundárního prostředku virtuální IP adresy pro nastavení s podporou aktivního nebo čtení

Druhou virtuální IP adresu a příslušné omezení kolokace je možné nakonfigurovat pomocí následujících příkazů:

pcs property set maintenance-mode=true

pcs resource create secvip_HN1_03 ocf:heartbeat:IPaddr2 ip="10.40.0.16"
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

pcs constraint location g_secip_HN1_03 rule score=INFINITY hana_hn1_sync_state eq SOK and hana_hn1_roles eq 4:S:master1:master:worker:master
pcs constraint location g_secip_HN1_03 rule score=4000 hana_hn1_sync_state eq PRIM and hana_hn1_roles eq 4:P:master1:master:worker:master

# Set the priority to primary IPaddr2 and azure-lb resource if priority-fencing-delay is configured
sudo pcs resource update vip_HN1_03 meta priority=5
sudo pcs resource update nc_HN1_03 meta priority=5

pcs property set maintenance-mode=false

Ujistěte se, že je stav clusteru v pořádku a že jsou spuštěné všechny prostředky. Druhá virtuální IP adresa běží v sekundární lokalitě spolu s sekundárním prostředkem SAPHana.

sudo pcs status

# Online: [ hn1-db-0 hn1-db-1 ]
#
# Full List of Resources:
#   rsc_hdb_azr_agt     (stonith:fence_azure_arm):      Started hn1-db-0
#   Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]:
#     Started: [ hn1-db-0 hn1-db-1 ]
#   Clone Set: SAPHana_HN1_03-clone [SAPHana_HN1_03] (promotable):
#     Masters: [ hn1-db-0 ]
#     Slaves: [ hn1-db-1 ]
#   Resource Group: g_ip_HN1_03:
#     nc_HN1_03         (ocf::heartbeat:azure-lb):      Started hn1-db-0
#     vip_HN1_03        (ocf::heartbeat:IPaddr2):       Started hn1-db-0
#   Resource Group: g_secip_HN1_03:
#     secnc_HN1_03      (ocf::heartbeat:azure-lb):      Started hn1-db-1
#     secvip_HN1_03     (ocf::heartbeat:IPaddr2):       Started hn1-db-1

V další části najdete typickou sadu testů převzetí služeb při selhání, které se mají spustit.

Při testování clusteru HANA s nakonfigurovaným sekundárním čtením mějte na paměti druhé chování virtuálníCH IP adres:

  1. Při migraci prostředku clusteru SAPHana_HN1_03 do sekundární lokality hn1-db-1 se druhá virtuální IP adresa bude dál spouštět ve stejné lokalitě hn1-db-1. Pokud jste nastavili AUTOMATED_REGISTER="true" replikaci prostředků a systému HANA se automaticky zaregistrují na serveru hn1-db-0, vaše druhá virtuální IP adresa se také přesune na hn1-db-0.

  2. Při testování chybového ukončení serveru běží na primárním serveru spolu s primárními prostředky virtuálníCH IP adres druhý virtuální IP prostředek (secvip_HN1_03) a prostředek portu Azure Load Balanceru (secnc_HN1_03). Takže až do doby, kdy je sekundární server mimo provoz, se aplikace připojené k databázi HANA s podporou čtení připojují k primární databázi HANA. Toto chování se očekává, protože nechcete, aby aplikace, které jsou připojené k databázi HANA s podporou čtení, byly nedostupné, dokud sekundární server není k dispozici.

  3. Během převzetí služeb při selhání a náhradní virtuální IP adresy může dojít k přerušení stávajících připojení k aplikacím, které používají druhou virtuální IP adresu pro připojení k databázi HANA.

Nastavení maximalizuje dobu, po kterou je druhý prostředek virtuální IP adresy přiřazený k uzlu, na kterém je spuštěná instance SAP HANA, která je v pořádku.

Otestování nastavení clusteru

Tato část popisuje, jak můžete otestovat nastavení. Než začnete testovat, ujistěte se, že Pacemaker nemá žádnou neúspěšnou akci (prostřednictvím stavu pcs), neexistují žádná neočekávaná omezení umístění (například zbývající přechody testu migrace) a že hana je například ve stavu synchronizace.systemReplicationStatus

sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"

Otestování migrace

Stav prostředku před zahájením testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-0 ]
    Slaves: [ hn1-db-1 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-0
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-0

Hlavní uzel SAP HANA můžete migrovat spuštěním následujícího příkazu jako kořenového adresáře:

# On RHEL 7.x
pcs resource move SAPHana_HN1_03-master
# On RHEL 8.x
pcs resource move SAPHana_HN1_03-clone --master

Cluster by migroval hlavní uzel SAP HANA a skupinu obsahující virtuální IP adresu do hn1-db-1.

Po dokončení sudo pcs status migrace bude výstup vypadat takto:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-1 ]
    Stopped: [ hn1-db-0 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-1
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-1

V AUTOMATED_REGISTER="false"případě, že cluster nerestartuje neúspěšnou databázi HANA nebo ji zaregistruje v nové primární databázi hn1-db-0. V tomto případě nakonfigurujte instanci HANA jako sekundární spuštěním těchto příkazů jako hn1adm:

sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=hn1-db-1 --remoteInstance=03 --replicationMode=sync --name=SITE1

Migrace vytvoří omezení umístění, která je potřeba odstranit znovu. Spusťte následující příkaz jako kořen nebo prostřednictvím sudo:

pcs resource clear SAPHana_HN1_03-master

Monitorování stavu prostředku HANA pomocí pcs status. Po spuštění hn1-db-0HANA by měl výstup vypadat takto:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-1 ]
    Slaves: [ hn1-db-0 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-1
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-1

Blokování síťové komunikace

Stav prostředku před zahájením testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-1 ]
    Slaves: [ hn1-db-0 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-1
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-1

Spuštěním pravidla brány firewall zablokujte komunikaci na jednom z uzlů.

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

Pokud uzly clusteru mezi sebou nemůžou komunikovat, existuje riziko rozděleného scénáře mozku. V takových situacích se uzly clusteru snaží vzájemně ohražovat, což vede k plotu. Pokud se chcete takové situaci vyhnout, doporučujeme nastavit vlastnost priority-fencing-delay v konfiguraci clusteru (platí pouze pro pacemaker-2.0.4-6.el8 nebo vyšší).

Když tuto vlastnost povolíte priority-fencing-delay , cluster zavádí zpoždění v akci ohraničení speciálně na uzlu, který je hostitelem hlavního prostředku HANA, což umožňuje uzlu vyhrát závod plotu.

Spuštěním následujícího příkazu odstraňte pravidlo brány firewall:

# If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command.
iptables -D INPUT -s 10.0.0.5 -j DROP; iptables -D OUTPUT -d 10.0.0.5 -j DROP

Otestování agenta ohraničení Azure

Poznámka:

Tento článek obsahuje odkazy na termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.

Stav prostředku před zahájením testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-1 ]
    Slaves: [ hn1-db-0 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-1
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-1

Nastavení agenta ohraničení Azure můžete otestovat zakázáním síťového rozhraní na uzlu, na kterém je SAP HANA spuštěný jako hlavní. Popis, jak simulovat selhání sítě, najdete v článku 79523 znalostní báze Red Hat Knowledge Base.

V tomto příkladu net_breaker pomocí skriptu jako kořenového adresáře zablokujeme veškerý přístup k síti:

sh ./net_breaker.sh BreakCommCmd 10.0.0.6

Virtuální počítač by se teď měl restartovat nebo zastavit v závislosti na konfiguraci clusteru. Pokud nastavíte stonith-action nastavení offna , virtuální počítač se zastaví a prostředky se migrují na spuštěný virtuální počítač.

Po opětovném spuštění virtuálního počítače se prostředek SAP HANA nepodaří spustit jako sekundární, pokud nastavíte AUTOMATED_REGISTER="false". V tomto případě nakonfigurujte instanci HANA jako sekundární spuštěním tohoto příkazu jako uživatele hn1adm :

sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=hn1-db-0 --remoteInstance=03 --replicationMode=sync --name=SITE2

Přepněte zpět do kořenového adresáře a vyčistíte stav selhání:

# On RHEL 7.x
pcs resource cleanup SAPHana_HN1_03-master
# On RHEL 8.x
pcs resource cleanup SAPHana_HN1_03 node=<hostname on which the resource needs to be cleaned>

Stav prostředku po testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-0 ]
    Slaves: [ hn1-db-1 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-0
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-0

Testování ručního převzetí služeb při selhání

Stav prostředku před zahájením testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-0 ]
    Slaves: [ hn1-db-1 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-0
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-0

Ruční převzetí služeb při selhání můžete otestovat zastavením clusteru hn1-db-0 na uzlu jako kořen:

pcs cluster stop

Po převzetí služeb při selhání můžete cluster spustit znovu. Pokud nastavíte AUTOMATED_REGISTER="false", prostředek SAP HANA na hn1-db-0 uzlu se nespustí jako sekundární. V tomto případě nakonfigurujte instanci HANA jako sekundární spuštěním tohoto příkazu jako kořenového adresáře:

pcs cluster start

Spusťte následující příkaz jako hn1adm:

sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=hn1-db-1 --remoteInstance=03 --replicationMode=sync --name=SITE1

Pak jako kořen:

# On RHEL 7.x
pcs resource cleanup SAPHana_HN1_03-master
# On RHEL 8.x
pcs resource cleanup SAPHana_HN1_03 node=<hostname on which the resource needs to be cleaned>

Stav prostředku po testu:

Clone Set: SAPHanaTopology_HN1_03-clone [SAPHanaTopology_HN1_03]
    Started: [ hn1-db-0 hn1-db-1 ]
Master/Slave Set: SAPHana_HN1_03-master [SAPHana_HN1_03]
    Masters: [ hn1-db-1 ]
     Slaves: [ hn1-db-0 ]
Resource Group: g_ip_HN1_03
    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hn1-db-1
    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hn1-db-1

Další kroky