Vysoká dostupnost systému souborů NFS na virtuálních počítačích Azure na serveru SUSE Linux Enterprise Server

Poznámka:

Pro ukládání sdílených dat do vysoce dostupného systému SAP doporučujeme nasadit jednu ze služeb NFS první strany: NFS na svazcích Azure Files nebo NFS ANF. Mějte na paměti, že s využitím clusterů NFS de-emphasizujeme referenční architektury SAP.

Tento článek popisuje, jak nasadit virtuální počítače, nakonfigurovat virtuální počítače, nainstalovat architekturu clusteru a nainstalovat server NFS s vysokou dostupností, který se dá použít k ukládání sdílených dat systému SAP s vysokou dostupností. Tato příručka popisuje, jak nastavit server NFS s vysokou dostupností, který používají dva systémy SAP, NW1 a NW2. Názvy prostředků (například virtuálních počítačů, virtuálních sítí) v příkladu předpokládají, že jste použili šablonu souborového serveru SAP s předponou prostředků.

Poznámka:

Tento článek obsahuje odkazy na termíny, které už Microsoft nepoužívá. Po odebrání podmínek ze softwaru je z tohoto článku odebereme.

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

Přehled

K dosažení vysoké dostupnosti vyžaduje SAP NetWeaver server NFS. Server NFS je nakonfigurovaný v samostatném clusteru a může ho používat několik systémů SAP.

SAP NetWeaver High Availability overview

Server NFS používá vyhrazený název virtuálního hostitele a virtuální IP adresy pro každý systém SAP, který používá tento server NFS. V Azure se k použití virtuální IP adresy vyžaduje nástroj pro vyrovnávání zatížení. Zobrazená konfigurace ukazuje nástroj pro vyrovnávání zatížení s:

  • IP adresa front-endu 10.0.0.4 pro NW1
  • IP adresa front-endu 10.0.0.5 pro NW2
  • Port sondy 61000 pro NW1
  • Port sondy 61001 pro NW2

Nastavení serveru NFS s vysokou dostupností

Ruční nasazení Linuxu přes Azure Portal

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

Nasaďte dva virtuální počítače pro servery NFS. Zvolte vhodnou image SLES, která je podporována ve vašem systému SAP. Virtuální počítač můžete nasadit v libovolné z možností dostupnosti – škálovací sada, zóna dostupnosti nebo skupina dostupnosti.

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

Postupujte podle průvodce vytvořením nástroje pro vyrovnávání zatížení a nakonfigurujte standardní nástroj pro vyrovnávání zatížení pro vysokou dostupnost serveru NFS. Při konfiguraci nástroje pro vyrovnávání zatížení zvažte následující body.

  1. Konfigurace front-endové IP adresy: Vytvořte dvě front-endové IP adresy. Vyberte stejnou virtuální síť a podsíť jako server NFS.
  2. Back-endový fond: Vytvořte back-endový fond a přidejte virtuální počítače serveru NFS.
  3. Příchozí pravidla: Vytvořte dvě pravidlo vyrovnávání zatížení, jedno pro NW1 a druhé pro NW2. Pro obě pravidla vyrovnávání zatížení postupujte stejně.
    • IP adresa front-endu: Vyberte ip adresu front-endu.
    • Back-endový fond: Vyberte back-endový fond.
    • Zkontrolujte porty s vysokou dostupností.
    • Protokol: TCP
    • Sonda stavu: Vytvořte sondu stavu s následujícími podrobnostmi (platí pro NW1 i NW2).
      • Protokol: TCP
      • Port: [například: 61000 pro NW1, 61001 pro NW2]
      • Interval: 5
      • Prahová hodnota sondy: 2
    • Časový limit nečinnosti (minuty): 30
    • Zaškrtněte políčko Povolit plovoucí IP adresu.

Poznámka:

Číslo vlastnosti konfigurace sondy stavuOfProbes, jinak označované jako "Prahová hodnota není v pořádku" na portálu, se nerespektuje. Chcete-li tedy řídit počet úspěšných nebo neúspěšných po sobě jdoucích sond, nastavte vlastnost probeThreshold na hodnotu 2. V současné době není možné tuto vlastnost nastavit pomocí webu Azure Portal, takže použijte příkaz Azure CLI nebo PowerShell .

Důležité

Plovoucí IP adresa není podporována v konfiguraci sekundární IP adresy síťové karty ve scénářích vyrovnávání zatížení. Podrobnosti najdete v tématu Omezení nástroje pro vyrovnávání zatížení Azure. Pokud potřebujete další IP adresu pro virtuální počítač, nasaďte druhou síťovou kartu.

Poznámka:

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

