Delen via


Hoge beschikbaarheid voor SAP HANA-uitschaalsysteem met HSR op SUSE Linux Enterprise Server

In dit artikel wordt beschreven hoe u een maximaal beschikbaar SAP HANA-systeem implementeert in een uitschaalconfiguratie met HANA-systeemreplicatie (HSR) en Pacemaker op virtuele machines van Azure SUSE Linux Enterprise Server (VM's). De gedeelde bestandssystemen in de gepresenteerde architectuur zijn gekoppeld aan NFS en worden geleverd door Azure NetApp Files of NFS-share in Azure Files.

In de voorbeeldconfiguraties, installatieopdrachten, enzovoort, is het HANA-exemplaar 03 en is de HANA-systeem-id HN1.

Raadpleeg de volgende SAP-notities en -documenten voordat u begint:

Overzicht

Eén methode voor het bereiken van hoge beschikbaarheid van HANA voor HANA-uitschaalinstallaties is het configureren van HANA-systeemreplicatie en het beveiligen van de oplossing met Pacemaker-cluster om automatische failover toe te staan. Wanneer een actief knooppunt mislukt, voert het cluster een failover uit van de HANA-resources naar de andere site.
De gepresenteerde configuratie toont drie HANA-knooppunten op elke site, plus het knooppunt van de meerderheidsmaker om split-brain-scenario te voorkomen. De instructies kunnen worden aangepast om meer VM's op te nemen als HANA-databaseknooppunten (DB).

In de gepresenteerde architectuur kunt u het gedeelde HANA-bestandssysteem /hana/shared implementeren met behulp van Azure NetApp Files of NFS-share in Azure Files. Elk HANA-knooppunt binnen dezelfde HANA-systeemreplicatiesite koppelt het gedeelde HANA-bestandssysteem via NFS. Bestandssystemen /hana/data en /hana/log zijn lokale bestandssystemen en worden niet gedeeld tussen de HANA DB-knooppunten. U installeert SAP HANA in de niet-gedeelde modus.

Zie opslagconfiguraties voor SAP HANA Azure-VM's voor aanbevolen SAP HANA-opslagconfiguraties.

Belangrijk

Als u alle HANA-bestandssystemen implementeert in Azure NetApp Files, voor productiesystemen, waarbij de prestaties een sleutel zijn, raden we u aan om Azure NetApp Files-toepassingsvolumegroep voor SAP HANA te evalueren en te gebruiken.

Waarschuwing

/hana/data en /hana/log op NFS op Azure Files implementeren wordt niet ondersteund.

SAP HANA uitbreiden met HSR en Pacemaker-cluster op SLES

In het voorgaande diagram worden drie subnetten weergegeven binnen één virtueel Azure-netwerk, volgens de aanbevelingen voor het SAP HANA-netwerk:

  • voor clientcommunicatie - client 10.23.0.0/24
  • voor interne communicatie tussen HANA-knooppunten - inter 10.23.1.128/26
  • voor HANA-systeemreplicatie - hsr 10.23.1.192/26

Aangezien /hana/data en /hana/log worden geïmplementeerd op lokale schijven, is het niet nodig om afzonderlijke subnetkaarten en afzonderlijke virtuele netwerkkaarten te implementeren voor communicatie met de opslag.

Als u Azure NetApp Files gebruikt, worden de NFS-volumes voor /hana/shared, geïmplementeerd in een afzonderlijk subnet, gedelegeerd aan Azure NetApp Files: anf 10.23.1.0/26.

De infrastructuur voorbereiden

In de volgende instructies wordt ervan uitgegaan dat u de resourcegroep en het virtuele Azure-netwerk al hebt gemaakt met drie subnetten: client, interen hsr.

Virtuele Linux-machines implementeren via Azure Portal

  1. Implementeer de Azure virtuele machines.

    Voor de configuratie die in dit document wordt weergegeven, implementeert u zeven virtuele machines:

    • drie virtuele machines die fungeren als HANA DB-knooppunten voor HANA-replicatiesite 1: hana-s1-db1, hana-s1-db2 en hana-s1-db3
    • drie virtuele machines die fungeren als HANA DB-knooppunten voor HANA-replicatiesite 2: hana-s2-db1, hana-s2-db2 en hana-s2-db3
    • een kleine virtuele machine die als meerderheidsmaker moet fungeren: hana-s-mm

Implementeer de VM's als SAP DB-knooppunten met VM-grootten die zijn gecertificeerd voor SAP HANA, zoals vermeld in door SAP HANA gecertificeerde IaaS-platforms. Zorg ervoor dat versneld netwerken is ingeschakeld bij het implementeren van de HANA DB-knooppunten.

Voor het meeste makerknooppunt kunt u een kleine VIRTUELE machine implementeren, omdat op deze VM geen SAP HANA-resources worden uitgevoerd. De meerderheidsmaker-VM wordt gebruikt in de clusterconfiguratie voor een oneven aantal clusterknooppunten in een split-brain-scenario. De meeste maker-VM's hebben slechts één virtuele netwerkinterface nodig in het client subnet in dit voorbeeld.

Lokale beheerde schijven implementeren voor /hana/data en /hana/log. De minimaal aanbevolen opslagconfiguratie voor /hana/data en /hana/log wordt beschreven in opslagconfiguraties van SAP HANA Azure-VM's.

Implementeer de primaire netwerkinterface voor elke VIRTUELE machine in het subnet van het client virtuele netwerk.
Wanneer de VM wordt geïmplementeerd via Azure Portal, wordt de naam van de netwerkinterface automatisch gegenereerd. In deze instructies voor het gemak verwijzen we naar de automatisch gegenereerde primaire netwerkinterfaces die zijn gekoppeld aan het subnet van het client virtuele Azure-netwerk als hana-s1-db1-client, hana-s1-db2-client, hana-s1-db3-client, enzovoort.

Belangrijk

  • Zorg ervoor dat het besturingssysteem dat u selecteert SAP-gecertificeerd is voor SAP HANA op de specifieke VM-typen die u gebruikt. Voor een lijst met door SAP HANA gecertificeerde VM-typen en besturingssysteemreleases voor deze typen gaat u naar de site met gecertificeerde IaaS-platformen van SAP HANA. Klik op de details van het vermelde VM-type om de volledige lijst met door SAP HANA ondersteunde besturingssysteemreleases voor dat type op te halen.
  • Als u ervoor kiest om /hana/shared op NFS in Azure Files te implementeren, raden we u aan dit te doen op SUSE Linux Enterprise Server (SLES) 15 SP2 en hoger.
  1. Maak zes netwerkinterfaces, één voor elke virtuele HANA DB-machine, in het subnet van het inter virtuele netwerk (in dit voorbeeld hana-s1-db1-inter, hana-s1-db2-inter, hana-s1-db3-inter, hana-s2-db1-inter, hana-s2-db2-inter en hana-s2-db3-inter).

  2. Maak zes netwerkinterfaces, één voor elke virtuele HANA DB-machine, in het subnet van het virtuele netwerk (in dit voorbeeld hsr, hana-s1-db2-hsr, hana-s1-db3-hsr, hana-s2-db1-hsr, hana-s2-hsr en hana-s2-db3-hsr).

  3. Koppel de zojuist gemaakte virtuele netwerkinterfaces aan de bijbehorende virtuele machines:

    1. Ga naar de virtuele machine in Azure Portal.
    2. Selecteer Virtuele machines in het linkerdeelvenster. Filter op de naam van de virtuele machine (bijvoorbeeld hana-s1-db1) en selecteer vervolgens de virtuele machine.
    3. Selecteer In het deelvenster Overzicht de optie Stoppen om de toewijzing van de virtuele machine ongedaan te maken.
    4. Selecteer Netwerken en koppel vervolgens de netwerkinterface. Selecteer in de vervolgkeuzelijst 'Netwerkinterface koppelen' de reeds gemaakte netwerkinterfaces voor de inter en hsr subnetten.
    5. Selecteer Opslaan.
    6. Herhaal stap b tot en met e voor de resterende virtuele machines (in ons voorbeeld hana-s1-db2, hana-s1-db3, hana-s2-db1, hana-s2-db2 en hana-s2-db3).
    7. Laat de virtuele machines voorlopig in de gestopte toestand. Vervolgens schakelen we versneld netwerk in voor alle nieuw gekoppelde netwerkinterfaces.
  4. Schakel versneld netwerken in voor de extra netwerkinterfaces voor de inter en hsr subnetten door de volgende stappen uit te voeren:

    1. Open Azure Cloud Shell in het Azure-portaal.

    2. Voer de volgende opdrachten uit om versneld netwerken in te schakelen voor de extra netwerkinterfaces die zijn gekoppeld aan de inter en hsr subnetten.

      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
      

      Notitie

      U hoeft het Azure CLI-pakket niet te installeren op uw HANA-knooppunten om de opdracht uit te voeren az . U kunt deze uitvoeren vanaf elke computer waarop de CLI is geïnstalleerd of Azure Cloud Shell gebruiken.

  5. De virtuele HANA DB-machines starten

Azure Load Balancer configureren

Tijdens de VM-configuratie hebt u de mogelijkheid om een load balancer te maken of een bestaande te selecteren in de netwerksectie. Volg de onderstaande stappen om een standard load balancer in te stellen voor het instellen van hoge beschikbaarheid van de HANA-database.

Notitie

  • Voor uitschalen van HANA selecteert u de netwerkinterface voor het client subnet bij het toevoegen van de virtuele machines in de back-endpool.
  • De volledige set opdrachten in Azure CLI en PowerShell voegt de VM's toe die een primaire netwerkinterface hebben in de back-endpool.

Volg de stappen in Load Balancer maken om een standaard load balancer in te stellen voor een SAP-systeem met hoge beschikbaarheid met behulp van Azure Portal. Houd rekening met de volgende punten tijdens de installatie van de load balancer:

  1. Front-end-IP-configuratie: maak een front-end-IP-adres. Selecteer dezelfde virtuele netwerk- en subnetnaam als uw virtuele databasemachines.
  2. Back-endpool: maak een back-endpool en voeg database-VM's toe.
  3. Regels voor inkomend verkeer: maak een taakverdelingsregel. Volg dezelfde stappen voor beide taakverdelingsregels.
    • Front-end-IP-adres: Selecteer een front-end-IP-adres.
    • Back-endpool: Selecteer een back-endpool.
    • Poorten voor hoge beschikbaarheid: selecteer deze optie.
    • Protocol: Selecteer TCP.
    • Statustest: maak een statustest met de volgende details:
      • Protocol: Selecteer TCP.
      • Poort: bijvoorbeeld 625<instantie-nr.>.
      • Interval: Voer 5 in.
      • Testdrempel: voer 2 in.
    • Time-out voor inactiviteit (minuten): Voer 30 in .
    • Zwevend IP-adres inschakelen: selecteer deze optie.

Notitie

De configuratie-eigenschap numberOfProbes van de statustest, ook wel bekend als de ongeschikte drempelwaarde in de portal, wordt niet gerespecteerd. Als u het aantal geslaagde of mislukte opeenvolgende tests wilt bepalen, stelt u de eigenschap probeThreshold in op 2. Het is momenteel niet mogelijk om deze eigenschap in te stellen met behulp van Azure Portal, dus gebruik de Azure CLI of de PowerShell-opdracht.

Notitie

Wanneer VM's zonder openbare IP-adressen worden geplaatst in de back-endpool van een interne (geen openbaar IP-adres) Standard Azure Load Balancer, is er geen uitgaande internetverbinding, tenzij er aanvullende configuratie wordt uitgevoerd om routering naar openbare eindpunten mogelijk te maken. Zie Openbare eindpuntconnectiviteit voor virtuele machines met behulp van Azure Standard Load Balancer in SAP-scenario's met hoge beschikbaarheid voor meer informatie over het configureren van uitgaande connectiviteit.

Belangrijk

  • Schakel TCP-tijdstempels niet in op Azure-VM's die achter Azure Load Balancer worden geplaatst. Als u TCP-tijdstempels inschakelt, mislukken de gezondheidsonderzoeken. Stel parameter net.ipv4.tcp_timestamps op 0. Zie Statustests van Load Balancer en SAP-notitie 2382421 voor meer informatie.
  • Werk saptune bij naar versie 3.1.1 of hoger om te voorkomen dat saptune de handmatig ingestelde net.ipv4.tcp_timestamps-waarde wijzigt van 0 naar 1. Zie saptune 3.1.1 – Moet ik bijwerken? voor meer informatie.

NFS implementeren

Er zijn twee opties voor het implementeren van systeemeigen Azure NFS voor /hana/shared. U kunt een NFS-volume implementeren op Azure NetApp Files of een NFS-deling in Azure Files. Azure-bestanden ondersteunen het NFSv4.1-protocol, NFS op Azure NetApp-bestanden ondersteunt zowel NFSv4.1 als NFSv3.

In de volgende secties worden de stappen beschreven voor het implementeren van NFS. U moet slechts één van de opties selecteren.

Aanbeveling

U hebt ervoor gekozen om /hana/shared uit te rollen op de NFS-share op Azure Files of op de NFS-volume op Azure NetApp Files.

De Azure NetApp Files-infrastructuur implementeren

Implementeer Azure NetApp Files-volumes voor het /hana/shared bestandssysteem. U hebt een afzonderlijk /hana/shared volume nodig voor elke HANA-systeemreplicatiesite. Zie De Azure NetApp Files-infrastructuur instellen voor meer informatie.

In dit voorbeeld zijn de volgende Azure NetApp Files-volumes gebruikt:

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

De NFS implementeren in de Infrastructuur van Azure Files

Azure Files NFS-shares implementeren voor het /hana/shared bestandssysteem. U hebt een afzonderlijke /hana/shared Azure Files NFS-share nodig voor elke HANA-systeemreplicatiesite. Zie Een NFS-share maken voor meer informatie.

In dit voorbeeld zijn de volgende Azure Files NFS-shares gebruikt:

  • delen hn1-shared-s1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
  • delen hn1-shared-s2 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2)

