Hoge beschikbaarheid voor NFS op Virtuele Azure-machines op SUSE Linux Enterprise Server
Notitie
U wordt aangeraden een van de eigen NFS-services van Azure te implementeren: NFS in Azure Files of NFS ANF-volumes voor het opslaan van gedeelde gegevens in een maximaal beschikbaar SAP-systeem. Houd er rekening mee dat we SAP-referentiearchitecturen de nadruk leggen op het gebruik van NFS-clusters.
In dit artikel wordt beschreven hoe u de virtuele machines implementeert, de virtuele machines configureert, het clusterframework installeert en een maximaal beschikbare NFS-server installeert die kan worden gebruikt om de gedeelde gegevens van een maximaal beschikbaar SAP-systeem op te slaan. In deze handleiding wordt beschreven hoe u een maximaal beschikbare NFS-server instelt die wordt gebruikt door twee SAP-systemen, NW1 en NW2. Bij de namen van de resources (bijvoorbeeld virtuele machines, virtuele netwerken) in het voorbeeld wordt ervan uitgegaan dat u de SAP-bestandsserversjabloon hebt gebruikt met resourcevoorvoegsel prod.
Notitie
Dit artikel bevat verwijzingen naar termen die Microsoft niet meer gebruikt. Wanneer de voorwaarden uit de software worden verwijderd, worden deze uit dit artikel verwijderd.
Lees eerst de volgende SAP-notities en -documenten
SAP-notitie 1928533, met:
- Lijst met Azure VM-grootten die worden ondersteund voor de implementatie van SAP-software
- Belangrijke capaciteitsinformatie voor Azure VM-grootten
- Ondersteunde SAP-software en besturingssysteemcombinaties (OS) en databasecombinaties
- Vereiste SAP-kernelversie voor Windows en Linux in Microsoft Azure
SAP Note 2015553 bevat vereisten voor SAP-ondersteunde SAP-software-implementaties in Azure.
SAP Note 2205917 heeft aanbevolen besturingssysteeminstellingen voor SUSE Linux Enterprise Server voor SAP-toepassingen
SAP-opmerking 1944799 heeft SAP HANA-richtlijnen voor SUSE Linux Enterprise Server voor SAP-toepassingen
SAP Note 2178632 bevat gedetailleerde informatie over alle metrische bewakingsgegevens die zijn gerapporteerd voor SAP in Azure.
SAP-opmerking 2191498 beschikt over de vereiste VERSIE van de SAP Host Agent voor Linux in Azure.
SAP Note 2243692 informatie heeft over SAP-licenties in Linux in Azure.
SAP-opmerking 1984787 bevat algemene informatie over SUSE Linux Enterprise Server 12.
SAP Note 1999351 bevat aanvullende informatie over probleemoplossing voor de uitgebreide Azure-bewakingsextensie voor SAP.
SAP Community WIKI bevat alle vereiste SAP-notities voor Linux.
Azure Virtual Machines plannen en implementeren voor SAP in Linux
Azure Virtual Machines-implementatie voor SAP in Linux (dit artikel)
DBMS-implementatie van Azure Virtual Machines voor SAP in Linux
Aanbevolen procedures voor SUSE Linux Enterprise Server voor SAP Applications 12 SP5
Opmerkingen bij de release van SUSE Linux Enterprise Server voor SAP Applications 12 SP5
Overzicht
Voor hoge beschikbaarheid is voor SAP NetWeaver een NFS-server vereist. De NFS-server is geconfigureerd in een afzonderlijk cluster en kan worden gebruikt door meerdere SAP-systemen.
De NFS-server maakt gebruik van een toegewezen virtuele hostnaam en virtuele IP-adressen voor elk SAP-systeem dat gebruikmaakt van deze NFS-server. In Azure is een load balancer vereist voor het gebruik van een virtueel IP-adres. De gepresenteerde configuratie toont een load balancer met:
- Front-end-IP-adres 10.0.0.4 voor NW1
- Front-end-IP-adres 10.0.0.5 voor NW2
- Testpoort 61000 voor NW1
- Testpoort 61001 voor NW2
Een maximaal beschikbare NFS-server instellen
Linux handmatig implementeren via Azure Portal
In dit document wordt ervan uitgegaan dat u al een resourcegroep, Azure Virtual Network en subnet hebt geïmplementeerd.
Implementeer twee virtuele machines voor NFS-servers. Kies een geschikte SLES-installatiekopieën die worden ondersteund met uw SAP-systeem. U kunt vm's implementeren in een van de beschikbaarheidsopties: schaalset, beschikbaarheidszone of beschikbaarheidsset.
Azure Load Balancer configureren
Volg de handleiding voor het maken van load balancer voor het configureren van een standard load balancer voor hoge beschikbaarheid van een NFS-server. Houd rekening met de volgende punten tijdens de configuratie van de load balancer.
- Front-end-IP-configuratie: maak twee front-end-IP-adressen. Selecteer hetzelfde virtuele netwerk en subnet als uw NFS-server.
- Back-endpool: back-endpool maken en VM's van NFS-server toevoegen.
- Regels voor inkomend verkeer: maak twee taakverdelingsregel, één voor NW1 en een andere voor NW2. Volg dezelfde stappen voor beide taakverdelingsregels.
- Front-end-IP-adres: front-end-IP selecteren
- Back-endpool: back-endpool selecteren
- Controleer poorten met hoge beschikbaarheid
- Protocol: TCP
- Statustest: Maak een statustest met de onderstaande details (van toepassing op zowel NW1 als NW2)
- Protocol: TCP
- Poort: [bijvoorbeeld: 61000 voor NW1, 61001 voor NW2]
- Interval: 5
- Testdrempel: 2
- Time-out voor inactiviteit (minuten): 30
- Schakel Zwevend IP-adres in
Notitie
Het eigenschapsnummer van de statustestconfiguratieofOfProbes, ook wel 'Drempelwaarde beschadigd' genoemd in de portal, wordt niet gerespecteerd. Als u dus het aantal geslaagde of mislukte opeenvolgende tests wilt beheren, stelt u de eigenschap probeThreshold in op 2. Het is momenteel niet mogelijk om deze eigenschap in te stellen met behulp van Azure Portal, dus gebruik de Azure CLI of PowerShell-opdracht .
Notitie
Wanneer VM's zonder openbare IP-adressen worden geplaatst in de back-endpool van interne (geen openbaar IP-adres) Standard Azure Load Balancer, is er geen uitgaande internetverbinding, tenzij er aanvullende configuratie wordt uitgevoerd om routering naar openbare eindpunten toe te staan. Zie Openbare eindpuntconnectiviteit voor virtuele machines met behulp van Azure Standard Load Balancer in scenario's met hoge beschikbaarheid van SAP voor meer informatie over het bereiken van uitgaande connectiviteit.
Belangrijk
- Schakel TCP-tijdstempels niet in op Azure-VM's die achter Azure Load Balancer worden geplaatst. Als u TCP-tijdstempels inschakelt, mislukken de statustests. Stel de
net.ipv4.tcp_timestamps
parameter in op0
. Zie Statustests van Load Balancer voor meer informatie. - Als u wilt voorkomen dat saptune de handmatig ingestelde
net.ipv4.tcp_timestamps
waarde wijzigt van0
terug naar1
, moet u saptune-versie bijwerken naar 3.1.1 of hoger. Zie saptune 3.1.1 – Moet ik bijwerken? voor meer informatie.
Pacemaker-cluster maken
Volg de stappen in Pacemaker instellen op SUSE Linux Enterprise Server in Azure om een eenvoudig Pacemaker-cluster voor deze NFS-server te maken.
NFS-server configureren
De volgende items worden voorafgegaan door [A] - van toepassing op alle knooppunten, [1] - alleen van toepassing op knooppunt 1 of [2] - alleen van toepassing op knooppunt 2.
[A] Hostnaamomzetting instellen
U kunt een DNS-server gebruiken of de /etc/hosts op alle knooppunten wijzigen. In dit voorbeeld ziet u hoe u het bestand /etc/hosts gebruikt. Vervang het IP-adres en de hostnaam in de volgende opdrachten
sudo vi /etc/hosts
Voeg de volgende regels in op /etc/hosts. Het IP-adres en de hostnaam wijzigen zodat deze overeenkomt met uw omgeving
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] NFS-server inschakelen
De hoofdvermelding voor NFS-export maken
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] Drbd-onderdelen installeren
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] Maak een partitie voor de drbd-apparaten
Alle beschikbare gegevensschijven weergeven
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
Partities maken voor elke gegevensschijf
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] LVM-configuraties maken
Alle beschikbare partities weergeven
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
LVM-volumes maken voor elke partitie
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] Drbd configureren
sudo vi /etc/drbd.conf
Zorg ervoor dat het bestand drbd.conf de volgende twee regels bevat
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
De algemene drbd-configuratie wijzigen
sudo vi /etc/drbd.d/global_common.conf
Voeg de volgende vermeldingen toe aan de handler- en netsectie.
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] De NFS drbd-apparaten maken
sudo vi /etc/drbd.d/NW1-nfs.res
De configuratie voor het nieuwe drbd-apparaat invoegen en afsluiten
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
De configuratie voor het nieuwe drbd-apparaat invoegen en afsluiten
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; } }
Maak het drbd-apparaat en start het
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] Eerste synchronisatie overslaan
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] Het primaire knooppunt instellen
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] Wacht totdat de nieuwe drbd-apparaten zijn gesynchroniseerd
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] Bestandssystemen maken op de drbd-apparaten
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] Drbd split-brain detectie instellen
Wanneer u drbd gebruikt om gegevens van de ene host naar de andere te synchroniseren, kan er een zogenaamde split brain optreden. Een gesplitst brein is een scenario waarin beide clusterknooppunten het drbd-apparaat promoveren tot de primaire en niet-synchroon zijn gegaan. Het kan een zeldzame situatie zijn, maar je wilt nog steeds zo snel mogelijk een gesplitst brein afhandelen en oplossen. Het is daarom belangrijk om op de hoogte te worden gesteld wanneer er een gesplitst brein is opgetreden.
Lees de officiële drbd-documentatie over het instellen van een split brain notification.
Het is ook mogelijk om automatisch te herstellen van een gesplitst hersenscenario. Lees voor meer informatie het beleid voor automatisch splitsen van hersenherstel
ClusterFramework configureren
[1] Voeg de NFS drbd-apparaten voor SAP-systeem NW1 toe aan de clusterconfiguratie
Belangrijk
Recente tests hebben situaties ontdekt waarin Netcat niet meer reageert op aanvragen vanwege achterstand en de beperking van het verwerken van slechts één verbinding. De netcat-resource luistert niet meer naar de Azure Load Balancer-aanvragen en het zwevende IP-adres is niet meer beschikbaar.
Voor bestaande Pacemaker-clusters raden we in het verleden aan netcat te vervangen door socat. Momenteel wordt u aangeraden azure-lb-resourceagent te gebruiken, die deel uitmaakt van pakketresource-agents, met de volgende pakketversievereisten:- Voor SLES 12 SP4/SP5 moet de versie ten minste resource-agents-4.3.018.a7fb5035-3.30.1 zijn.
- Voor SLES 15/15 SP1 moet de versie ten minste resource-agents-4.3.0184.6ee15eb2-4.13.1 zijn.
Houd er rekening mee dat voor de wijziging korte downtime is vereist.
Als voor bestaande Pacemaker-clusters de configuratie al is gewijzigd om socat te gebruiken, zoals beschreven in Azure Load-Balancer Detection Hardening, hoeft u niet onmiddellijk over te schakelen naar de azure-lb-resourceagent.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] Voeg de NFS drbd-apparaten voor SAP-systeem NW2 toe aan de clusterconfiguratie
# 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
De
crossmnt
optie in deexportfs
clusterbronnen is aanwezig in onze documentatie voor achterwaartse compatibiliteit met oudere SLES-versies.[1] Onderhoudsmodus uitschakelen
sudo crm configure property maintenance-mode=false
Volgende stappen
- De SAP ASCS en database installeren
- Azure Virtual Machines plannen en implementeren voor SAP
- Azure Virtual Machines-implementatie voor SAP
- DBMS-implementatie van Azure Virtual Machines voor SAP
- Zie Hoge beschikbaarheid van SAP HANA op Virtuele Azure-machines (VM's) voor meer informatie over het tot stand brengen van hoge beschikbaarheid en het plannen van herstel na noodgevallen van SAP HANA op Virtuele Machines in Azure