Hög tillgänglighet för NFS på virtuella Azure-datorer på SUSE Linux Enterprise Server
Kommentar
Vi rekommenderar att du distribuerar en av Azures NFS-tjänster från första part: NFS på Azure Files - eller NFS ANF-volymer för lagring av delade data i ett SAP-system med hög tillgänglighet. Tänk på att vi de-betonar SAP-referensarkitekturer och använder NFS-kluster.
Den här artikeln beskriver hur du distribuerar de virtuella datorerna, konfigurerar de virtuella datorerna, installerar klusterramverket och installerar en NFS-server med hög tillgänglighet som kan användas för att lagra delade data i ett SAP-system med hög tillgänglighet. Den här guiden beskriver hur du konfigurerar en NFS-server med hög tillgänglighet som används av två SAP-system, NW1 och NW2. Namnen på resurserna (till exempel virtuella datorer, virtuella nätverk) i exemplet förutsätter att du har använt SAP-filservermallen med resursprefixet prod.
Kommentar
Den här artikeln innehåller referenser till termer som Microsoft inte längre använder. När villkoren tas bort från programvaran tar vi bort dem från den här artikeln.
Läs följande SAP-anteckningar och dokument först
SAP Note 1928533, som har:
- Lista över storlekar på virtuella Azure-datorer som stöds för distribution av SAP-programvara
- Viktig kapacitetsinformation för vm-storlekar i Azure
- SAP-programvara och kombinationer av operativsystem (OS) och databaser som stöds
- Nödvändig SAP-kernelversion för Windows och Linux på Microsoft Azure
SAP Note 2015553 listar krav för SAP-programdistributioner som stöds i Azure.
SAP Obs 2205917 har rekommenderade os-inställningar för SUSE Linux Enterprise Server för SAP-program
SAP Note 1944799 har SAP HANA-riktlinjer för SUSE Linux Enterprise Server för SAP-program
SAP Note 2178632 innehåller detaljerad information om alla övervakningsmått som rapporterats för SAP i Azure.
SAP Note 2191498 har den sap-värdagentversion som krävs för Linux i Azure.
SAP Note 2243692 har information om SAP-licensiering på Linux i Azure.
SAP Note 1984787 har allmän information om SUSE Linux Enterprise Server 12.
SAP Note 1999351 har ytterligare felsökningsinformation för Azure Enhanced Monitoring Extension för SAP.
SAP Community WIKI har alla nödvändiga SAP-anteckningar för Linux.
Planering och implementering av Azure Virtual Machines för SAP i Linux
Azure Virtual Machines-distribution för SAP på Linux (den här artikeln)
Metodguider för SUSE Linux Enterprise Server för SAP Applications 12 SP5
Viktig information om SUSE Linux Enterprise Server för SAP Applications 12 SP5
Översikt
För att uppnå hög tillgänglighet kräver SAP NetWeaver en NFS-server. NFS-servern konfigureras i ett separat kluster och kan användas av flera SAP-system.
NFS-servern använder ett dedikerat virtuellt värdnamn och virtuella IP-adresser för varje SAP-system som använder den här NFS-servern. I Azure krävs en lastbalanserare för att använda en virtuell IP-adress. Den presenterade konfigurationen visar en lastbalanserare med:
- Klientdelens IP-adress 10.0.0.4 för NW1
- Klientdelens IP-adress 10.0.0.5 för NW2
- Avsökningsport 61000 för NW1
- Avsökningsport 61001 för NW2
Konfigurera en NFS-server med hög tillgänglighet
Distribuera Linux manuellt via Azure Portal
Det här dokumentet förutsätter att du redan har distribuerat en resursgrupp, Azure Virtual Network och undernät.
Distribuera två virtuella datorer för NFS-servrar. Välj en lämplig SLES-avbildning som stöds med ditt SAP-system. Du kan distribuera en virtuell dator i något av tillgänglighetsalternativen – skalningsuppsättning, tillgänglighetszon eller tillgänglighetsuppsättning.
Konfigurera Azure-lastbalanserare
Följ guiden skapa lastbalanserare för att konfigurera en standardlastbalanserare för en NFS-server med hög tillgänglighet. Under konfigurationen av lastbalanseraren bör du överväga följande punkter.
- IP-konfiguration för klientdelen: Skapa två klientdels-IP-adresser. Välj samma virtuella nätverk och undernät som NFS-servern.
- Serverdelspool: Skapa serverdelspool och lägg till virtuella NFS-serverdatorer.
- Regler för inkommande trafik: Skapa två belastningsutjämningsregler, en för NW1 och en annan för NW2. Följ samma steg för båda belastningsutjämningsreglerna.
- Klientdels-IP-adress: Välj klientdels-IP
- Serverdelspool: Välj serverdelspool
- Kontrollera "Portar med hög tillgänglighet"
- Protokoll: TCP
- Hälsoavsökning: Skapa hälsoavsökning med information nedan (gäller för både NW1 och NW2)
- Protokoll: TCP
- Port: [till exempel: 61000 för NW1, 61001 för NW2]
- Intervall: 5
- Tröskelvärde för avsökning: 2
- Tidsgräns för inaktivitet (minuter): 30
- Kontrollera "Aktivera flytande IP"
Kommentar
Egenskapsnummer för hälsoavsökningskonfigurationOfProbes, även kallat "Tröskelvärde för feltillstånd" i portalen, respekteras inte. Så om du vill kontrollera antalet lyckade eller misslyckade efterföljande avsökningar anger du egenskapen "probeThreshold" till 2. Det går för närvarande inte att ange den här egenskapen med hjälp av Azure Portal, så använd antingen Azure CLI- eller PowerShell-kommandot.
Kommentar
När virtuella datorer utan offentliga IP-adresser placeras i serverdelspoolen för intern (ingen offentlig IP-adress) Standard Azure-lastbalanserare, kommer det inte att finnas någon utgående Internetanslutning, såvida inte ytterligare konfiguration utförs för att tillåta routning till offentliga slutpunkter. Mer information om hur du uppnår utgående anslutning finns i Offentlig slutpunktsanslutning för virtuella datorer med Azure Standard Load Balancer i SAP-scenarier med hög tillgänglighet.
Viktigt!
- Aktivera inte TCP-tidsstämplar på virtuella Azure-datorer som placeras bakom Azure Load Balancer. Om du aktiverar TCP-tidsstämplar misslyckas hälsoavsökningarna. Ange parametern
net.ipv4.tcp_timestamps
till0
. Mer information finns i Load Balancer-hälsoavsökningar. - Om du vill förhindra att saptune ändrar det manuellt inställda
net.ipv4.tcp_timestamps
värdet från0
tillbaka till1
bör du uppdatera saptune-versionen till 3.1.1 eller senare. Mer information finns i saptune 3.1.1 – Behöver jag uppdatera?.
Skapa Pacemaker-kluster
Följ stegen i Konfigurera Pacemaker på SUSE Linux Enterprise Server i Azure för att skapa ett grundläggande Pacemaker-kluster för den här NFS-servern.
Konfigurera NFS-server
Följande objekt är prefix med antingen [A] – gäller för alla noder, [1] – endast tillämpligt för nod 1 eller [2] – som endast gäller för nod 2.
[A] Konfigurera värdnamnsmatchning
Du kan antingen använda en DNS-server eller ändra /etc/hosts på alla noder. Det här exemplet visar hur du använder filen /etc/hosts. Ersätt IP-adressen och värdnamnet i följande kommandon
sudo vi /etc/hosts
Infoga följande rader i /etc/hosts. Ändra IP-adressen och värdnamnet så att de matchar din miljö
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] Aktivera NFS-server
Skapa rotposten för NFS-export
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] Installera drbd-komponenter
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] Skapa en partition för drbd-enheterna
Visa en lista över alla tillgängliga datadiskar
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
Skapa partitioner för varje datadisk
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'
[A] Skapa LVM-konfigurationer
Visa en lista över alla tillgängliga partitioner
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
Skapa LVM-volymer för varje partition
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
[A] Konfigurera drbd
sudo vi /etc/drbd.conf
Kontrollera att filen drbd.conf innehåller följande två rader
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
Ändra den globala drbd-konfigurationen
sudo vi /etc/drbd.d/global_common.conf
Lägg till följande poster i avsnittet handler och net.
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; } }
[A] Skapa NFS-drbd-enheterna
sudo vi /etc/drbd.d/NW1-nfs.res
Infoga konfigurationen för den nya drbd-enheten och avsluta
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
Infoga konfigurationen för den nya drbd-enheten och avsluta
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; } }
Skapa drbd-enheten och starta den
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] Hoppa över inledande synkronisering
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] Ange den primära noden
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] Vänta tills de nya drbd-enheterna har synkroniserats
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] Skapa filsystem på drbd-enheterna
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
[A] Konfigurera drbd split-brain detection
När du använder drbd för att synkronisera data från en värd till en annan kan en så kallad delad hjärna uppstå. En delad hjärna är ett scenario där båda klusternoderna befordrade drbd-enheten till den primära och inte synkroniserades. Det kan vara en sällsynt situation men du vill fortfarande hantera och lösa en delad hjärna så snabbt som möjligt. Det är därför viktigt att meddelas när en delad hjärna inträffade.
Läs den officiella drbd-dokumentationen om hur du konfigurerar en delad hjärnavisering.
Det är också möjligt att automatiskt återhämta sig från ett scenario med delad hjärna. Mer information finns i Principer för automatisk återställning av delade hjärnor
Konfigurera klusterramverk
[1] Lägg till NFS-drbd-enheterna för SAP-systemet NW1 i klusterkonfigurationen
Viktigt!
Nyligen genomförda tester visade situationer där netcat slutar svara på begäranden på grund av kvarvarande uppgifter och dess begränsning av att endast hantera en anslutning. Netcat-resursen slutar lyssna på Azure Load balancer-begäranden och den flytande IP-adressen blir otillgänglig.
För befintliga Pacemaker-kluster rekommenderar vi tidigare att netcat ersätts med socat. För närvarande rekommenderar vi att du använder azure-lb-resursagenten, som ingår i paketresursagenter, med följande krav på paketversion:- För SLES 12 SP4/SP5 måste versionen vara minst resource-agents-4.3.018.a7fb5035-3.30.1.
- För SLES 15/15 SP1 måste versionen vara minst resource-agents-4.3.0184.6ee15eb2-4.13.1.
Observera att ändringen kräver kort stilleståndstid.
För befintliga Pacemaker-kluster, om konfigurationen redan har ändrats för att använda socat enligt beskrivningen i Azure Load-Balancer Detection Hardening, finns det inget krav på att omedelbart växla till azure-lb-resursagenten.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
[1] Lägg till NFS-drbd-enheterna för SAP-systemet NW2 i klusterkonfigurationen
# 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
Alternativet
crossmnt
i klusterresursernaexportfs
finns i vår dokumentation för bakåtkompatibilitet med äldre SLES-versioner.[1] Inaktivera underhållsläge
sudo crm configure property maintenance-mode=false
Nästa steg
- Installera SAP ASCS och databasen
- Planering och implementering av Azure Virtual Machines för SAP
- Distribution av virtuella Azure-datorer för SAP
- Azure Virtual Machines DBMS-distribution för SAP
- Information om hur du etablerar hög tillgänglighet och planerar för haveriberedskap för SAP HANA på virtuella Azure-datorer finns i Hög tillgänglighet för SAP HANA på virtuella Azure-datorer (VM)