Configuratie en voorbereiding van het besturingssysteem

De instructies in de volgende secties worden voorafgegaan door een van de volgende afkortingen:

  • [A]: Van toepassing op alle knooppunten, inclusief meerderheidsvormer
  • [AH]: van toepassing op alle HANA DB-knooppunten
  • [M]: Alleen van toepassing op het knooppunt van de meerderheidsmaker
  • [AH1]: Van toepassing op alle HANA DB-knooppunten op SITE 1
  • [AH2]: Van toepassing op alle HANA DB-knooppunten op SITE 2
  • [1]: Alleen van toepassing op HANA DB-knooppunt 1, SITE 1
  • [2]: Alleen van toepassing op HANA DB-knooppunt 1, SITE 2

Configureer en bereid uw besturingssysteem voor door de volgende stappen uit te voeren:

  1. [A] Onderhoud de hostbestanden op de virtuele machines. Vermeldingen opnemen voor alle subnetten. De volgende vermeldingen zijn toegevoegd aan /etc/hosts dit voorbeeld.

    # Client subnet
    10.23.0.19      hana-s1-db1
    10.23.0.20      hana-s1-db2
    10.23.0.21      hana-s1-db3
    10.23.0.22      hana-s2-db1
    10.23.0.23      hana-s2-db2
    10.23.0.24      hana-s2-db3
    10.23.0.25      hana-s-mm    
    
    # Internode subnet
    10.23.1.132     hana-s1-db1-inter
    10.23.1.133     hana-s1-db2-inter
    10.23.1.134     hana-s1-db3-inter
    10.23.1.135     hana-s2-db1-inter
    10.23.1.136     hana-s2-db2-inter
    10.23.1.137     hana-s2-db3-inter
    
    # HSR subnet
    10.23.1.196     hana-s1-db1-hsr
    10.23.1.197     hana-s1-db2-hsr
    10.23.1.198     hana-s1-db3-hsr
    10.23.1.199     hana-s2-db1-hsr
    10.23.1.200     hana-s2-db2-hsr
    10.23.1.201     hana-s2-db3-hsr
    
  2. [A] Maak configuratiebestand /etc/sysctl.d/ms-az.conf met Microsoft voor Azure-configuratie-instellingen.

    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
    

    Aanbeveling

    Vermijd het instellen van net.ipv4.ip_local_port_range en net.ipv4.ip_local_reserved_ports expliciet in de sysctl-configuratiebestanden, zodat SAP Host Agent de poortbereiken kan beheren. Zie SAP-notitie 2382421 voor meer informatie.

  3. [AH] Bereid de VM's voor: pas de aanbevolen instellingen toe per SAP-notitie 2205917 voor SUSE Linux Enterprise Server voor SAP-toepassingen.

