Magas rendelkezésre állás az NFS-hez azure-beli virtuális gépeken su-n Standard kiadás Linux Enterprise Serveren

Feljegyzés

Javasoljuk, hogy telepítse az Egyik Azure-beli, belső NFS-szolgáltatást: az NFS-t az Azure Filesban vagy az NFS ANF-köteteket a megosztott adatok magas rendelkezésre állású SAP-rendszerben való tárolásához. Vegye figyelembe, hogy az NFS-fürtök használatával megszüntetjük az SAP referenciaarchitektúráit.

Ez a cikk bemutatja, hogyan helyezheti üzembe a virtuális gépeket, konfigurálhatja a virtuális gépeket, telepítheti a fürt keretrendszerét, és telepíthet egy magas rendelkezésre állású NFS-kiszolgálót, amely egy magas rendelkezésre állású SAP-rendszer megosztott adatainak tárolására használható. Ez az útmutató bemutatja, hogyan állíthat be magas rendelkezésre állású NFS-kiszolgálót, amelyet két SAP-rendszer, az NW1 és az NW2 használ. A példában szereplő erőforrások (például virtuális gépek, virtuális hálózatok) neve feltételezi, hogy az SAP-fájlkiszolgáló sablonját prod erőforrás-előtaggal használta.

Feljegyzés

Ez a cikk a Microsoft által már nem használt kifejezésekre mutató hivatkozásokat tartalmaz. Ha eltávolítja a feltételeket a szoftverből, eltávolítjuk őket ebből a cikkből.

Először olvassa el az alábbi SAP-jegyzeteket és -dokumentumokat

Áttekintés

A magas rendelkezésre állás eléréséhez az SAP NetWeavernek NFS-kiszolgálóra van szüksége. Az NFS-kiszolgáló egy külön fürtben van konfigurálva, és több SAP-rendszer is használhatja.

SAP NetWeaver High Availability overview

Az NFS-kiszolgáló dedikált virtuális gazdagépnevet és virtuális IP-címeket használ minden olyan SAP-rendszerhez, amely ezt az NFS-kiszolgálót használja. Az Azure-ban a virtuális IP-cím használatához terheléselosztó szükséges. A bemutatott konfiguráció egy terheléselosztót jelenít meg a következőkkel:

  • Előtérbeli IP-cím 10.0.0.4 NW1 esetén
  • Előtérbeli IP-cím 10.0.0.5 NW2 esetén
  • 61000-s mintavételi port az NW1-hez
  • Mintavételi port 61001 az NW2-hez

Magas rendelkezésre állású NFS-kiszolgáló beállítása

Linux manuális üzembe helyezése az Azure Portalon

Ez a dokumentum feltételezi, hogy már üzembe helyezett egy erőforráscsoportot, az Azure Virtual Networket és az alhálózatot.

Két virtuális gép üzembe helyezése NFS-kiszolgálókhoz. Válasszon egy megfelelő SLES-rendszerképet, amelyet az SAP-rendszer támogat. A virtuális gépet a rendelkezésre állási lehetőségek bármelyikében üzembe helyezheti – méretezési csoportban, rendelkezésre állási zónában vagy rendelkezésre állási csoportban.

Az Azure Load Balancer konfigurálása

A magas rendelkezésre állású NFS-kiszolgáló szabványos terheléselosztójának konfigurálásához kövesse a terheléselosztó létrehozását ismertető útmutatót. A terheléselosztó konfigurálása során fontolja meg a következő pontokat.

  1. Előtérbeli IP-konfiguráció: Hozzon létre két előtérbeli IP-címet. Válassza ki ugyanazt a virtuális hálózatot és alhálózatot, mint az NFS-kiszolgáló.
  2. Háttérkészlet: Hozzon létre háttérkészletet, és vegyen fel NFS-kiszolgálói virtuális gépeket.
  3. Bejövő szabályok: Hozzon létre két terheléselosztási szabályt, egyet az NW1-hez, egyet pedig az NW2-hez. Kövesse ugyanazokat a lépéseket mindkét terheléselosztási szabály esetében.
    • Előtérbeli IP-cím: Előtérbeli IP-cím kiválasztása
    • Háttérkészlet: Háttérkészlet kiválasztása
    • Ellenőrizze a "Magas rendelkezésre állású portok" jelölőnégyzetet
    • Protokoll: TCP
    • Állapotadat-mintavétel: Állapotminta létrehozása az alábbi részletekkel (az NW1 és az NW2 esetében egyaránt érvényes)
      • Protokoll: TCP
      • Port: [például: 61000 az NW1-hez, 61001 az NW2-hez]
      • Intervallum: 5
      • Mintavétel küszöbértéke: 2
    • Tétlen időtúllépés (perc): 30
    • Jelölje be a "Lebegő IP-cím engedélyezése" jelölőnégyzetet

