Dela via


Distribuera ett SAP HANA-utskalningssystem med väntelägesnod på virtuella Azure-datorer med hjälp av Azure NetApp Files på SUSE Linux Enterprise Server

Den här artikeln beskriver hur du distribuerar ett SAP HANA-system med hög tillgänglighet i en utskalningskonfiguration med vänteläge på virtuella Azure-datorer (VM) med hjälp av Azure NetApp Files för delade lagringsvolymer.

I exempelkonfigurationer, installationskommandon och så vidare är HANA-instansen 03 och HANA-system-ID är HN1. Exemplen baseras på HANA 2.0 SP4 och SUSE Linux Enterprise Server för SAP 12 SP4.

Innan du börjar kan du läsa följande SAP-anteckningar och dokument:

Översikt

En metod för att uppnå HÖG HANA-tillgänglighet är genom att konfigurera automatisk redundans för värd. För att konfigurera automatisk redundans för värd lägger du till en eller flera virtuella datorer i HANA-systemet och konfigurerar dem som väntelägesnoder. När den aktiva noden misslyckas tar en väntelägesnod automatiskt över. I den presenterade konfigurationen med virtuella Azure-datorer uppnår du automatisk redundans med hjälp av NFS på Azure NetApp Files.

Kommentar

Väntelägesnoden behöver åtkomst till alla databasvolymer. HANA-volymerna måste monteras som NFSv4-volymer. Den förbättrade fillånsbaserade låsmekanismen i NFSv4-protokollet används för I/O stängsel.

Viktigt!

Om du vill skapa konfigurationen som stöds måste du distribuera HANA-data och loggvolymer som NFSv4.1-volymer och montera dem med hjälp av protokollet NFSv4.1. HANA-värdkonfigurationen för automatisk redundans med väntelägesnod stöds inte med NFSv3.

Översikt över hög tillgänglighet för SAP NetWeaver

I föregående diagram, som följer SAP HANA-nätverksrekommendationer, representeras tre undernät i ett virtuellt Azure-nätverk:

  • För klientkommunikation
  • För kommunikation med lagringssystemet
  • För intern HANA-kommunikation mellan noder

Azure NetApp-volymerna finns i ett separat undernät som delegeras till Azure NetApp Files.

För den här exempelkonfigurationen är undernäten:

  • client 10.23.0.0/24
  • storage 10.23.2.0/24
  • hana 10.23.3.0/24
  • anf 10.23.1.0/26

Konfigurera Azure NetApp Files-infrastrukturen

Innan du fortsätter med konfigurationen för Azure NetApp Files-infrastrukturen bör du bekanta dig med Dokumentationen om Azure NetApp Files.

Azure NetApp Files är tillgängligt i flera Azure-regioner. Kontrollera om den valda Azure-regionen erbjuder Azure NetApp Files.

Information om tillgängligheten för Azure NetApp Files per Azure-region finns i Tillgänglighet för Azure NetApp Files efter Azure-region.

Viktigt!

När du skapar Azure NetApp Files för SAP NetWeaver i arkitekturen för hög tillgänglighet för SUSE bör du vara medveten om de viktiga överväganden som beskrivs i NFS v4.1-volymer på Azure NetApp Files för SAP HANA.

Storleksändring för HANA-databas på Azure NetApp Files

Dataflödet för en Azure NetApp Files-volym är en funktion av volymstorleken och tjänstnivån, enligt beskrivningen i Tjänstnivå för Azure NetApp Files.

När du utformar infrastrukturen för SAP HANA i Azure med Azure NetApp Files bör du vara medveten om rekommendationerna i NFS v4.1-volymer på Azure NetApp Files för SAP HANA.

Konfigurationen i den här artikeln visas med enkla Azure NetApp Files-volymer.

Viktigt!

För produktionssystem, där prestanda är en nyckel, rekommenderar vi att du utvärderar och överväger att använda Azure NetApp Files-programvolymgruppen för SAP HANA.

Distribuera Azure NetApp Files-resurser