De bestandssystemen voorbereiden

U hebt ervoor gekozen om de gedeelde SAP-mappen te implementeren op NFS-share op Azure Files of NFS-volume op Azure NetApp Files.

Monteer de gedeelde bestandssystemen (Azure NetApp Files NFS)

In dit voorbeeld worden de gedeelde HANA-bestandssystemen geïmplementeerd in Azure NetApp Files en gekoppeld via NFSv4.1. Volg de stappen in deze sectie, alleen als u NFS gebruikt in Azure NetApp Files.

  1. [AH] Bereid het besturingssysteem voor voor het uitvoeren van SAP HANA op NetApp Systems met NFS, zoals beschreven in SAP-opmerking 3024346 - Linux-kernelinstellingen voor NetApp NFS. Maak configuratiebestand /etc/sysctl.d/91-NetApp-HANA.conf voor de NetApp-configuratie-instellingen.

    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] Pas de sunrpc-instellingen aan, zoals aanbevolen in SAP-opmerking 3024346 - Linux-kernelinstellingen voor NetApp NFS.

    vi /etc/modprobe.d/sunrpc.conf
    
    # Insert the following line
    options sunrpc tcp_max_slot_table_entries=128
    
  3. [AH] Maak koppelpunten voor de HANA-databasevolumes.

    mkdir -p /hana/shared
    
  4. [AH] Controleer de NFS-domeininstelling. Zorg ervoor dat het domein is geconfigureerd als het standaarddomein van Azure NetApp Files, dat wil gezegd, defaultv4iddomain.com en dat de toewijzing is ingesteld op niemand.
    Deze stap is alleen nodig als u Azure NetAppFiles NFSv4.1 gebruikt.

    Belangrijk

    Zorg ervoor dat u het NFS-domein instelt op /etc/idmapd.conf de VIRTUELE machine zodat dit overeenkomt met de standaarddomeinconfiguratie in Azure NetApp Files: defaultv4iddomain.com. Als er een onjuiste overeenkomst is tussen de domeinconfiguratie op de NFS-client (d.w.z. de VM) en de NFS-server, d.w.z. de Azure NetApp-configuratie, worden de machtigingen voor bestanden op Azure NetApp-volumes die zijn gekoppeld op de VM's weergegeven als nobody.

    sudo cat /etc/idmapd.conf
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  5. [AH] Controleer nfs4_disable_idmapping. Deze moet worden ingesteld op Y. Als u de mapstructuur wilt maken waar nfs4_disable_idmapping zich bevindt, voert u de koppelingsopdracht uit. U kunt de map niet handmatig maken onder /sys/modules, omdat toegang is gereserveerd voor de kernel/stuurprogramma's.
    Deze stap is alleen nodig als u Azure NetAppFiles NFSv4.1 gebruikt.

    # 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.23.1.7:/HN1-share-s1 /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
    
  6. [AH1] Koppel de gedeelde Azure NetApp Files-volumes op de SITE1 HANA DB-VM's.

    sudo vi /etc/fstab
    # Add the following entry
    10.23.1.7:/HN1-shared-s1 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    # Mount all volumes
    sudo mount -a 
    
  7. [AH2] Koppel de gedeelde Azure NetApp Files-volumes op de SITE2 HANA DB-VM's.

    sudo vi /etc/fstab
    # Add the following entry
    10.23.1.7:/HN1-shared-s2 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    # Mount the volume
    sudo mount -a 
    
  8. [AH] Controleer of de bijbehorende /hana/shared/ bestandssystemen zijn gekoppeld op alle HANA DB-VM's met NFS-protocolversie NFSv4.1.

    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.19,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.22,local_lock=none,addr=10.23.1.7
    

De gedeelde bestandssystemen koppelen (Azure Files NFS)

In dit voorbeeld worden de gedeelde HANA-bestandssystemen geïmplementeerd op NFS in Azure Files. Volg de stappen in deze sectie, alleen als u NFS in Azure Files gebruikt.

  1. [AH] Maak koppelpunten voor de HANA-databasevolumes.

    mkdir -p /hana/shared
    
  2. [AH1] Koppel de gedeelde Azure NetApp Files-volumes op de SITE1 HANA DB-VM's.

    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] Koppel de gedeelde Azure NetApp Files-volumes op de SITE2 HANA DB-VM's.

    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] Controleer of de bijbehorende /hana/shared/ bestandssystemen zijn gekoppeld op alle HANA DB-VM's met NFS-protocolversie 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
    

De gegevens voorbereiden en lokale bestandssystemen loggen

In de gepresenteerde configuratie worden bestandssystemen /hana/data en /hana/log uitgerold op beheerde schijven en lokaal gekoppeld aan elke VM met HANA DB. U moet de stappen uitvoeren om de lokale gegevens en logboekvolumes op elke virtuele HANA DB-machine te maken.