Feljegyzés

Az állapotadat-mintavétel konfigurációs tulajdonsága, azOfProbes, más néven "Nem kifogástalan küszöbérték" a Portálon nem lesz tiszteletben tartva. A sikeres vagy sikertelen egymást követő mintavételek számának szabályozásához állítsa a "probeThreshold" tulajdonságot 2-re. Ezt a tulajdonságot jelenleg nem lehet beállítani az Azure Portalon, ezért használja az Azure CLI vagy a PowerShell parancsot.

Fontos

A lebegő IP-cím nem támogatott a hálózati adapter másodlagos IP-konfigurációjában terheléselosztási forgatókönyvekben. További részletekért lásd az Azure Load Balancer korlátozásait. Ha további IP-címre van szüksége a virtuális géphez, telepítsen egy második hálózati adaptert.

Feljegyzés

Ha a nyilvános IP-címmel nem rendelkező virtuális gépek a standard Azure-terheléselosztó belső (nyilvános IP-cím nélküli) háttérkészletébe kerülnek, nem lesz kimenő internetkapcsolat, kivéve, ha további konfigurációt végeznek a nyilvános végpontokhoz való útválasztás engedélyezéséhez. A kimenő kapcsolatok elérésével kapcsolatos részletekért tekintse meg az Azure Standard Load Balancert használó virtuális gépek nyilvános végpontkapcsolatait az SAP magas rendelkezésre állású forgatókönyveiben.

Fontos

  • Ne engedélyezze az Azure Load Balancer mögött elhelyezett Azure-beli virtuális gépeken a TCP-időbélyegeket. A TCP-időbélyegek engedélyezése az állapotminták sikertelenségéhez vezet. Állítsa be a paramétert net.ipv4.tcp_timestamps a következőre 0: . További részletekért lásd a Load Balancer állapotmintáit.
  • Ha meg szeretné akadályozni, hogy a Saptune a manuálisan beállított net.ipv4.tcp_timestamps értéket 0 visszafelé 1módosítsa, frissítse a Saptune 3.1.1-es vagy újabb verzióját. További részletekért lásd: saptune 3.1.1 – Frissíteni kell?.

Pacemaker-fürt létrehozása

Az NFS-kiszolgáló alapszintű Pacemaker-fürtjének létrehozásához kövesse a Pacemaker su Standard kiadás Linux Enterprise Serveren való beállításának lépéseit az Azure-ban.

NFS-kiszolgáló konfigurálása