Důležité

  • Nepovolujte na virtuálních počítačích Azure umístěných za Azure Load Balancerem časové razítko TCP. Povolení časových razítek PROTOKOLU TCP způsobí selhání sond stavu. Nastavte parametr na net.ipv4.tcp_timestamps0. Podrobnosti najdete v sondách stavu Load Balanceru.
  • Pokud chcete zabránit tomu, aby saptune měnil hodnotu ručně nastavenou net.ipv4.tcp_timestamps zpět 0 na 1, měli byste aktualizovat verzi saptune na verzi 3.1.1 nebo vyšší. Další podrobnosti najdete v tématu saptune 3.1.1 – Musím aktualizovat?.

Vytvoření clusteru Pacemaker

Postupujte podle kroků v nastavení Pacemakeru na SUSE Linux Enterprise Serveru v Azure a vytvořte základní cluster Pacemaker pro tento server NFS.

Konfigurace serveru NFS

Následující položky mají předponu [A] – platí pro všechny uzly, [1] – platí pouze pro uzel 1 nebo [2] – platí pouze pro uzel 2.

  1. [A] Nastavení překladu názvů hostitelů

    Můžete použít server DNS nebo upravit /etc/hosts na všech uzlech. Tento příklad ukazuje, jak používat soubor /etc/hosts. Nahraďte IP adresu a název hostitele v následujících příkazech.

    sudo vi /etc/hosts
    

    Do /etc/hosts vložte následující řádky. Změňte IP adresu a název hostitele tak, aby odpovídaly vašemu prostředí.

    # IP address of the load balancer frontend configuration for NFS
    
    10.0.0.4 nw1-nfs
    10.0.0.5 nw2-nfs
    
  2. [A] Povolení serveru NFS

    Vytvoření položky exportu kořenového systému souborů NFS

    sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports'
    
    sudo mkdir /srv/nfs/
    
  3. [A] Instalace komponent drbd

    sudo zypper install drbd drbd-kmp-default drbd-utils
    
  4. [A] Vytvoření oddílu pro zařízení drbd

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

    sudo ls /dev/disk/azure/scsi1/
    
    # Example output
    # lun0  lun1
    

    Vytváření oddílů pro každý datový disk

    sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun0'
    sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun1'
    
  5. [A] Vytvoření konfigurací LVM

    Výpis všech dostupných oddílů

    ls /dev/disk/azure/scsi1/lun*-part*
    
    # Example output
    # /dev/disk/azure/scsi1/lun0-part1  /dev/disk/azure/scsi1/lun1-part1
    

    Vytvoření svazků LVM pro každý oddíl

    sudo pvcreate /dev/disk/azure/scsi1/lun0-part1
    sudo vgcreate vg-NW1-NFS /dev/disk/azure/scsi1/lun0-part1
    sudo lvcreate -l 100%FREE -n NW1 vg-NW1-NFS
    
    sudo pvcreate /dev/disk/azure/scsi1/lun1-part1
    sudo vgcreate vg-NW2-NFS /dev/disk/azure/scsi1/lun1-part1
    sudo lvcreate -l 100%FREE -n NW2 vg-NW2-NFS
    
  6. [A] Konfigurace nástroje drbd

    sudo vi /etc/drbd.conf
    

    Ujistěte se, že soubor drbd.conf obsahuje následující dva řádky.

    include "drbd.d/global_common.conf";
    include "drbd.d/*.res";
    

    Změna globální konfigurace drbd

    sudo vi /etc/drbd.d/global_common.conf
    

    Do obslužné rutiny a oddílu net přidejte následující položky.

    global {
         usage-count no;
    }
    common {
         handlers {
              fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh";
              after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh";
              split-brain "/usr/lib/drbd/notify-split-brain.sh root";
              pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
         }
         startup {
              wfc-timeout 0;
         }
         options {
         }
         disk {
              md-flushes yes;
              disk-flushes yes;
              c-plan-ahead 1;
              c-min-rate 100M;
              c-fill-target 20M;
              c-max-rate 4G;
         }
         net {
              after-sb-0pri discard-younger-primary;
              after-sb-1pri discard-secondary;
              after-sb-2pri call-pri-lost-after-sb;
              protocol     C;
              tcp-cork yes;
              max-buffers 20000;
              max-epoch-size 20000;
              sndbuf-size 0;
              rcvbuf-size 0;
         }
    }
    
  7. [A] Vytvoření zařízení drbd systému souborů NFS

    sudo vi /etc/drbd.d/NW1-nfs.res
    

    Vložte konfiguraci pro nové zařízení drbd a ukončete

    resource NW1-nfs {
         protocol     C;
         disk {
              on-io-error       detach;
         }
         net {
             fencing  resource-and-stonith;  
         }
         on prod-nfs-0 {
              address   10.0.0.6:7790;
              device    /dev/drbd0;
              disk      /dev/vg-NW1-NFS/NW1;
              meta-disk internal;
         }
         on prod-nfs-1 {
              address   10.0.0.7:7790;
              device    /dev/drbd0;
              disk      /dev/vg-NW1-NFS/NW1;
              meta-disk internal;
         }
    }
    
    sudo vi /etc/drbd.d/NW2-nfs.res
    

    Vložte konfiguraci pro nové zařízení drbd a ukončete

    resource NW2-nfs {
         protocol     C;
         disk {
              on-io-error       detach;
         }
         net {
             fencing  resource-and-stonith;  
         }
         on prod-nfs-0 {
              address   10.0.0.6:7791;
              device    /dev/drbd1;
              disk      /dev/vg-NW2-NFS/NW2;
              meta-disk internal;
         }
         on prod-nfs-1 {
              address   10.0.0.7:7791;
              device    /dev/drbd1;
              disk      /dev/vg-NW2-NFS/NW2;
              meta-disk internal;
         }
    }
    

    Vytvořte zařízení drbd a spusťte ho.

    sudo drbdadm create-md NW1-nfs
    sudo drbdadm create-md NW2-nfs
    sudo drbdadm up NW1-nfs
    sudo drbdadm up NW2-nfs
    
  8. [1] Přeskočení počáteční synchronizace

    sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs
    sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
    
  9. [1] Nastavení primárního uzlu

    sudo drbdadm primary --force NW1-nfs
    sudo drbdadm primary --force NW2-nfs
    
  10. [1] Počkejte na synchronizaci nových zařízení drbd.

    sudo drbdsetup wait-sync-resource NW1-nfs
    sudo drbdsetup wait-sync-resource NW2-nfs
    
  11. [1] Vytvoření systémů souborů na zařízeních drbd

    sudo mkfs.xfs /dev/drbd0
    sudo mkdir /srv/nfs/NW1
    sudo chattr +i /srv/nfs/NW1
    sudo mount -t xfs /dev/drbd0 /srv/nfs/NW1
    sudo mkdir /srv/nfs/NW1/sidsys
    sudo mkdir /srv/nfs/NW1/sapmntsid
    sudo mkdir /srv/nfs/NW1/trans
    sudo mkdir /srv/nfs/NW1/ASCS
    sudo mkdir /srv/nfs/NW1/ASCSERS
    sudo mkdir /srv/nfs/NW1/SCS
    sudo mkdir /srv/nfs/NW1/SCSERS
    sudo umount /srv/nfs/NW1
    
    sudo mkfs.xfs /dev/drbd1
    sudo mkdir /srv/nfs/NW2
    sudo chattr +i /srv/nfs/NW2
    sudo mount -t xfs /dev/drbd1 /srv/nfs/NW2
    sudo mkdir /srv/nfs/NW2/sidsys
    sudo mkdir /srv/nfs/NW2/sapmntsid
    sudo mkdir /srv/nfs/NW2/trans
    sudo mkdir /srv/nfs/NW2/ASCS
    sudo mkdir /srv/nfs/NW2/ASCSERS
    sudo mkdir /srv/nfs/NW2/SCS
    sudo mkdir /srv/nfs/NW2/SCSERS
    sudo umount /srv/nfs/NW2
    
  12. [A] Nastavení drbd split-brain detection

    Pokud k synchronizaci dat z jednoho hostitele do druhého používáte drbd, může dojít k tzv. rozdělení mozku. Rozdělený mozek je scénář, kdy oba uzly clusteru propagovaly drbd zařízení jako primární a nesynchronizují se. Může to být vzácná situace, ale přesto chcete zvládnout a vyřešit rozdělený mozek co nejrychleji. Proto je důležité upozornit, když došlo k rozdělení mozku.

    Přečtěte si oficiální dokumentaci drbd o tom, jak nastavit rozdělené oznámení mozku.

    Je také možné se automaticky zotavit z rozděleného mozku scénáře. Další informace najdete v tématu Automatické rozdělení zásad obnovení mozku