Stel de schijfindeling in met LVM (Logical Volume Manager). In het volgende voorbeeld wordt ervan uitgegaan dat aan elke virtuele HANA-machine drie gegevensschijven zijn gekoppeld die worden gebruikt om twee volumes te maken.

  1. [AH] Geef alle beschikbare schijven weer:

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

    Voorbeelduitvoer:

    /dev/disk/azure/scsi1/lun0  /dev/disk/azure/scsi1/lun1  /dev/disk/azure/scsi1/lun2 
    
  2. [AH] Maak fysieke volumes voor alle schijven die u wilt gebruiken:

    sudo pvcreate /dev/disk/azure/scsi1/lun0
    sudo pvcreate /dev/disk/azure/scsi1/lun1
    sudo pvcreate /dev/disk/azure/scsi1/lun2
    
  3. [AH] Maak een volumegroep voor de gegevensbestanden. Gebruik één volumegroep voor de logboekbestanden en één voor de gedeelde map van 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] Maak logische volumes aan.

    Er wordt een lineair volume gemaakt wanneer u `lvcreate` zonder de `-i` optie gebruikt. We raden u aan om een gestreept volume te maken voor betere I/O-prestaties en de stripegrootten uit te lijnen op de waarden die worden beschreven in SAP HANA VM-opslagconfiguraties. Het -i argument moet het nummer zijn van de onderliggende fysieke volumes en het -I argument is de streepgrootte. In dit document worden twee fysieke volumes gebruikt voor het gegevensvolume, dus het -i schakelargument is ingesteld op 2. De stripegrootte voor het gegevensvolume is 256 KiB. Er wordt één fysiek volume gebruikt voor het logboekvolume, dus er worden geen -i-I switches expliciet gebruikt voor de logboekvolumeopdrachten.

    Belangrijk

    Gebruik de schakeloptie en stel deze -i in op het aantal onderliggende fysieke volumes wanneer u meer dan één fysiek volume gebruikt voor elke gegevens- of logboekvolume. Gebruik de -I schakeloptie om de stripegrootte op te geven bij het maken van een gestreept volume.
    Zie SAP HANA VM-opslagconfiguraties voor aanbevolen opslagconfiguraties, waaronder stripegrootten en het aantal schijven.

    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] Maak de koppelmappen aan en kopieer vervolgens de UUID van alle logische volumes:

    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] Maak fstab items aan voor de logische volumes en koppel ze:

    sudo vi /etc/fstab
    

    Voeg de volgende regel in het /etc/fstab bestand in:

    /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
    

    Koppel de nieuwe volumes:

    sudo mount -a
    

Een Pacemaker-cluster maken

Volg de stappen in Pacemaker instellen op SUSE Linux Enterprise Server in Azure om een eenvoudig Pacemaker-cluster voor deze HANA-server te maken. Neem alle virtuele machines op, inclusief de meerderheidsmaker in het cluster.

Voor een uitschaalcluster moet u ervoor zorgen dat de volgende parameters correct zijn ingesteld:

  • Stel niet in op quorum expected-votes 2, omdat dit geen cluster met twee knooppunten is.
  • Zorg ervoor dat de clustereigenschap concurrent-fencing=true is ingesteld, zodat knooppuntafscheiding wordt gedeserialiseerd.
  • De stonith-sbd-resource moet een parameter pcmk_action_limit=-1 met waarde negatief 1 (onbeperkt) bevatten om gedeserialiseerde stonith-acties toe te staan.

Installatie

In dit voorbeeld voor het implementeren van SAP HANA in scale-outconfiguratie met HSR op Virtuele Azure-machines hebben we HANA 2.0 SP5 gebruikt.

Voorbereiden op de HANA-installatie

  1. [AH] Voordat de HANA-installatie wordt uitgevoerd, stelt u het hoofdwachtwoord in. U kunt het hoofdwachtwoord uitschakelen nadat de installatie is voltooid. root Uitvoeren als opdracht passwd.

  2. [1,2] Wijzig de machtigingen voor /hana/shared

    chmod 775 /hana/shared
    
  3. [1] Controleer of u zich via SSH kunt aanmelden bij de HANA DB-VM's op deze site hana-s1-db2 en hana-s1-db3, zonder dat u om een wachtwoord wordt gevraagd. Als dat niet het geval is, wisselt u ssh-sleutels uit zoals beschreven in SSH-toegang inschakelen via openbare sleutel.

    ssh root@hana-s1-db2
    ssh root@hana-s1-db3
    
  4. [2] Controleer of u zich via SSH kunt aanmelden bij de HANA DB-VM's op deze site hana-s2-db2 en hana-s2-db3, zonder dat u om een wachtwoord wordt gevraagd.
    Als dat niet het geval is, wisselt u ssh-sleutels uit.

    ssh root@hana-s2-db2
    ssh root@hana-s2-db3
    
  5. [AH] Installeer extra pakketten, die vereist zijn voor HANA 2.0 SP4 en hoger. Zie SAP Note 2593824 voor uw SLES-versie voor meer informatie.

    # In this example, using SLES12 SP5
    sudo zypper install libgcc_s1 libstdc++6 libatomic1
    

