Pacemaker instellen op Red Hat Enterprise Linux in Azure
Lees eerst de volgende SAP-notities en -documenten:
- SAP Note [1928533,]dat het volgende heeft:
- De lijst met Azure VM-grootten die worden ondersteund voor de implementatie van SAP-software.
- Belangrijke capaciteitsinformatie voor Azure VM-grootten.
- De ondersteunde combinaties van SAP-software en besturingssysteem en database.
- De vereiste SAP-kernelversie voor Windows linux op Microsoft Azure.
- SAP Note 2015553 een lijst met vereisten voor SAP-ondersteunde SAP-software-implementaties in Azure.
- [SAP-2002167] heeft aanbevolen besturingssysteeminstellingen voor Red Hat Enterprise Linux
- SAP Note 2009879 heeft SAP HANA Richtlijnen voor Red Hat Enterprise Linux
- SAP Note 2178632 gedetailleerde informatie over alle metrische bewakingsgegevens die zijn gerapporteerd voor SAP in Azure.
- SAP Note 2191498 de vereiste versie van sap-hostagent voor Linux in Azure.
- SAP Note 2243692 informatie over SAP-licenties op Linux in Azure.
- SAP Note 1999351 aanvullende informatie over probleemoplossing voor de uitgebreide Bewakingsextensie van Azure voor SAP.
- SAP Community WIKI heeft alle vereiste SAP-notities voor Linux.
- Azure Virtual Machines en implementatie voor SAP on Linux
- Azure Virtual Machines-implementatie voor SAP on Linux (dit artikel)
- Azure Virtual Machines DBMS-implementatie voor SAP op Linux
- SAP HANA in pacemaker-cluster configureren
- Algemene RHEL-documentatie
- Azure-specifieke RHEL-documentatie:
- Ondersteuningsbeleid voor RHEL-clusters met hoge beschikbaarheid - Microsoft Azure Virtual Machines clusterleden
- Installeren en configureren van een Red Hat Enterprise Linux 7.4 (en hoger) High-Availability cluster op Microsoft Azure
- Overwegingen bij de in gebruik nemen van RHEL 8 - Hoge beschikbaarheid en clusters
- SAP S/4HANA ASCS/ERS configureren met Standalone Enqueue Server 2 (ENSA2) in Pacemaker op RHEL 7.6
- RHEL for SAP-aanbiedingen in Azure
Clusterinstallatie