Konfigurace architektury clusteru

  1. [1] Přidejte zařízení systému souborů NFS pro systém SAP NW1 do konfigurace clusteru.

    Důležité

    Nedávné testování odhalilo situace, kdy netcat přestane reagovat na požadavky kvůli backlogu a jeho omezení zpracování pouze jednoho připojení. Prostředek netcat přestane naslouchat požadavkům azure Load Balanceru a plovoucí IP adresa přestane být k dispozici.
    Pro stávající clustery Pacemaker doporučujeme v minulosti nahradit netcat socat. V současné době doporučujeme používat agenta prostředků azure-lb, který je součástí agentů prostředků balíčku s následujícími požadavky na verzi balíčku:

    • Pro SLES 12 SP4/SP5 musí být verze alespoň resource-agents-4.3.018.a7fb5035-3.30.1.
    • Pro SLES 15/15 SP1 musí být verze alespoň resource-agents-4.3.0184.6ee15eb2-4.13.1.

    Upozorňujeme, že změna bude vyžadovat krátký výpadek.
    Pokud už konfigurace pro existující clustery Pacemaker změnila na použití socat, jak je popsáno v posílení zabezpečení detekce Nástroje pro vyrovnávání zatížení Azure, není nutné okamžitě přepnout na agenta prostředků azure-lb.

    sudo crm configure rsc_defaults resource-stickiness="200"
    
    # Enable maintenance mode
    sudo crm configure property maintenance-mode=true
    
    sudo crm configure primitive drbd_NW1_nfs \
      ocf:linbit:drbd \
      params drbd_resource="NW1-nfs" \
      op monitor interval="15" role="Master" \
      op monitor interval="30" role="Slave"
    
    sudo crm configure ms ms-drbd_NW1_nfs drbd_NW1_nfs \
      meta master-max="1" master-node-max="1" clone-max="2" \
      clone-node-max="1" notify="true" interleave="true"
    
    sudo crm configure primitive fs_NW1_sapmnt \
      ocf:heartbeat:Filesystem \
      params device=/dev/drbd0 \
      directory=/srv/nfs/NW1  \
      fstype=xfs \
      op monitor interval="10s"
    
    sudo crm configure primitive nfsserver systemd:nfs-server \
      op monitor interval="30s"
    sudo crm configure clone cl-nfsserver nfsserver
    
    sudo crm configure primitive exportfs_NW1 \
      ocf:heartbeat:exportfs \
      params directory="/srv/nfs/NW1" \
      options="rw,no_root_squash,crossmnt" clientspec="*" fsid=1 wait_for_leasetime_on_stop=true op monitor interval="30s"
    
    sudo crm configure primitive vip_NW1_nfs IPaddr2 \
      params ip=10.0.0.4 op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_nfs azure-lb port=61000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_nfs \
      fs_NW1_sapmnt exportfs_NW1 nc_NW1_nfs vip_NW1_nfs
    
    sudo crm configure order o-NW1_drbd_before_nfs inf: \
      ms-drbd_NW1_nfs:promote g-NW1_nfs:start
    
    sudo crm configure colocation col-NW1_nfs_on_drbd inf: \
      g-NW1_nfs ms-drbd_NW1_nfs:Master
    
  2. [1] Přidání zařízení systému souborů NFS pro systém SAP NW2 do konfigurace clusteru

    # Enable maintenance mode
    sudo crm configure property maintenance-mode=true
    
    sudo crm configure primitive drbd_NW2_nfs \
      ocf:linbit:drbd \
      params drbd_resource="NW2-nfs" \
      op monitor interval="15" role="Master" \
      op monitor interval="30" role="Slave"
    
    sudo crm configure ms ms-drbd_NW2_nfs drbd_NW2_nfs \
      meta master-max="1" master-node-max="1" clone-max="2" \
      clone-node-max="1" notify="true" interleave="true"
    
    sudo crm configure primitive fs_NW2_sapmnt \
      ocf:heartbeat:Filesystem \
      params device=/dev/drbd1 \
      directory=/srv/nfs/NW2  \
      fstype=xfs \
      op monitor interval="10s"
    
    sudo crm configure primitive exportfs_NW2 \
      ocf:heartbeat:exportfs \
      params directory="/srv/nfs/NW2" \
      options="rw,no_root_squash,crossmnt" clientspec="*" fsid=2 wait_for_leasetime_on_stop=true op monitor interval="30s"
    
    sudo crm configure primitive vip_NW2_nfs IPaddr2 \
      params ip=10.0.0.5 op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW2_nfs azure-lb port=61001 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW2_nfs \
      fs_NW2_sapmnt exportfs_NW2 nc_NW2_nfs vip_NW2_nfs
    
    sudo crm configure order o-NW2_drbd_before_nfs inf: \
      ms-drbd_NW2_nfs:promote g-NW2_nfs:start
    
    sudo crm configure colocation col-NW2_nfs_on_drbd inf: \
      g-NW2_nfs ms-drbd_NW2_nfs:Master
    

    Možnost crossmnt v prostředcích clusteru exportfs je k dispozici v naší dokumentaci pro zpětnou kompatibilitu se staršími verzemi SLES.

  3. [1] Zakázat režim údržby

    sudo crm configure property maintenance-mode=false
    

Další kroky