HANA-installatie op het eerste knooppunt op elke site

  1. [1] Installeer SAP HANA door de instructies te volgen in de installatie- en updatehandleiding van SAP HANA 2.0. In de volgende instructies laten we de SAP HANA-installatie op het eerste knooppunt op SITE 1 zien.

    een. Start als het root vanuit de HANA-installatiesoftwaremap. Gebruik de internal_network parameter en geef de adresruimte door voor het subnet, dat wordt gebruikt voor de interne communicatie tussen HANA-knooppunten.

    ./hdblcm --internal_network=10.23.1.128/26
    

    b. Voer bij de prompt de volgende waarden in:

    • Voor Kies een actie: voer 1 in (voor installatie)
    • Voor aanvullende onderdelen voor installatie: voer 2, 3 in
    • Voor het installatiepad: druk op Enter (standaard ingesteld op /hana/gedeeld)
    • Voor lokale hostnaam: druk op Enter om de standaardwaarde te accepteren
    • Voor Wilt u hosts toevoegen aan het systeem?: voer n in
    • Voor SAP HANA-systeem-id: voer HN1 in
    • Voor Instance nummer [00]: voer 03 in
    • Voor lokale hostwerkgroep [standaard]: druk op Enter om de standaardinstelling te accepteren
    • Selecteer systeemgebruik / voer index in [4]: voer 4 in (voor aangepast)
    • Voor locatie van gegevensvolumes [/hana/data/HN1]: druk op Enter om de standaardwaarde te accepteren
    • Voor locatie van logboekvolumes [/hana/log/HN1]: druk op Enter om de standaardinstelling te accepteren
    • Voor Maximale geheugentoewijzing beperken? [n]: voer n in
    • Voor certificaathostnaam voor Host hana-s1-db1 [hana-s1-db1]: druk op Enter om de standaardwaarde te accepteren
    • Voer het wachtwoord in voor SAP Host Agent User (sapadm): voer het wachtwoord in
    • Voor bevestig wachtwoord voor SAP Host Agent-gebruiker (sapadm): voer het wachtwoord in.
    • Voor systeembeheerderswachtwoord (hn1adm): voer het wachtwoord in
    • Voor Home Directory van systeembeheerder [/usr/sap/HN1/home]: druk op Enter om de standaardinstelling te accepteren
    • Voor Aanmeldingsshell voor systeembeheerder [/bin/sh]: druk op Enter om de standaardinstelling te accepteren
    • Voor de gebruikers-id van de systeembeheerder [1001]: druk op Enter om de standaardwaarde te accepteren
    • Voor Enter-id van gebruikersgroep (sapsys) [79]: druk op Enter om de standaardinstelling te accepteren
    • Voer het wachtwoord van de systeemdatabasegebruiker (systeem) in: voer het wachtwoord van het systeem in
    • Voor Bevestig het wachtwoord van systeemdatabasegebruiker (systeem): voer het wachtwoord van de gebruiker 'system' in
    • Voor systeem opnieuw opstarten nadat de computer opnieuw is opgestart? [n]: voer n in
    • Voor Wilt u doorgaan (j/n): valideer de samenvatting en als alles er goed uitziet, voer j in.
  2. [2] Herhaal de vorige stap om SAP HANA te installeren op het eerste knooppunt op SITE 2.

  3. [1,2] Controleer global.ini

    Geef global.ini weer en zorg ervoor dat de configuratie voor de interne communicatie tussen SAP HANA-knooppunten aanwezig is. Controleer de communicatiesectie . Deze moet de adresruimte voor het inter subnet hebben en listeninterface moet worden ingesteld op .internal. Controleer het gedeelte internal_hostname_resolution. Het moet de IP-adressen hebben voor de virtuele HANA-machines die deel uitmaken van het inter subnet.

      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.132 = hana-s1-db1
      10.23.1.133 = hana-s1-db2
      10.23.1.134 = hana-s1-db3
    
  4. [1,2] Bereid u global.ini voor op installatie in een niet-gedeelde omgeving, zoals beschreven in SAP-opmerking 2080991.

     sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
     [persistence]
     basepath_shared = no
    
  5. [1,2] Start SAP HANA opnieuw om de wijzigingen te activeren.

     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] Controleer of de clientinterface gebruikmaakt van de IP-adressen uit het client subnet voor communicatie.

    # 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.22"
    

    Zie SAP Note 2183363 - Configuratie van intern SAP HANA-netwerk voor informatie over het controleren van de configuratie.

  7. [AH] Wijzig machtigingen voor de gegevens en logboekmappen om HANA-installatiefouten te voorkomen.

     sudo chmod o+w -R /hana/data /hana/log
    
  8. [1] Installeer de secundaire HANA-knooppunten. De voorbeeldinstructies in deze stap zijn voor SITE 1.

    een. Start het residente hdblcm-programma als root.

     cd /hana/shared/HN1/hdblcm
     ./hdblcm 
    

    b. Voer bij de prompt de volgende waarden in:

    • Voor Kies een actie: voer 2 in (voor hosts toevoegen)
    • Voer komma-gescheiden hostnamen in om toe te voegen: hana-s1-db2, hana-s1-db3
    • Voor aanvullende onderdelen voor installatie: voer 2, 3 in
    • Voor Enter Root User Name [root]: druk op Enter om de standaardwaarde te accepteren
    • Voor Rollen selecteren voor host 'hana-s1-db2' [1]: 1 (voor werkkracht)
    • Voor Enter Host Failover Group voor host 'hana-s1-db2' [standaard]: druk op Enter om de standaardwaarde te accepteren
    • Voor Voer het opslagpartitienummer in voor de host 'hana-s1-db2' [<<automatisch>> toewijzen]: druk op Enter om de standaardwaarde te accepteren
    • Voor Enter Worker Group for host 'hana-s1-db2' [standaard]: druk op Enter om de standaardwaarde te accepteren
    • Voor Selecteer rollen voor host 'hana-s1-db3' [1]: 1 (voor worker)
    • Voor Enter Host Failover Group voor host 'hana-s1-db3' [standaard]: druk op Enter om de standaardwaarde te accepteren
    • Voor Enter Storage Partition Number for host 'hana-s1-db3' [<<assign automatically>>]: druk op de Enter-knop om de standaardwaarde te accepteren
    • Voor Enter Worker Group for host 'hana-s1-db3' [standaard]: druk op Enter om de standaardwaarde te accepteren
    • Voor systeembeheerderswachtwoord (hn1adm): voer het wachtwoord in
    • Voer het wachtwoord in voor Enter SAP Host Agent User (sapadm) Password.
    • Voor bevestig wachtwoord voor SAP Host Agent-gebruiker (sapadm): voer het wachtwoord in.
    • Voor de naam van de certificaathost voor Host hana-s1-db2 [hana-s1-db2]: druk op Enter om de standaardwaarde te accepteren
    • Voor certificaathostnaam voor Host hana-s1-db3 [hana-s1-db3]: druk op Enter om de standaardwaarde te accepteren
    • Voor Wilt u doorgaan (j/n): valideer de samenvatting en als alles er goed uitziet, voer j in.
  9. [2] Herhaal de vorige stap om de secundaire SAP HANA-knooppunten op SITE 2 te installeren.

SAP HANA 2.0-systeemreplicatie configureren

  1. [1] Systeemreplicatie op SITE 1 configureren:

    Maak een back-up van de databases als 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')"
    

    Kopieer de bestanden met veilige opslagcodes van het systeem naar de secundaire site.

    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/
    

    Maak de primaire site:

    hdbnsutil -sr_enable --name=HANA_S1
    
  2. [2] Systeemreplicatie op SITE 2 configureren:

    Registreer de tweede site om de systeemreplicatie te starten. Voer de volgende opdracht uit als <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] Replicatiestatus controleren

    Controleer de replicatiestatus en wacht totdat alle databases zijn gesynchroniseerd.

    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] Wijzig de HANA-configuratie zodat communicatie voor HANA-systeemreplicatie wordt omgeleid via de virtuele netwerkinterfaces van HANA-systeemreplicatie.

    • HANA op beide sites stoppen

      sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
      
    • Bewerk global.ini om de hosttoewijzing toe te voegen voor HANA-systeemreplicatie: gebruik de IP-adressen van het hsr subnet.

      sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
      #Add the section
      [system_replication_hostname_resolution]
      10.23.1.196 = hana-s1-db1
      10.23.1.197 = hana-s1-db2
      10.23.1.198 = hana-s1-db3
      10.23.1.199 = hana-s2-db1
      10.23.1.200 = hana-s2-db2
      10.23.1.201 = hana-s2-db3
      
    • HANA starten op beide sites

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

    Zie voor meer informatie Hostnaamomzetting voor systeemreplicatie.

Implementeren van HANA-bronagenten

SUSE biedt twee verschillende softwarepakketten voor de Pacemaker-resourceagent voor het beheren van SAP HANA. Softwarepakketten SAPHanaSR-ScaleOut en SAPHanaSR-angi gebruiken iets andere syntaxis en parameters en zijn niet compatibel. Zie de opmerkingen en documentatie bij de SUSE-release voor meer informatie en verschillen tussen SAPHanaSR-angi en SAPHanaSR-ScaleOut. In dit document worden beide pakketten op afzonderlijke tabbladen in de respectieve secties behandeld.