A következő elemek előtagja vagy [A] – az összes csomópontra érvényes, [1] – csak az 1. vagy a [2] csomópontra alkalmazható – csak a 2. csomópontra vonatkozik.

  1. [A] Állomásnévfeloldás beállítása

    Használhat DNS-kiszolgálót, vagy módosíthatja az /etc/hosts elemet az összes csomóponton. Ez a példa a /etc/hosts fájl használatát mutatja be. Cserélje le az IP-címet és a gazdagépnevet a következő parancsokban

    sudo vi /etc/hosts
    

    Szúrja be a következő sorokat a /etc/hosts fájlba. Az IP-cím és a gazdagépnév módosítása a környezetnek megfelelően

    # IP address of the load balancer frontend configuration for NFS
    
    10.0.0.4 nw1-nfs
    10.0.0.5 nw2-nfs
    
  2. [A] NFS-kiszolgáló engedélyezése

    A gyökér NFS-exportálási bejegyzés létrehozása

    sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports'
    
    sudo mkdir /srv/nfs/
    
  3. [A] Drbd-összetevők telepítése

    sudo zypper install drbd drbd-kmp-default drbd-utils
    
  4. [A] Partíció létrehozása a drbd-eszközökhöz

    Az összes elérhető adatlemez listázása

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

    Partíciók létrehozása minden adatlemezhez

    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] LVM-konfigurációk létrehozása

    Az összes elérhető partíció listázása

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

    LVM-kötetek létrehozása minden partícióhoz

    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] A drbd konfigurálása

    sudo vi /etc/drbd.conf
    

    Győződjön meg arról, hogy a drbd.conf fájl a következő két sort tartalmazza

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

    A globális drbd-konfiguráció módosítása

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

    Adja hozzá a következő bejegyzéseket a kezelőhöz és a net szakaszhoz.

    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] Az NFS drbd-eszközök létrehozása

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

    Az új drbd-eszköz konfigurációjának beszúrása és kilépés

    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
    

    Az új drbd-eszköz konfigurációjának beszúrása és kilépés

    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;
         }
    }
    

    A drbd-eszköz létrehozása és elindítása

    sudo drbdadm create-md NW1-nfs
    sudo drbdadm create-md NW2-nfs
    sudo drbdadm up NW1-nfs
    sudo drbdadm up NW2-nfs
    
  8. [1] A kezdeti szinkronizálás kihagyása

    sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs
    sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
    
  9. [1] Az elsődleges csomópont beállítása

    sudo drbdadm primary --force NW1-nfs
    sudo drbdadm primary --force NW2-nfs
    
  10. [1] Várjon, amíg az új drbd-eszközök szinkronizálódnak

    sudo drbdsetup wait-sync-resource NW1-nfs
    sudo drbdsetup wait-sync-resource NW2-nfs
    
  11. [1] Fájlrendszerek létrehozása a drbd-eszközökön

    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] Drbd split-brain detektálása

    Ha drbd használatával szinkronizálja az adatokat az egyik gazdagépről a másikra, az úgynevezett osztott agy fordulhat elő. Az osztott agy olyan forgatókönyv, amelyben mindkét fürtcsomópont előléptette a drbd-eszközt elsődlegesként, és kiment a szinkronizálásból. Lehet, hogy egy ritka helyzet, de még mindig szeretné kezelni és megoldani egy osztott agy, amilyen gyorsan csak lehetséges. Ezért fontos, hogy értesítést kapjon, ha egy hasadt agy történt.

    Olvassa el a drbd hivatalos dokumentációját arról, hogyan állíthat be osztott agyi értesítést.

    A felosztott agyi forgatókönyvből is automatikusan helyreállhat. További információ: Automatikus felosztási agy-helyreállítási szabályzatok

Fürt keretrendszerének konfigurálása

  1. [1] Adja hozzá az NFS-drbd-eszközöket az SAP system NW1-hez a fürtkonfigurációhoz

    Fontos

    A legutóbbi tesztelés olyan helyzeteket tárt fel, amikor a netcat nem válaszol a kérelmekre a hátralék miatt, és csak egy kapcsolat kezelésére vonatkozó korlátozása miatt. A netcat-erőforrás nem figyeli az Azure Load Balancer-kérelmeket, és a lebegő IP-cím elérhetetlenné válik.
    A meglévő Pacemaker-fürtök esetében azt javasoljuk, hogy a netcatet cserélje le a socatre. Jelenleg az azure-lb erőforrásügynök használatát javasoljuk, amely a csomagerőforrás-ügynökök része, és a következő csomagverzió-követelményekkel:

    • Az SLES 12 SP4/SP5 esetén a verziónak legalább resource-agents-4.3.018.a7fb5035-3.30.1 verziónak kell lennie.
    • Az SLES 15/15 SP1 esetén a verziónak legalább resource-agents-4.3.0184.6ee15eb2-4.13.1 verziónak kell lennie.

    Vegye figyelembe, hogy a módosítás rövid állásidőt igényel.
    Meglévő Pacemaker-fürtök esetében, ha a konfigurációt már módosították az Azure Load-Balancer Detection Hardeningben leírt socat használatára, nincs szükség arra, hogy azonnal átváltson az Azure-lb erőforrás-ügynökre.

    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] Adja hozzá az NFS drbd-eszközöket az SAP system NW2-hez a fürtkonfigurációhoz

    # 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
    

    A crossmnt fürterőforrásokban található lehetőség megtalálható a exportfs dokumentációban a régebbi SLES-verziókkal való visszamenőleges kompatibilitás érdekében.

  3. [1] Karbantartási mód letiltása

    sudo crm configure property maintenance-mode=false
    

Következő lépések