Notitie
Red Hat biedt geen ondersteuning voor watchdog die met software is geëmuleerd. Red Hat biedt geen ondersteuning voor SBD op cloudplatforms. Zie Ondersteuningsbeleid voor RHEL High Availability Clusters - sbden fence_sbd voor meer fence_sbd. Het enige ondersteunde fencing-mechanisme voor Pacemaker Red Hat Enterprise Linux clusters in Azure, is de Azure Fence-agent.
De volgende items hebben het voorvoegsel [A] - van toepassing op alle knooppunten, [1] - alleen van toepassing op knooppunt 1 of [2] - alleen van toepassing op knooppunt 2.
[A] Registreren. Deze stap is niet vereist als u RHEL SAP HA-afbeeldingen gebruikt.
Registreer uw virtuele machines en koppel deze aan een groep die opslagplaatsen voor RHEL 7 bevat.
sudo subscription-manager register # List the available pools sudo subscription-manager list --available --matches '*SAP*' sudo subscription-manager attach --pool=<pool id>Als u een groep koppelt aan een Azure Marketplace PAYG RHEL-afbeelding, wordt u in twee keer gefactureerd voor uw RHEL-gebruik: eenmaal voor de payg-afbeelding en eenmaal voor het RHEL-recht in de pool die u koppelt. Om dit te verhelpen, biedt Azure nu BYOS RHEL-afbeeldingen. Zie Bring-Your-Own-Red Hat Enterprise Linux Azure-afbeeldingen voor meer informatie.
[A] RHEL inschakelen voor SAP-repos. Deze stap is niet vereist als u RHEL SAP HA-afbeeldingen gebruikt.
Als u de vereiste pakketten wilt installeren, moet u de volgende opslagplaatsen inschakelen.
sudo subscription-manager repos --disable "*" sudo subscription-manager repos --enable=rhel-7-server-rpms sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms sudo subscription-manager repos --enable=rhel-sap-for-rhel-7-server-rpms sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-eus-rpms[A] RHEL HA-Add-On
sudo yum install -y pcs pacemaker fence-agents-azure-arm nmap-ncatBelangrijk
We raden klanten de volgende versies van de Azure Fence-agent (of hoger) aan om te profiteren van een snellere failovertijd, als een resource stopt of als de clusterknooppunten niet meer met elkaar kunnen communiceren:
RHEL 7.7 of hoger maakt gebruik van de nieuwste beschikbare versie van het fence-agents-pakket
RHEL 7.6: fence-agents-4.2.1-11.el7_6.8
RHEL 7.5: fence-agents-4.0.11-86.el7_5.8
RHEL 7.4: fence-agents-4.0.11-66.el7_4.12
Zie Azure VM running as a RHEL High Availability cluster member (Azure-VMdie wordt uitgevoerd als RHEL-clusterlid met hoge beschikbaarheid) voor meer informatie. Het kan ook heel lang duren voordat de VM wordt afgesloten.Controleer de versie van de Azure Fence-agent. Werk deze indien nodig bij naar een versie die gelijk is aan of hoger is dan de hierboven genoemde.
# Check the version of the Azure Fence Agent sudo yum info fence-agents-azure-armBelangrijk
Als u de Azure Fence-agent moet bijwerken en als u een aangepaste rol gebruikt, moet u de aangepaste rol bijwerken om actie powerOff op te nemen. Zie Een aangepaste rol maken voor de fence-agent voor meer informatie.
[A] Hostnaamoplossing 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.
Belangrijk
Als u hostnamen gebruikt in de clusterconfiguratie, is het essentieel om een betrouwbare hostnaamresolutie te hebben. De clustercommunicatie mislukt als de namen niet beschikbaar zijn en dit kan leiden tot cluster-failover-vertragingen. Het voordeel van het gebruik van /etc/hosts is dat uw cluster onafhankelijk wordt van DNS, wat ook een single point of failures kan zijn.
sudo vi /etc/hostsVoeg de volgende regels toe aan /etc/hosts. Wijzig het IP-adres en de hostnaam in uw omgeving
# IP address of the first cluster node 10.0.0.6 prod-cl1-0 # IP address of the second cluster node 10.0.0.7 prod-cl1-1[A] Wijzig het hacluster-wachtwoord in hetzelfde wachtwoord
sudo passwd hacluster[A] Firewallregels toevoegen voor Pacemaker
Voeg de volgende firewallregels toe aan alle clustercommunicatie tussen de clusterknooppunten.
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --add-service=high-availability[A] Basisclusterservices inschakelen
Voer de volgende opdrachten uit om de Pacemaker-service in te stellen en te starten.
sudo systemctl start pcsd.service sudo systemctl enable pcsd.service[1] Pacemaker-cluster maken
Voer de volgende opdrachten uit om de knooppunten te verifiëren en het cluster te maken. Stel het token in op 30000 om onderhoud met geheugenbehoud toe te staan. Zie dit artikel voor Linux voor meer informatie.
Als u een cluster bouwt op RHEL 7.x, gebruikt u de volgende opdrachten:
sudo pcs cluster auth prod-cl1-0 prod-cl1-1 -u hacluster sudo pcs cluster setup --name nw1-azr prod-cl1-0 prod-cl1-1 --token 30000 sudo pcs cluster start --allAls u een cluster bouwt op RHEL 8.X, gebruikt u de volgende opdrachten:
sudo pcs host auth prod-cl1-0 prod-cl1-1 -u hacluster sudo pcs cluster setup nw1-azr prod-cl1-0 prod-cl1-1 totem token=30000 sudo pcs cluster start --allControleer de clusterstatus door de volgende opdracht uit te voeren:
# Run the following command until the status of both nodes is online sudo pcs status # Cluster name: nw1-azr # WARNING: no stonith devices and stonith-enabled is not false # Stack: corosync # Current DC: prod-cl1-1 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum # Last updated: Fri Aug 17 09:18:24 2018 # Last change: Fri Aug 17 09:17:46 2018 by hacluster via crmd on prod-cl1-1 # # 2 nodes configured # 0 resources configured # # Online: [ prod-cl1-0 prod-cl1-1 ] # # No resources # # Daemon Status: # corosync: active/disabled # pacemaker: active/disabled # pcsd: active/enabled[A] Stel Verwachte stemmen in.
# Check the quorum votes pcs quorum status # If the quorum votes are not set to 2, execute the next command sudo pcs quorum expected-votes 2Tip
Als u een cluster met meerdere knooppunten bouwt, dat wil zeggen een cluster met meer dan twee knooppunten, stelt u de stemmen niet in op 2.
[1] Gelijktijdige fence-acties toestaan
sudo pcs property set concurrent-fencing=true
STONITH-apparaat maken
Het STONITH-apparaat gebruikt een service-principal om te autoreren voor Microsoft Azure. Volg deze stappen om een service-principal te maken.
- Ga naar https://portal.azure.com
- Open de Azure Active Directory blade
Ga naar Eigenschappen en noteer de map-id. Dit is de tenant-id. - Klik op App-registraties
- Klik op Nieuwe registratie
- Voer een naam in en selecteer 'Alleen accounts in deze organisatiemap'
- Selecteer Toepassingstype 'Web', voer een aanmeldings-URL in (bijvoorbeeld http: / /localhost) en klik op Toevoegen
De aanmeldings-URL wordt niet gebruikt en kan een geldige URL zijn - Selecteer Certificaten en geheimen en klik vervolgens op Nieuw clientgeheim
- Voer een beschrijving in voor een nieuwe sleutel, selecteer 'Verloopt nooit' en klik op Toevoegen
- Maak van een knooppunt de Waarde. Deze wordt gebruikt als het wachtwoord voor de service-principal
- Selecteer Overzicht. Noteer de toepassings-id. Deze wordt gebruikt als de gebruikersnaam (aanmeldings-id in de onderstaande stappen) van de service-principal
[1] Een aangepaste rol maken voor de fence-agent
De service-principal heeft standaard geen machtigingen voor toegang tot uw Azure-resources. U moet de service-principal machtigingen geven om alle virtuele machines van het cluster te starten en te stoppen (uitschakelen). Als u de aangepaste rol nog niet hebt gemaakt, kunt u deze maken met behulp van PowerShell of Azure CLI
Gebruik de volgende inhoud voor het invoerbestand. U moet de inhoud aanpassen aan uw abonnementen. Vervang c276fc76-9cd4-44c9-99a7-4fd71546436e en e91d47c4-76f3-4271-a796-21b4ecfe3624 door de id's van uw abonnement. Als u slechts één abonnement hebt, verwijdert u de tweede vermelding in AssignableScopes.
{
"Name": "Linux Fence Agent Role",
"description": "Allows to power-off and start virtual machines",
"assignableScopes": [
"/subscriptions/e663cc2d-722b-4be1-b636-bbd9e4c60fd9",
"/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624"
],
"actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
[A] De aangepaste rol toewijzen aan de service-principal
Wijs de aangepaste rol 'Linux Fence Agent Role' die in het laatste hoofdstuk is gemaakt, toe aan de service-principal. Gebruik de rol van Eigenaar niet meer! Zie Azure-rollen toewijzen met behulp vande Azure Portal .
Zorg ervoor dat u de rol voor beide clusterknooppunten toewijst.
[1] De STONITH-apparaten maken
Nadat u de machtigingen voor de virtuele machines hebt bewerkt, kunt u de STONITH-apparaten in het cluster configureren.
sudo pcs property set stonith-timeout=900
Notitie
Optie 'pcmk_host_map' is ALLEEN vereist in de opdracht als de namen van de RHEL-host en de namen van de Azure-VM's NIET identiek zijn. Geef de toewijzing op in de indeling hostnaam:vm-name. Raadpleeg de vetgedrukte sectie in de opdracht . Zie Welke indeling moet ik gebruiken om knooppunttoewijzingen op te geven voor stonith-apparaten in pcmk_host_map
Gebruik voor RHEL 7.X de volgende opdracht om het fence-apparaat te configureren:
sudo pcs stonith create rsc_st_azure fence_azure_arm login="login ID" passwd="password" resourceGroup="resource group" tenantId="tenant ID" subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
op monitor interval=3600
Gebruik voor RHEL 8.X de volgende opdracht om het fence-apparaat te configureren:
sudo pcs stonith create rsc_st_azure fence_azure_arm username="login ID" password="password" resourceGroup="resource group" tenantId="tenant ID" subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
op monitor interval=3600
Tip
Configureer het kenmerk pcmk_delay_max alleen in twee Pacemaker-knooppuntclusters. Zie Delaying fencing in a two node clusterto prevent fence fences of 'fence death'-scenario's voor meer informatie over het voorkomen van fences in een Pacemaker-cluster met twee knooppunt.
Belangrijk
De bewakings- en fencingbewerkingen worden gedeser serialiseerd. Als gevolg hiervan, als er een langer lopende bewakingsbewerking en gelijktijdige fencing-gebeurtenis is, is er geen vertraging voor de cluster-failover vanwege de bewakingsbewerking die al wordt uitgevoerd.
[1] Het gebruik van een STONITH-apparaat inschakelen
sudo pcs property set stonith-enabled=true
Tip
Azure Fence Agent vereist uitgaande connectiviteit met openbare eindpunten, zoals beschreven, samen met mogelijke oplossingen, in Openbare eindpuntconnectiviteit voor VM's die gebruikmaken van de standaard-ILB.
Optionele STONITH-configuratie
Tip
Deze sectie is alleen van toepassing als u een speciaal fencing-apparaat wilt fence_kdump configureren.
Als er diagnostische gegevens moeten worden verzameld binnen de VM, kan het handig zijn om een extra STONITH-apparaat te configureren op basis van de fence-agent fence_kdump . De agent kan detecteren dat een knooppunt kdump-crashherstel heeft ingevoerd en kan toestaan dat de crashherstelservice wordt voltooid voordat andere fence_kdump fencingmethoden worden aangeroepen. Houd er rekening fence_kdump mee dat geen vervanging is voor traditionele fence-mechanismen, zoals Azure Fence Agent bij het gebruik van Azure-VM's.
Belangrijk
Wanneer wordt geconfigureerd als een stonith op het eerste niveau, zal dit vertragingen in de fencing-bewerkingen en respectievelijk vertragingen in de failover van fence_kdump toepassingsbronnen tot gevolg hebben.
Als er een crashdump is gedetecteerd, wordt de fencing uitgesteld totdat de crashherstelservice is voltooid. Als het knooppunt niet bereikbaar is of niet reageert, wordt de fencing vertraagd door de tijd die wordt bepaald door het geconfigureerde aantal iteraties en fence_kdump de time-out. Zie voor meer informatie Hoe kan ik configureren fence_kdump in een Red Hat Pacemaker-cluster.
De voorgestelde fence_kdump time-out moet mogelijk worden aangepast aan de specifieke omgeving.
We raden u aan om stonith alleen te configureren wanneer dit nodig is om diagnostische gegevens binnen de VM te verzamelen en altijd in combinatie met de traditionele fence-methode fence_kdump als Azure Fence Agent.
De volgende Red Hat-KB's bevatten belangrijke informatie over het configureren fence_kdump van stonith:
- Hoe kan ik configureren fence_kdump in een Red Hat Pacemaker-cluster
- STONITH-niveaus configureren/beheren in RHEL-cluster met Pacemaker
- fence_kdump mislukt met 'time-out na X seconden' in een RHEL 6 0r 7 HA-cluster met kexec-hulpprogramma's ouder dan 2.0.14
- Zie Hoe kan ik Kdump configureren voor gebruik met de RHEL-invoegsel 6,7,8 HA voor meer informatie over het wijzigen van de standaard time-out
- Zie Can I reduce the expected
fence_kdumpdelay of failover when adding fence_kdump configuration (Kan ik de verwachte vertraging van failover verminderen bij het toevoegen van fence_kdump configuratie) voor meer informatie over het verminderen van de fence_kdump
Voer de volgende optionele stappen uit om naast de configuratie van de Azure Fence Agent een STONITH-configuratie op het eerste niveau fence_kdump toe te voegen.
[A] Controleer of kdump actief is en is geconfigureerd.
systemctl is-active kdump # Expected result # active[A] Installeer de
fence_kdumpfence-agent.yum install fence-agents-kdump[1] Maak
fence_kdumpeen stonith-apparaat in het cluster.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" timeout=30[1] Configureer de stonith-niveaus, zodat
fence_kdumphet fencing-mechanisme eerst wordt ingeschakeld.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" pcs stonith level add 1 prod-cl1-0 rsc_st_kdump pcs stonith level add 1 prod-cl1-1 rsc_st_kdump pcs stonith level add 2 prod-cl1-0 rsc_st_azure pcs stonith level add 2 prod-cl1-1 rsc_st_azure # Check the stonith level configuration pcs stonith level # Example output # Target: prod-cl1-0 # Level 1 - rsc_st_kdump # Level 2 - rsc_st_azure # Target: prod-cl1-1 # Level 1 - rsc_st_kdump # Level 2 - rsc_st_azure[A] De vereiste poorten voor toestaan
fence_kdumpvia de firewallfirewall-cmd --add-port=7410/udp firewall-cmd --add-port=7410/udp --permanent[A] Zorg ervoor dat
initramfshet afbeeldingsbestand enfence_kdumpde bestandenhostsbevat. Zie voor meer Hoe kan ik configureren fence_kdump in een Red Hat Pacemaker-cluster.lsinitrd /boot/initramfs-$(uname -r)kdump.img | egrep "fence|hosts" # Example output # -rw-r--r-- 1 root root 208 Jun 7 21:42 etc/hosts # -rwxr-xr-x 1 root root 15560 Jun 17 14:59 usr/libexec/fence_kdump_send[A] Voer de configuratie
fence_kdump_nodesuit in om te voorkomen dat een/etc/kdump.conffence_kdumptime-out voor sommigekexec-toolsversies mislukt. Zie fence_kdump time-outs wanneer fence_kdump_nodes niet is opgegeven met kexec-tools versie 2.0.15 of hoger en fence_kdump mislukt met 'time-out na X seconden' in een RHEL 6- of 7-cluster met hoge beschikbaarheid met kexec-tools die ouder zijn dan 2.0.14. De voorbeeldconfiguratie voor een cluster met twee knooppunt wordt hieronder weergegeven. Nadat u een wijziging in heeft gemaakt, moet/etc/kdump.confde kdump-afbeelding opnieuw worden ge regenereerd. Dit kan worden bereikt door de service opnieuw tekdumpstarten.vi /etc/kdump.conf # On node prod-cl1-0 make sure the following line is added fence_kdump_nodes prod-cl1-1 # On node prod-cl1-1 make sure the following line is added fence_kdump_nodes prod-cl1-0 # Restart the service on each node systemctl restart kdumpTest de configuratie door een knooppunt vast te maken. Zie voor meer Hoe kan ik configureren fence_kdump in een Red Hat Pacemaker-cluster.
Belangrijk
Als het cluster al productief wordt gebruikt, moet u de test dienovereenkomstig plannen, omdat het vast loopt op een knooppunt van invloed is op de toepassing.
echo c > /proc/sysrq-trigger
Volgende stappen
- Azure Virtual Machines planning en implementatie voor SAP
- Azure Virtual Machines-implementatie voor SAP
- Azure Virtual Machines DBMS-implementatie voor SAP
- Zie Hoge beschikbaarheid van SAP HANA op Azure Virtual Machines (VM's) voor meer informatie over het tot stand brengen van hoge beschikbaarheid en het plannen van herstel na noodherstel van SAP HANA op Azure-VM's