Waarschuwing

Vervang het pakket SAPHanaSR-ScaleOut niet door SAPHanaSR-angi in een al geconfigureerd cluster. Voor het upgraden van SAPHanaSR naar SAPHanaSR-angi is een specifieke procedure vereist. Zie voor meer informatie het blogbericht van SUSE How to upgrade to SAPHanaSR-angi.

  • [A] Installeer de SAP HANA-pakketten met hoge beschikbaarheid:

Notitie

SAPHanaSR-angi heeft een minimale versievereiste van SAP HANA 2.0 SPS 05 en SUSE SLES voor SAP Applications 15 SP4 of hoger.

Voer de volgende opdracht uit op alle cluster-VM's, met inbegrip van de maker van de meerderheid om de pakketten met hoge beschikbaarheid te installeren:

sudo zypper install SAPHanaSR-angi
sudo zypper in -t pattern ha_sles

SAP HANA HA/DR-providers configureren

De SAP HANA HA/DR-providers optimaliseren de integratie met het cluster en verbeteren de detectie wanneer een clusterfailover nodig is. Het hoofdhookscript is susHanaSR (voor SAPHanaSR-angi) of SAPHanaSrMultiTarget (voor SAPHanaSR-ScaleOut pakket). Het is verplicht voor clusterintegratie dat u de python-hook susHanaSR/SAPHanaSrMultiTarget configureert. Voor HANA 2.0 SPS 05 en hoger raden we u aan om zowel susHanaSR/SAPHanaSrMultiTarget als de susChkSrv-hooks te implementeren.

De susChkSrv hook breidt de functionaliteit van de belangrijkste susHanaSR/SAPHanaSrMultiTarget HA-provider uit. Het werkt wanneer het HANA-proces hdbindexserver vastloopt. Als één proces vastloopt, probeert HANA het meestal opnieuw op te starten. Het opnieuw opstarten van het indexserverproces kan lang duren, waarbij de HANA-database niet reageert.

Als susChkSrv is geïmplementeerd, wordt er een onmiddellijke en configureerbare actie uitgevoerd. De actie activeert een failover in de geconfigureerde time-outperiode in plaats van te wachten tot het hdbindexserverproces opnieuw wordt opgestart op hetzelfde knooppunt. In HANA scale-out fungeert susChkSrv voor elk clusterknooppunt waarop HANA onafhankelijk wordt uitgevoerd. De geconfigureerde actie beëindigt HANA of omheint de betreffende VM, waardoor een failover wordt geactiveerd in de geconfigureerde time-outperiode.

  1. [1,2] Stop HANA op beide systeemreplicatiepunten. Uitvoeren als <sid>adm:

    sapcontrol -nr 03 -function StopSystem
    
  2. [1,2] Installeer de HANA HA-providerhook. De hooks moeten worden geïnstalleerd op beide HANA-databasesites.

    1. [1,2] Pas global.ini aan op elke clustersite. Als niet aan de vereisten voor susChkSrv-hook wordt voldaan, mag het hele blok [ha_dr_provider_suschksrv] niet worden geconfigureerd.
      U kunt het gedrag van susChkSrv aanpassen met de parameter action_on_lost. Geldige waarden zijn [ ignore | stop | kill | fence ].

      # add to global.ini on both sites. Do not copy global.ini between sites.
      [ha_dr_provider_sushanasr]
      provider = susHanaSR
      path = /usr/share/SAPHanaSR-angi
      execution_order = 1
      
      [ha_dr_provider_suschksrv]
      provider = susChkSrv
      path = /usr/share/SAPHanaSR-angi
      execution_order = 3
      action_on_lost = kill
      
      [trace]
      ha_dr_sushanasr = info
      ha_dr_suschksrv = info
      

      SUSE levert standaard de HA-hooks in de /usr/share/SAPHanaSR-angi directory. Als u de standaardlocatie gebruikt, zorgt u ervoor dat updates van het besturingssysteempakket de python-hookcode automatisch bijwerken en gebruikt HANA de bijgewerkte code bij de volgende herstart. U kunt ook uw eigen pad opgeven, zoals /hana/shared/myHooks, om besturingssysteemupdates los te koppelen van de hookversie die u gebruikt.

    2. [AH] Voor het cluster is sudoers-configuratie (toegangsrechten) vereist op de clusterknooppunten voor <sid>adm. In dit voorbeeld wordt dit bereikt door een nieuw bestand te maken. Voer de volgende opdracht uit als root. Vervang <sid> door de SAP-systeem-id in kleine letters, <SID> door de SAP-systeem-id in hoofdletters en <siteA/B> met gekozen HANA-sitenamen.

      cat << EOF > /etc/sudoers.d/20-saphana
      # SAPHanaSR-angi requirements for HA/DR hook scripts
      Cmnd_Alias SOK_SITEA    = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteA> -v SOK   -t crm_config -s SAPHanaSR
      Cmnd_Alias SFAIL_SITEA  = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteA> -v SFAIL -t crm_config -s SAPHanaSR
      Cmnd_Alias SOK_SITEB    = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteB> -v SOK   -t crm_config -s SAPHanaSR
      Cmnd_Alias SFAIL_SITEB  = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteB> -v SFAIL -t crm_config -s SAPHanaSR
      Cmnd_Alias HELPER_TAKEOVER  = /usr/bin/SAPHanaSR-hookHelper --sid=<SID> --case=checkTakeover
      Cmnd_Alias HELPER_FENCE     = /usr/bin/SAPHanaSR-hookHelper --sid=<SID> --case=fenceMe
      
      <sid>adm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB, HELPER_TAKEOVER, HELPER_FENCE
      

      Zie HANA HA/DR-providers instellen voor meer informatie over het implementeren van de SAP HANA-systeemreplicatiehook.


  1. [1,2] Start SAP HANA op beide replicatielocaties. Voer uit als <sid>adm.
sapcontrol -nr 03 -function StartSystem 
  1. [1] Controleer de installatie van de haak. Voer de volgende opdracht uit als <sap-sid>adm op de actieve HANA-systeemreplicatiesite:
cdtrace    
grep HADR.*load.*susHanaSR nameserver_*.trc | tail -3
# Example output
# nameserver_hana-s1-db1.30301.453.trc:[140145]{-1}[-1/-1] 2025-05-26 07:51:34.677221 i ha_dr_provider   HADRProviderManager.cpp(00083) : loading HA/DR Provider 'susHanaSR' from /usr/share/SAPHanaSR-angi
grep susHanaSR.*init nameserver_*.trc | tail -3
# Example output
# nameserver_hana-s1-db1.30301.453.trc:[140157]{-1}[-1/-1] 2025-05-26 07:51:34.724422 i ha_dr_susHanaSR  susHanaSR.py(00042) : susHanaSR.init() version 1.001.1
  1. [AH] Controleer de installatie van de susChkSrv-hook. Voer de volgende opdracht uit als <sap-sid>adm op elk HANA-knooppunt:
cdtrace
egrep '(LOST:|STOP:|START:|DOWN:|init|load|fail)' nameserver_suschksrv.trc
# Example output
# 2023-01-19 08:23:10.581529  [1674116590-10005] susChkSrv.init() version 0.7.7, parameter info: action_on_lost=fence stop_timeout=20 kill_signal=9
# 2023-01-19 08:23:31.553566  [1674116611-14022] START: indexserver event looks like graceful tenant start
# 2023-01-19 08:23:52.834813  [1674116632-15235] START: indexserver event looks like graceful tenant start (indexserver started)

SAP HANA-clusterbronnen maken

  1. [1] Maak de HANA-topologiebron aan. Zorg ervoor dat het cluster zich in de onderhoudsmodus bevindt.
sudo crm configure property maintenance-mode=true

# Replace <placeholders> with your instance number and HANA system ID

sudo crm configure primitive rsc_SAPHanaTopology_<SID>_HDB<InstNum> ocf:suse:SAPHanaTopology \
  op monitor interval="50" timeout="600" \
  op start interval="0" timeout="600" \
  op stop interval="0" timeout="300" \
  params SID="<SID>" InstanceNumber="<InstNum>"

sudo crm configure clone cln_SAPHanaTopology_<SID>_HDB<InstNum> rsc_SAPHanaTopology_<SID>_HDB<InstNum> \
  meta clone-node-max="1" interleave="true"
  1. [1] Maak vervolgens de HANA-exemplaarresource.
# Replace <placeholders> with your instance number and HANA system ID

sudo crm configure primitive rsc_SAPHanaController_<SID>_HDB<InstNum> ocf:suse:SAPHanaController \
  op start interval="0" timeout="3600" \
  op stop interval="0" timeout="3600" \
  op promote interval="0" timeout="900" \
  op demote interval="0" timeout="320" \
  op monitor interval="60" role="Promoted" timeout="700" \
  op monitor interval="61" role="Unpromoted" timeout="700" \
  params SID="<SID>" InstanceNumber="<InstNum>" PREFER_SITE_TAKEOVER="true" \
  DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false" \
  HANA_CALL_TIMEOUT="120"

sudo crm configure clone mst_SAPHanaController_<SID>_HDB<InstNum> rsc_SAPHanaController_<SID>_HDB<InstNum> \
  meta clone-node-max="1" interleave="true" promotable="true"

Belangrijk

We raden u aan als best practice dat u alleen AUTOMATED_REGISTER instelt op nee, terwijl u grondige failovertests uitvoert, om te voorkomen dat een mislukt primair exemplaar automatisch als secundaire instantie wordt geregistreerd. Zodra de failovertests zijn voltooid, stelt u AUTOMATED_REGISTER in op ja, zodat de replicatie van het overnamesysteem automatisch kan worden hervat.

  1. [1] Maak resource-agents voor het bestandssysteem voor /hana/shared

SAPHanaSR-angi voegt een nieuwe resourceagent SAPHanaFilesystem toe om lees-/schrijftoegang tot /hana/shared/SID te bewaken. Het statische besturingssysteem koppelt het /hana/shared/SID-bestandssysteem aan elke host met vermeldingen in /etc/fstab. SAPHanaFilesystem en Pacemaker monteren het bestandssysteem niet voor HANA.

# Replace <placeholders> with your instance number and HANA system ID

sudo crm configure primitive rsc_SAPHanaFilesystem_<SID>_HDB<InstNum> ocf:suse:SAPHanaFilesystem \
  op start interval="0" timeout="10" \
  op stop interval="0" timeout="20" \
  op monitor interval="120" timeout="120" \
  params SID="<SID>" InstanceNumber="<InstNum>" ON_FAIL_ACTION="fence"

sudo crm configure clone cln_SAPHanaFilesystem_<SID>_HDB<InstNum> rsc_SAPHanaFilesystem_<SID>_HDB<InstNum> \
  meta clone-node-max="1" interleave="true"

# Add a location constraint to not run filesystem check on majority maker VM
sudo crm configure location loc_SAPHanaFilesystem_not_on_majority_maker cln_SAPHanaFilesystem_<SID>_HDB<InstNum> -inf: hana-s-mm
  1. [1] Ga door met clusterbronnen voor virtuele IP-adressen en beperkingen.
# Replace <placeholders> with your instance number and HANA system ID, and respective IP address and load balancer port  

sudo crm configure primitive rsc_ip_<SID>_HDB<InstNum> ocf:heartbeat:IPaddr2 \
  op start timeout=60s on-fail=fence \
  op monitor interval="10s" timeout="20s" \
  params ip="10.23.0.27"
  
sudo crm configure primitive rsc_nc_<SID>_HDB<InstNum> azure-lb port=62503 \
  op monitor timeout=20s interval=10 \
  meta resource-stickiness=0
  
sudo crm configure group g_ip_<SID>_HDB<InstNum> rsc_ip_<SID>_HDB<InstNum> rsc_nc_<SID>_HDB<InstNum>

De clusterbeperkingen maken

# Colocate the IP with primary HANA node
sudo crm configure colocation col_saphana_ip_<SID>_HDB<InstNum> 4000: g_ip_<SID>_HDB<InstNum>:Started \
  mst_SAPHanaController_<SID>_HDB<InstNum>:Promoted  
  
# Start HANA Topology before HANA  instance
sudo crm configure order ord_SAPHana_<SID>_HDB<InstNum> Optional: cln_SAPHanaTopology_<SID>_HDB<InstNum> \
  mst_SAPHanaController_<SID>_HDB<InstNum>
  
# HANA resources don't run on the majority maker node
sudo crm configure location loc_SAPHanaController_not_on_majority_maker mst_SAPHanaController_<SID>_HDB<InstNum> -inf: hana-s-mm
sudo crm configure location loc_SAPHanaTopology_not_on_majority_maker cln_SAPHanaTopology_<SID>_HDB<InstNum> -inf: hana-s-mm
  1. [1] Aanvullende clustereigenschappen configureren
sudo crm configure rsc_defaults resource-stickiness=1000
sudo crm configure rsc_defaults migration-threshold=50
  1. [1] Plaats het cluster buiten de onderhoudsmodus. Zorg ervoor dat de clusterstatus in orde is en of alle resources zijn gestart.
# Cleanup any failed resources - the following command is example 
sudo crm resource cleanup rsc_SAPHana_HN1_HDB03

# Place the cluster out of maintenance mode
sudo crm configure property maintenance-mode=false
  1. [1] Controleer de communicatie tussen de HANA HA-haak en het cluster. Zorg ervoor dat de status SOK wordt weergegeven voor de SID en dat beide replicatiesites de status P(rimary) of S(econdary) hebben.
sudo SAPHanaSR-showAttr
Global cib-update dcid prim       sec        sid topology
----------------------------------------------------------
global 0.165361.0 7    HANA_S2 HANA_S1    HN1 ScaleOut

Resource                        promotable
-------------------------------------------
msl_SAPHanaController_HN1_HDB03 true
cln_SAPHanaTopology_HN1_HDB03

Site        lpt        lss mns     opMode    srHook srMode srPoll srr
----------------------------------------------------------------------
HANA_S2  1748611494 4   hana-s2-db1 logreplay PRIM   sync   PRIM   P
HANA_S1  10         4   hana-s1-db1 logreplay SOK    sync   SFAIL  S