Följande instruktioner förutsätter att du redan har distribuerat ditt virtuella Azure-nätverk. Azure NetApp Files-resurser och virtuella datorer, där Azure NetApp Files-resurserna ska monteras, måste distribueras i samma virtuella Azure-nätverk eller i peerkopplade virtuella Azure-nätverk.

  1. Skapa ett NetApp-konto i din valda Azure-region genom att följa anvisningarna i Skapa ett NetApp-konto.

  2. Konfigurera en Azure NetApp Files-kapacitetspool genom att följa anvisningarna i Konfigurera en Azure NetApp Files-kapacitetspool.

    HANA-arkitekturen som presenteras i den här artikeln använder en enda Azure NetApp Files-kapacitetspool på Ultra Service-nivå . För HANA-arbetsbelastningar i Azure rekommenderar vi att du använder en Azure NetApp Files Ultra- eller Premium-tjänstnivå.

  3. Delegera ett undernät till Azure NetApp Files enligt anvisningarna i Delegera ett undernät till Azure NetApp Files.

  4. Distribuera Azure NetApp Files-volymer genom att följa anvisningarna i Skapa en NFS-volym för Azure NetApp Files.

    När du distribuerar volymerna måste du välja NFSv4.1-versionen . För närvarande måste åtkomst till NFSv4.1 läggas till i en tillåtna lista. Distribuera volymerna i det avsedda Azure NetApp Files-undernätet. IP-adresserna för Azure NetApp-volymerna tilldelas automatiskt.

    Tänk på att Azure NetApp Files-resurserna och de virtuella Azure-datorerna måste finnas i samma virtuella Azure-nätverk eller i peerkopplade virtuella Azure-nätverk. Till exempel är HN1-data-mnt00001, HN1-log-mnt00001 och så vidare volymnamnen och nfs://10.23.1.5/ HN1-data-mnt00001, nfs://10.23.1.4/ HN1-log-mnt00001, och så vidare, är filsökvägarna för Azure NetApp Files-volymerna.

    • volym HN1-data-mnt00001 (nfs://10.23.1.5/ HN1-data-mnt00001)
    • volym HN1-data-mnt00002 (nfs://10.23.1.6/ HN1-data-mnt00002)
    • volym HN1-log-mnt00001 (nfs://10.23.1.4/ HN1-log-mnt00001)
    • volym HN1-log-mnt00002 (nfs://10.23.1.6/ HN1-log-mnt00002)
    • volym HN1-delad (nfs://10.23.1.4/ HN1-delad)

    I det här exemplet använde vi en separat Azure NetApp Files-volym för varje HANA-data och loggvolym. För en mer kostnadsoptimerad konfiguration på mindre eller icke-produktiva system är det möjligt att placera alla datamonteringar och alla loggar på en enda volym.

Distribuera virtuella Linux-datorer via Azure Portal

Först måste du skapa Azure NetApp Files-volymerna. Gör sedan följande steg:

  1. Skapa de virtuella Azure-nätverksundernäten i ditt virtuella Azure-nätverk.

  2. Distribuera de virtuella datorerna.

  3. Skapa ytterligare nätverksgränssnitt och koppla nätverksgränssnitten till motsvarande virtuella datorer.

    Varje virtuell dator har tre nätverksgränssnitt, vilket motsvarar de tre virtuella Azure-nätverksundernäten (clientstorageoch hana).

    Mer information finns i Skapa en virtuell Linux-dator i Azure med flera nätverkskort.

Viktigt!

Det är viktigt med låg fördröjning för SAP HANA-arbetsbelastningar. För att uppnå låg fördröjning bör du samarbeta med din Microsoft-representant för att säkerställa att de virtuella datorerna och Azure NetApp Files distribueras nära varandra. Skicka nödvändig information när du registrerar ett nytt SAP HANA-system som använder SAP HANA Azure NetApp Files.

Nästa instruktioner förutsätter att du redan har skapat resursgruppen, det virtuella Azure-nätverket och de tre virtuella Azure-nätverksundernäten: clientoch storage hana. När du distribuerar de virtuella datorerna väljer du klientundernätet, så att klientnätverksgränssnittet är det primära gränssnittet på de virtuella datorerna. Du måste också konfigurera en explicit väg till det delegerade undernätet Azure NetApp Files via gatewayen för lagringsundernät.

Viktigt!

Kontrollera att det operativsystem som du väljer är SAP-certifierat för SAP HANA på de specifika vm-typer som du använder. En lista över SAP HANA-certifierade VM-typer och OS-versioner för dessa typer finns på webbplatsen för SAP HANA-certifierade IaaS-plattformar . Klicka på information om den angivna VM-typen för att hämta den fullständiga listan över SAP HANA-versioner som stöds av operativsystemet för den typen.

  1. Skapa en tillgänglighetsuppsättning för SAP HANA. Se till att ange den maximala uppdateringsdomänen.

  2. Skapa tre virtuella datorer (hanadb1, hanadb2, hanadb3) genom att göra följande:

    a. Använd en SLES4SAP bild i Azure-galleriet som stöds för SAP HANA.

    b. Välj den tillgänglighetsuppsättning som du skapade tidigare för SAP HANA.

    c. Välj klientens undernät för det virtuella Azure-nätverket. Välj Accelererat nätverk.

    När du distribuerar de virtuella datorerna genereras namnet på nätverksgränssnittet automatiskt. I de här instruktionerna för enkelhetens skull refererar vi till de automatiskt genererade nätverksgränssnitten, som är anslutna till klientens virtuella Azure-nätverksundernät, som hanadb1-client, hanadb2-client och hanadb3-client.

  3. Skapa tre nätverksgränssnitt, ett för varje virtuell dator, för det storage virtuella nätverksundernätet (i det här exemplet hanadb1-storage, hanadb2-storage och hanadb3-storage).

  4. Skapa tre nätverksgränssnitt, ett för varje virtuell dator, för det hana virtuella nätverksundernätet (i det här exemplet hanadb1-hana, hanadb2-hana och hanadb3-hana).

  5. Koppla de nyligen skapade virtuella nätverksgränssnitten till motsvarande virtuella datorer genom att utföra följande steg:

    1. Gå till den virtuella datorn i Azure Portal.
    2. I den vänstra rutan väljer du Virtuella datorer. Filtrera på namnet på den virtuella datorn (till exempel hanadb1) och välj sedan den virtuella datorn.
    3. I fönstret Översikt väljer du Stoppa för att frigöra den virtuella datorn.
    4. Välj Nätverk och anslut sedan nätverksgränssnittet. I listrutan Anslut nätverksgränssnitt väljer du de redan skapade nätverksgränssnitten för undernäten storage och hana .
    5. Välj Spara.
    6. Upprepa steg b till e för de återstående virtuella datorerna (i vårt exempel hanadb2 och hanadb3).
    7. Låt de virtuella datorerna vara i stoppat tillstånd för tillfället. Nu ska vi aktivera accelererat nätverk för alla nyligen anslutna nätverksgränssnitt.
  6. Aktivera accelererat nätverk för de ytterligare nätverksgränssnitten för undernäten storage och hana genom att utföra följande steg:

    1. Öppna Azure Cloud Shell i Azure Portal.

    2. Kör följande kommandon för att aktivera accelererat nätverk för de ytterligare nätverksgränssnitten, som är anslutna till undernäten storage och hana .

      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-storage --accelerated-networking true
       az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-storage --accelerated-networking true
       az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-storage --accelerated-networking true
      
       az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-hana --accelerated-networking true
       az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-hana --accelerated-networking true
       az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-hana --accelerated-networking true
      
  7. Starta de virtuella datorerna genom att göra följande:

    1. I den vänstra rutan väljer du Virtuella datorer. Filtrera på namnet på den virtuella datorn (till exempel hanadb1) och välj det sedan.
    2. I fönstret Översikt väljer du Start.

Konfiguration och förberedelse av operativsystem

Anvisningarna i nästa avsnitt är prefixet med något av följande:

  • [A]: Gäller för alla noder
  • [1]: Gäller endast för nod 1
  • [2]: Gäller endast för nod 2
  • [3]: Gäller endast för nod 3

Konfigurera och förbereda operativsystemet genom att göra följande:

  1. [A] Underhålla värdfilerna på de virtuella datorerna. Inkludera poster för alla undernät. Följande poster har lagts till /etc/hosts i för det här exemplet.

    # Storage
     10.23.2.4   hanadb1-storage
     10.23.2.5   hanadb2-storage
     10.23.2.6   hanadb3-storage
     # Client
     10.23.0.5   hanadb1
     10.23.0.6   hanadb2
     10.23.0.7   hanadb3
     # Hana
     10.23.3.4   hanadb1-hana
     10.23.3.5   hanadb2-hana
     10.23.3.6   hanadb3-hana
    
  2. [A] Ändra DHCP- och molnkonfigurationsinställningarna för nätverksgränssnittet för lagring för att undvika oavsiktliga ändringar i värdnamnet.

    Följande instruktioner förutsätter att lagringsnätverksgränssnittet är eth1.

    vi /etc/sysconfig/network/dhcp 
    # Change the following DHCP setting to "no"
    DHCLIENT_SET_HOSTNAME="no"
    
    vi /etc/sysconfig/network/ifcfg-eth1
    # Edit ifcfg-eth1 
    #Change CLOUD_NETCONFIG_MANAGE='yes' to "no"
    CLOUD_NETCONFIG_MANAGE='no'
    
  3. [A] Lägg till en nätverksväg så att kommunikationen till Azure NetApp Files går via lagringsnätverksgränssnittet.

    Följande instruktioner förutsätter att lagringsnätverksgränssnittet är eth1.

    vi /etc/sysconfig/network/ifroute-eth1
    
    # Add the following routes 
    # RouterIPforStorageNetwork - - -
    # ANFNetwork/cidr RouterIPforStorageNetwork - -
    10.23.2.1 - - -
    10.23.1.0/26 10.23.2.1 - -
    

    Starta om den virtuella datorn för att aktivera ändringarna.

  4. [A] Förbered operativsystemet för att köra SAP HANA på NetApp Systems med NFS, enligt beskrivningen i SAP-3024346 – Linux Kernel-inställningar för NetApp NFS. Skapa konfigurationsfilen /etc/sysctl.d/91-NetApp-HANA.conf för NetApp-konfigurationsinställningarna.

    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_timestamps = 1
    net.ipv4.tcp_sack = 1
    
  5. [A] Skapa konfigurationsfilen /etc/sysctl.d/ms-az.conf med konfigurationsinställningarna för Microsoft för Azure.

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

    [! TIPS] Undvik att ange net.ipv4.ip_local_port_range och net.ipv4.ip_local_reserved_ports uttryckligen i sysctl-konfigurationsfilerna så att SAP-värdagenten kan hantera portintervallen. Mer information finns i SAP-2382421.

  6. [A] Justera sunrpc-inställningarna för NFSv3-volymer, enligt rekommendationerna i SAP note 3024346 – Linux Kernel Settings for NetApp NFS.

    vi /etc/modprobe.d/sunrpc.conf
    
    # Insert the following line
    options sunrpc tcp_max_slot_table_entries=128
    

Montera Azure NetApp Files-volymerna

  1. [A] Skapa monteringspunkter för HANA-databasvolymerna.

    mkdir -p /hana/data/HN1/mnt00001
    mkdir -p /hana/data/HN1/mnt00002
    mkdir -p /hana/log/HN1/mnt00001
    mkdir -p /hana/log/HN1/mnt00002
    mkdir -p /hana/shared
    mkdir -p /usr/sap/HN1
    
  2. [1] Skapa nodspecifika kataloger för /usr/sap på HN1-delad.

    # Create a temporary directory to mount HN1-shared
    mkdir /mnt/tmp
    
    # if using NFSv3 for this volume, mount with the following command
    mount 10.23.1.4:/HN1-shared /mnt/tmp
    
    # if using NFSv4.1 for this volume, mount with the following command
    mount -t nfs -o sec=sys,nfsvers=4.1 10.23.1.4:/HN1-shared /mnt/tmp
    
    cd /mnt/tmp
    mkdir shared usr-sap-hanadb1 usr-sap-hanadb2 usr-sap-hanadb3
    
    # unmount /hana/shared
    cd
    umount /mnt/tmp
    
  3. [A] Verifiera NFS-domäninställningen. Kontrollera att domänen har konfigurerats som standarddomän för Azure NetApp Files, d.v.s. defaultv4iddomain.com och att mappningen är inställd på ingen.

    Viktigt!

    Se till att ange NFS-domänen /etc/idmapd.conf på den virtuella datorn så att den matchar standarddomänkonfigurationen på Azure NetApp Files: defaultv4iddomain.com. Om det finns ett matchningsfel mellan domänkonfigurationen på NFS-klienten (dvs. den virtuella datorn) och NFS-servern, d.v.s. Azure NetApp-konfigurationen, visas behörigheterna för filer på Azure NetApp-volymer som är monterade på de virtuella datorerna som nobody.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Verbosity = 0
    Pipefs-Directory = /var/lib/nfs/rpc_pipefs
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  4. [A] Verifiera nfs4_disable_idmapping. Den ska vara inställd på Y. Kör monteringskommandot för att skapa katalogstrukturen där nfs4_disable_idmapping den finns. Du kommer inte att kunna skapa katalogen manuellt under /sys/modules, eftersom åtkomst är reserverad för kerneln/drivrutinerna.

    # 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.4:/HN1-shared /mnt/tmp
    umount  /mnt/tmp
    echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # Make the configuration permanent
    echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    
  5. [A] Skapa SAP HANA-gruppen och användaren manuellt. ID:na för grupp-sapsys och användar-hn1 adm måste anges till samma ID:t som tillhandahålls under registreringen. (I det här exemplet är ID:na inställda på 1001.) Om ID:na inte har angetts korrekt kan du inte komma åt volymerna. ID:na för grupp-sapsys och användarkonton hn1adm och sapadm måste vara desamma på alla virtuella datorer.

    # Create user group 
    sudo groupadd -g 1001 sapsys
    
    # Create  users 
    sudo useradd hn1adm -u 1001 -g 1001 -d /usr/sap/HN1/home -c "SAP HANA Database System" -s /bin/sh
    sudo useradd sapadm -u 1002 -g 1001 -d /home/sapadm -c "SAP Local Administrator" -s /bin/sh
    
    # Set the password  for both user ids
    sudo passwd hn1adm
    sudo passwd sapadm
    
  6. [A] Montera de delade Azure NetApp Files-volymerna.

    sudo vi /etc/fstab
    
    # Add the following entries
    10.23.1.5:/HN1-data-mnt00001 /hana/data/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.23.1.6:/HN1-data-mnt00002 /hana/data/HN1/mnt00002  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.23.1.4:/HN1-log-mnt00001 /hana/log/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.23.1.6:/HN1-log-mnt00002 /hana/log/HN1/mnt00002  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.23.1.4:/HN1-shared/shared /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
    

    För arbetsbelastningar som kräver högre dataflöde bör du överväga att använda monteringsalternativet enligt beskrivningen nconnect i NFS v4.1-volymer på Azure NetApp Files för SAP HANA. Kontrollera om nconnect stöds av Azure NetApp Files i Linux-versionen.

  7. [1] Montera de nodspecifika volymerna på hanadb1.

    sudo vi /etc/fstab
    
    # Add the following entries
    10.23.1.4:/HN1-shared/usr-sap-hanadb1 /usr/sap/HN1  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. [2] Montera de nodspecifika volymerna på hanadb2.

    sudo vi /etc/fstab
    
    # Add the following entries
    10.23.1.4:/HN1-shared/usr-sap-hanadb2 /usr/sap/HN1  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
    
  9. [3] Montera de nodspecifika volymerna på hanadb3.

    sudo vi /etc/fstab
    
    # Add the following entries
    10.23.1.4:/HN1-shared/usr-sap-hanadb3 /usr/sap/HN1  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
    
  10. [A] Kontrollera att alla HANA-volymer är monterade med NFS-protokollversionen NFSv4.1.

    sudo nfsstat -m
    
    # Verify that flag vers is set to 4.1 
    # Example from hanadb1
    /hana/data/HN1/mnt00001 from 10.23.1.5:/HN1-data-mnt00001
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.5
    /hana/log/HN1/mnt00002 from 10.23.1.6:/HN1-log-mnt00002
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6
    /hana/data/HN1/mnt00002 from 10.23.1.6:/HN1-data-mnt00002
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6
    /hana/log/HN1/mnt00001 from 10.23.1.4:/HN1-log-mnt00001
    Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4
    /usr/sap/HN1 from 10.23.1.4:/HN1-shared/usr-sap-hanadb1
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4
    /hana/shared from 10.23.1.4:/HN1-shared/shared
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4
    

Installation

I det här exemplet för att distribuera SAP HANA i utskalningskonfiguration med väntelägesnod med Azure har vi använt HANA 2.0 SP4.

Förbereda för HANA-installation

  1. [A] Innan HANA-installationen anger du rotlösenordet. Du kan inaktivera rotlösenordet när installationen har slutförts. Kör som root kommando passwd.

  2. [1] Kontrollera att du kan logga in via SSH till hanadb2 och hanadb3, utan att bli ombedd att ange ett lösenord.

    ssh root@hanadb2
    ssh root@hanadb3
    
  3. [A] Installera ytterligare paket som krävs för HANA 2.0 SP4. Mer information finns i SAP Note 2593824.

    sudo zypper install libgcc_s1 libstdc++6 libatomic1
    
  4. [2], [3] Ändra ägarskapet för SAP HANA data och log kataloger till hn1adm.

    # Execute as root
    sudo chown hn1adm:sapsys /hana/data/HN1
    sudo chown hn1adm:sapsys /hana/log/HN1
    

HANA-installation

  1. [1] Installera SAP HANA genom att följa anvisningarna i installations- och uppdateringsguiden för SAP HANA 2.0. I det här exemplet installerar vi SAP HANA-utskalning med master, en arbetare och en väntelägesnod.

    1. Starta hdblcm-programmet från programkatalogen för HANA-installation. Använd parametern internal_network och skicka adressutrymmet för undernätet, som används för intern HANA-kommunikation mellan noder.

      ./hdblcm --internal_network=10.23.3.0/24
      
    2. Ange följande värden i prompten:

      • För Välj en åtgärd: ange 1 (för installation)
      • För Ytterligare komponenter för installation: ange 2, 3
      • För installationssökväg: tryck på Retur (standardvärdet /hana/shared)
      • För Lokalt värdnamn: tryck på Retur för att acceptera standardvärdet
      • Under Vill du lägga till värdar i systemet?: ange y
      • För kommaavgränsade värdnamn att lägga till: ange hanadb2, hanadb3
      • För Rotanvändarnamn [root]: tryck på Retur för att acceptera standardvärdet
      • För rotanvändarlösenord: ange rotanvändarens lösenord
      • För roller för värd hanadb2: ange 1 (för arbetare)
      • För Värdredundansgrupp för värd hanadb2 [standard]: tryck på Retur för att acceptera standardvärdet
      • För Lagringspartitionsnummer för värden hanadb2 [<<tilldela automatiskt>>]: tryck på Retur för att acceptera standardvärdet
      • För Arbetsgrupp för värd hanadb2 [standard]: tryck på Retur för att acceptera standardvärdet
      • För Välj roller för värd hanadb3: ange 2 (för vänteläge)
      • För Värdredundansgrupp för värd hanadb3 [standard]: tryck på Retur för att acceptera standardvärdet
      • För Arbetsgrupp för värd hanadb3 [standard]: tryck på Retur för att acceptera standardvärdet
      • För SAP HANA-system-ID: ange HN1
      • För Instansnummer [00]: ange 03
      • För Lokal värdarbetsgrupp [standard]: tryck på Retur för att acceptera standardvärdet
      • För Välj systemanvändning/Ange index [4]: ange 4 (för anpassad)
      • För Plats för datavolymer [/hana/data/HN1]: tryck på Retur för att acceptera standardvärdet
      • För Plats för loggvolymer [/hana/log/HN1]: tryck på Retur för att acceptera standardvärdet
      • För Begränsa maximal minnesallokering? [n]: ange n
      • För Certifikatvärdnamn för värd hanadb1 [hanadb1]: tryck på Retur för att acceptera standardvärdet
      • För Certifikatvärdnamn för värd hanadb2 [hanadb2]: tryck på Retur för att acceptera standardvärdet
      • För Certifikatvärdnamn för värd hanadb3 [hanadb3]: tryck på Retur för att acceptera standardvärdet
      • För systemadministratörslösenord (hn1adm) anger du lösenordet
      • För System Database User (system) Lösenord: ange systemets lösenord
      • För Bekräfta systemdatabasanvändarens (system) lösenord: ange systemets lösenord
      • För Starta om systemet efter omstart av datorn? [n]: ange n
      • För Vill du fortsätta (y/n): verifiera sammanfattningen och om allt ser bra ut anger du y
  2. [1] Kontrollera global.ini.

    Visa global.ini och se till att konfigurationen för den interna SAP HANA-kommunikationen mellan noder är på plats. Kontrollera kommunikationsavsnittet. Den bör ha adressutrymmet för hana undernätet och listeninterface ska vara inställt på .internal. Kontrollera avsnittet internal_hostname_resolution . Den bör ha IP-adresserna för de virtuella HANA-datorer som tillhör hana undernätet.

    sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
    
    # Example 
    #global.ini last modified 2019-09-10 00:12:45.192808 by hdbnameserve
    [communication]
    internal_network = 10.23.3/24
    listeninterface = .internal
    [internal_hostname_resolution]
    10.23.3.4 = hanadb1
    10.23.3.5 = hanadb2
    10.23.3.6 = hanadb3
    
  3. [1] Lägg till värdmappning för att säkerställa att klientens IP-adresser används för klientkommunikation. Lägg till avsnittet public_host_resolutionoch lägg till motsvarande IP-adresser från klientundernätet.

    sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
    
    #Add the section
    [public_hostname_resolution]
    map_hanadb1 = 10.23.0.5
    map_hanadb2 = 10.23.0.6
    map_hanadb3 = 10.23.0.7
    
  4. [1] Starta om SAP HANA för att aktivera ändringarna.

    sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
    sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
    
  5. [1] Kontrollera att klientgränssnittet använder IP-adresserna från client undernätet för kommunikation.

    sudo -u 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
    "hanadb3","net_publicname","10.23.0.7"
    "hanadb2","net_publicname","10.23.0.6"
    "hanadb1","net_publicname","10.23.0.5"
    

    Information om hur du verifierar konfigurationen finns i SAP Note 2183363 – Konfiguration av det interna SAP HANA-nätverket.

  6. Om du vill optimera SAP HANA för den underliggande Azure NetApp Files-lagringen anger du följande SAP HANA-parametrar:

    • max_parallel_io_requests128
    • async_read_submit
    • async_write_submit_active
    • async_write_submit_blocksalla

    Mer information finns i I/O-stackkonfiguration för SAP HANA.

    Från och med SAP HANA 2.0-system kan du ange parametrarna i global.ini. Mer information finns i SAP Note 1999930.

    För SAP HANA 1.0-systemversionerna SPS12 och tidigare kan dessa parametrar anges under installationen, enligt beskrivningen i SAP Note 2267798.

  7. Lagringen som används av Azure NetApp Files har en filstorleksbegränsning på 16 terabyte (TB). SAP HANA är inte implicit medveten om lagringsbegränsningen och skapar inte automatiskt en ny datafil när filstorleksgränsen på 16 TB nås. När SAP HANA försöker utöka filen till mer än 16 TB resulterar det försöket i fel och slutligen i en indexserverkrasch.

    Viktigt!

    Om du vill förhindra att SAP HANA försöker utöka datafiler utöver gränsen på 16 TB för lagringsundersystemet anger du följande parametrar i global.ini.

    • datavolume_striping = true
    • datavolume_striping_size_gb = 15000 Mer information finns i SAP Note 2400005. Var medveten om SAP Note 2631285.

Testa SAP HANA-redundans

Kommentar

Den här artikeln innehåller referenser till termer som Microsoft inte längre använder. När dessa villkor tas bort från programvaran tar vi bort dem från den här artikeln.

  1. Simulera en nodkrasch på en SAP HANA-arbetsnod. Gör följande:

    1. Innan du simulerar nodkraschen kör du följande kommandon som hn1adm för att avbilda miljöns status:

      # Check the landscape status
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker  | worker  | default | default |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | yes    | ignore |          |        |         0 |         0 | default  | default  | master 3   | slave      | standby     | standby     | standby | standby | default | -       |
      
      # Check the instance status
      sapcontrol -nr 03  -function GetSystemInstanceList
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
      
    2. Om du vill simulera en nodkrasch kör du följande kommando som rot på arbetsnoden, vilket är hanadb2 i det här fallet:

      echo b > /proc/sysrq-trigger
      
    3. Övervaka systemet för redundans. När redundansväxlingen har slutförts samlar du in statusen, vilket bör se ut så här:

      # Check the instance status
      sapcontrol -nr 03  -function GetSystemInstanceList
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY
      
      # Check the landscape status
      /usr/sap/HN1/HDB03/exe/python_support> python landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker  | worker  | default | default |
      | hanadb2 | no     | info   |          |        |         2 |         0 | default  | default  | master 2   | slave      | worker      | standby     | worker  | standby | default | -       |
      | hanadb3 | yes    | info   |          |        |         0 |         2 | default  | default  | master 3   | slave      | standby     | slave       | standby | worker  | default | default |
      

      Viktigt!

      När en nod drabbas av kernelpanik bör du undvika fördröjningar med SAP HANA-redundans genom att ange kernel.panic till 20 sekunder på alla virtuella HANA-datorer. Konfigurationen görs i /etc/sysctl. Starta om de virtuella datorerna för att aktivera ändringen. Om den här ändringen inte utförs kan redundansen ta 10 eller fler minuter när en nod får kernel-panik.

  2. Avsluta namnservern genom att göra följande:

    1. Kontrollera miljöns status innan testet genom att köra följande kommandon som hn1adm:

      #Landscape status 
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker  | worker  | default | default |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | no     | ignore |          |        |         0 |         0 | default  | default  | master 3   | slave      | standby     | standby     | standby | standby | default | -       |
      
      # Check the instance status
      sapcontrol -nr 03  -function GetSystemInstanceList
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY
      
    2. Kör följande kommandon som hn1adm på den aktiva huvudnoden, vilket är hanadb1 i det här fallet:

      hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB kill
      

      Hanadb3 för väntelägesnoden tar över som huvudnod. Här är resurstillståndet när redundanstestet har slutförts:

      # Check the instance status
      sapcontrol -nr 03 -function GetSystemInstanceList
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
      
      # Check the landscape status
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | no     | info   |          |        |         1 |         0 | default  | default  | master 1   | slave      | worker      | standby     | worker  | standby | default | -       |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | yes    | info   |          |        |         0 |         1 | default  | default  | master 3   | master     | standby     | master      | standby | worker  | default | default |
      
    3. Starta om HANA-instansen på hanadb1 (d.v.s. på samma virtuella dator där namnservern avlivades). Noden hanadb1 återansluter till miljön och behåller sin standby-roll.

      hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB start
      

      När SAP HANA har startat på hanadb1 förväntar du dig följande status:

      # Check the instance status
      sapcontrol -nr 03 -function GetSystemInstanceList
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
      # Check the landscape status
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | info   |          |        |         1 |         0 | default  | default  | master 1   | slave      | worker      | standby     | worker  | standby | default | -       |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | yes    | info   |          |        |         0 |         1 | default  | default  | master 3   | master     | standby     | master      | standby | worker  | default | default |
      
    4. Avsluta återigen namnservern på den aktiva huvudnoden (det vill: på noden hanadb3).

      hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB kill
      

      Nod hanadb1 återupptar rollen som huvudnod. När redundanstestet har slutförts ser statusen ut så här:

      # Check the instance status
      sapcontrol -nr 03  -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY
      
      # Check the landscape status
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker  | worker  | default | default |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | no     | ignore |          |        |         0 |         0 | default  | default  | master 3   | slave      | standby     | standby     | standby | standby | default | -       |
      
    5. Starta SAP HANA på hanadb3, som är redo att fungera som en väntelägesnod.

      hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB start
      

      När SAP HANA har startat på hanadb3 ser statusen ut så här:

      # Check the instance status
      sapcontrol -nr 03  -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      GetSystemInstanceList
      OK
      hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
      hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
      hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY
      # Check the landscape status
      python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py
      | Host    | Host   | Host   | Failover | Remove | Storage   | Storage   | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host    | Host    | Worker  | Worker  |
      |         | Active | Status | Status   | Status | Config    | Actual    | Config   | Actual   | Config     | Actual     | Config      | Actual      | Config  | Actual  | Config  | Actual  |
      |         |        |        |          |        | Partition | Partition | Group    | Group    | Role       | Role       | Role        | Role        | Roles   | Roles   | Groups  | Groups  |
      | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- |
      | hanadb1 | yes    | ok     |          |        |         1 |         1 | default  | default  | master 1   | master     | worker      | master      | worker  | worker  | default | default |
      | hanadb2 | yes    | ok     |          |        |         2 |         2 | default  | default  | master 2   | slave      | worker      | slave       | worker  | worker  | default | default |
      | hanadb3 | no     | ignore |          |        |         0 |         0 | default  | default  | master 3   | slave      | standby     | standby     | standby | standby | default | -       |
      

Nästa steg