Host     clone_state roles                        score  site       srah version     vhost
----------------------------------------------------------------------------------------------
hana-s1-db1  DEMOTED     master1:master:worker:master 100    HANA_S1 -    2.00.074.00 hana-s1-db1
hana-s1-db2  DEMOTED     slave:slave:worker:slave     -12200 HANA_S1 -    2.00.074.00 hana-s1-db2
hana-s1-db3  DEMOTED     slave:slave:worker:slave     -12200 HANA_S1 -    2.00.074.00 hana-s1-db3
hana-s2-db1  PROMOTED    master1:master:worker:master 150    HANA_S2 -    2.00.074.00 hana-s2-db1
hana-s2-db2  DEMOTED     slave:slave:worker:slave     -10000 HANA_S2 -    2.00.074.00 hana-s2-db2
hana-s2-db3  DEMOTED     slave:slave:worker:slave     -10000 HANA_S2 -    2.00.074.00 hana-s2-db3
hana-mm                                                                               hana-mm

Notitie

De time-outs in de bovenstaande configuratie zijn slechts voorbeelden en moeten mogelijk worden aangepast aan de specifieke HANA-installatie. U moet bijvoorbeeld de time-out voor de start verhogen als het langer duurt om de SAP HANA-database te starten. SAPHanaSR-angi biedt verdere opties voor snellere actie tijdens een clustergebeurtenis. Zie de SUSE-documentatie voor meer informatie over de parameter ON_FAIL_ACTION van SAPHanaController, optionele agent SAPHanaSR-alert-fencing en andere opties. Implementatie moet worden gevolgd door aanvullende uitgebreide clustertests in uw omgeving.

SAP HANA-failover testen

Notitie

Dit artikel bevat verwijzingen naar termen die Microsoft niet meer gebruikt. Wanneer deze voorwaarden uit de software worden verwijderd, worden deze uit dit artikel verwijderd.

  1. Voordat u een test start, controleert u de replicatiestatus van het cluster en sap HANA-systeem.

    een. Controleer of er geen mislukte clusteracties zijn

    #Verify that there are no failed cluster actions
    crm status
    # Example 
    #7 nodes configured
    #24 resource instances configured
    #
    #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #
    #Full list of resources:
    #
    # stonith-sbd    (stonith:external/sbd): Started hana-s-mm
    # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #     Stopped: [ hana-s-mm ]
    # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #     Stopped: [ hana-s-mm ]
    # Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03]
    #     Masters: [ hana-s1-db1 ]
    #     Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #     Stopped: [ hana-s-mm ]
    # Resource Group: g_ip_HN1_HDB03
    #     rsc_ip_HN1_HDB03   (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
    #     rsc_nc_HN1_HDB03   (ocf::heartbeat:azure-lb):      Started hana-s1-db1
    

    b. Controleer of sap HANA-systeemreplicatie gesynchroniseerd is

    # 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 |
    #| -------- | ------------ | ----- | ------------ | --------- | ------- | --------- | ------------ | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
    #| 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-db3  | 30303 | indexserver  |         4 |       1 | HANA_S1   | hana-s2-db3  |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    #| HN1      | hana-s1-db2  | 30303 | indexserver  |         5 |       1 | HANA_S1   | hana-s2-db2  |     30303 |         2 | 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. We raden u aan om de configuratie van het SAP HANA-cluster grondig te valideren door de tests uit te voeren, die worden beschreven in Hoge Beschikbaarheid voor SAP HANA op Azure VM's op SLES en in Schaalvergroting prestatie-geoptimaliseerd scenario voor SLES-replicatie.

  3. Controleer de clusterconfiguratie voor een foutscenario wanneer een knooppunt geen toegang meer heeft tot de NFS-share (/hana/shared).

    De SAP HANA-resourceagents zijn afhankelijk van binaire bestanden die zijn opgeslagen /hana/shared om bewerkingen uit te voeren tijdens een failover. Het bestandssysteem /hana/shared is in de gepresenteerde configuratie via NFS gekoppeld. Een test die kan worden uitgevoerd, is het maken van een tijdelijke firewallregel om de toegang tot het /hana/shared gekoppelde NFS-bestandssysteem op een van de vm's van de primaire site te blokkeren. Met deze methode wordt gevalideerd dat het cluster een failover maakt als de toegang tot /hana/shared op de actieve systeemreplicatiesite verloren gaat.

    Verwacht resultaat: wanneer u de toegang tot het /hana/shared gekoppelde NFS-bestandssysteem op een van de primaire site-VM's blokkeert, mislukt de bewakingsbewerking die een lees-/schrijfbewerking uitvoert op het bestandssysteem, omdat het geen toegang heeft tot het bestandssysteem en HANA-resourcefailover activeert. Hetzelfde resultaat wordt verwacht wanneer uw HANA-knooppunt geen toegang meer heeft tot de NFS-share.

    U kunt de status van de clusterbronnen controleren door het crm_mon of crm status commando uit te voeren. Resourcestatus voordat u de test start:

    # Output of crm_mon
    #7 nodes configured
    #24 resource instances 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:
    #
    #stonith-sbd     (stonith:external/sbd): Started hana-s-mm
    # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_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 [rsc_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_HDB03
    #     rsc_ip_HN1_HDB03   (ocf::heartbeat:IPaddr2):       Started hana-s2-db1
    #     rsc_nc_HN1_HDB03   (ocf::heartbeat:azure-lb):      Started hana-s2-db1     
    

    Fout simuleren voor /hana/shared:

    • Als u NFS in Azure NetApp Files gebruikt, bevestigt u eerst het IP-adres voor het /hana/shared Azure NetApp Files-volume op de primaire site. U kunt dat doen door uit te voeren df -kh|grep /hana/shared.
    • Als u NFS in Azure Files gebruikt, moet u eerst het IP-adres van het privé-eindpunt voor uw opslagaccount bepalen.

    Stel vervolgens een tijdelijke firewallregel in om de toegang tot het IP-adres van het /hana/shared NFS-bestandssysteem te blokkeren door de volgende opdracht uit te voeren op een van de primaire HANA-systeemreplicatiesite-VM's.

    In dit voorbeeld is de opdracht uitgevoerd op het volume hana-s1-db1 voor Azure NetApp Files /hana/shared.

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

    De clusterresources worden gemigreerd naar de andere HANA-systeemreplicatiesite.

    Als u AUTOMATED_REGISTER="false" instelt, moet u SAP HANA-systeemreplicatie op secundaire site configureren na overname. In dit geval kunt u deze opdrachten uitvoeren om SAP HANA opnieuw te configureren als secundair.

    # 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 cleanup failed resources
    crm resource cleanup SAPHana_HN1_HDB03
    

    De status van de resources na de test:

    # Output of crm_mon
    #7 nodes configured
    #24 resource instances 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:
    #
    #stonith-sbd     (stonith:external/sbd): Started hana-s-mm
    # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_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 [rsc_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_HDB03
    #     rsc_ip_HN1_HDB03   (ocf::heartbeat:IPaddr2):       Started hana-s2-db1
    #     rsc_nc_HN1_HDB03   (ocf::heartbeat:azure-lb):      Started hana-s2-db1
    

Volgende stappen