Konfigurera pacemaker på Red Hat Enterprise Linux i Azure
Läs följande SAP-anteckningar och -artiklar först:
- SAP Note 1928533, som har:
- Listan över storlekar på virtuella Azure-datorer som stöds för distribution av SAP-programvara.
- Viktig kapacitetsinformation för storlekar på virtuella Azure-datorer.
- SAP-programvara och kombinationer av operativsystem (OS) och databaser som stöds.
- Den sap kernel-version som krävs för Windows och Linux på Microsoft Azure.
- SAP Note 2015553 listar kraven för SAP-programvarudistributioner som stöds i Azure.
- SAP Note 2002167 har rekommenderade os-inställningar för Red Hat Enterprise Linux
- SAP Note 2009879 har SAP HANA Guidelines for Red Hat Enterprise Linux
- SAP Note 2178632 innehåller detaljerad information om alla övervakningsmått som rapporterats för SAP i Azure.
- SAP Note 2191498 har den version av SAP-värdagenten som krävs för Linux i Azure.
- SAP Note 2243692 har information om SAP-licensiering på Linux i Azure.
- 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.
- Azure Virtual Machines planering och implementering för SAP på Linux
- Azure Virtual Machines-distribution för SAP på Linux (den här artikeln)
- Azure Virtual Machines DBMS-distribution för SAP på Linux
- SAP HANA systemreplikering i pacemakerkluster
- Allmän RHEL-dokumentation
- Azure-specifik RHEL-dokumentation:
- Stödprinciper för RHEL-kluster med hög tillgänglighet – Microsoft Azure Virtual Machines som klustermedlemmar
- Installera och konfigurera ett Red Hat Enterprise Linux 7.4 (och senare) High-Availability kluster på Microsoft Azure
- Överväganden vid införande av RHEL 8 – Hög tillgänglighet och kluster
- Konfigurera SAP S/4HANA ASCS/ERS med fristående Enqueue Server 2 (ENSA2) i Pacemaker på RHEL 7.6
- RHEL för SAP-erbjudanden på Azure
Klusterinstallation

Anteckning
Red Hat stöder inte programvaruemulerade watchdog-program. Red Hat stöder inte SBD på molnplattformar. Mer information finns i Supportprinciper för RHEL-kluster med hög tillgänglighet – sbd och fence_sbd. Den enda avstängningsmekanism som stöds för pacemaker Red Hat Enterprise Linux kluster i Azure är Azure-stängselagenten.
Följande objekt föregås av antingen [A] – gäller för alla noder, [1] – gäller endast nod 1 eller [2] – gäller endast för nod 2.
[A] Registrera. Det här steget krävs inte om du använder RHEL SAP HA-aktiverade avbildningar.
Registrera dina virtuella datorer och koppla dem till en pool som innehåller lagringsplatsen för RHEL 7.
sudo subscription-manager register # List the available pools sudo subscription-manager list --available --matches '*SAP*' sudo subscription-manager attach --pool=<pool id>Genom att koppla en pool till en Azure Marketplace PAYG RHEL-avbildning kommer du i praktiken att dubbelfaktureras för din RHEL-användning: en gång för PAYG-avbildningen och en gång för RHEL-rättigheten i poolen som du kopplar. För att åtgärda detta tillhandahåller Azure nu BYOS RHEL-avbildningar. Mer information finns i Red Hat Enterprise Linux av Azure-avbildningar med "bring-your-own-subscription".
[A] Aktivera RHEL för SAP-lagringsplatsen. Det här steget krävs inte om du använder RHEL SAP HA-aktiverade avbildningar.
Aktivera följande lagringsplatsen för att installera de nödvändiga paketen.
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] Installera RHEL HA-Add-On
sudo yum install -y pcs pacemaker fence-agents-azure-arm nmap-ncatViktigt
Vi rekommenderar följande versioner av Azure Fence-agenten (eller senare) så att kunderna kan dra nytta av en snabbare redundans, om ett resursstopp misslyckas eller klusternoderna inte kan kommunicera som varandra längre:
RHEL 7.7 eller senare använder den senaste tillgängliga versionen av paketet för stängselagenter
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
Mer information finns i Azure VM running as a RHEL High Availability cluster member take a very long time to be fenced, or fencing fails/time-out before the VM shuts down.Kontrollera versionen av Azure-stängselagenten. Om det behövs uppdaterar du den till en version som är lika med eller senare än den som anges ovan.
# Check the version of the Azure Fence Agent sudo yum info fence-agents-azure-armViktigt
Om du behöver uppdatera Azure Fence-agenten, och om du använder anpassad roll, måste du uppdatera den anpassade rollen så att den inkluderar åtgärden powerOff. Mer information finns i Skapa en anpassad roll för stängselagenten.
[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.
Viktigt
Om du använder värdnamn i klusterkonfigurationen är det viktigt att ha en tillförlitlig värdnamnsmatchning. Klusterkommunikationen misslyckas om namnen inte är tillgängliga och det kan leda till fördröjningar i redundansen i klustret. Fördelen med att använda /etc/hosts är att klustret blir oberoende av DNS, vilket också kan vara en enskild felpunkt.
sudo vi /etc/hostsInfoga följande rader i /etc/hosts. Ändra IP-adressen och värdnamnet så att de matchar din miljö
# 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] Ändra hacluster-lösenordet till samma lösenord
sudo passwd hacluster[A] Lägga till brandväggsregler för pacemaker
Lägg till följande brandväggsregler för all klusterkommunikation mellan klusternoderna.
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --add-service=high-availability[A] Aktivera grundläggande klustertjänster
Kör följande kommandon för att aktivera pacemakertjänsten och starta den.
sudo systemctl start pcsd.service sudo systemctl enable pcsd.service[1] Skapa pacemakerkluster
Kör följande kommandon för att autentisera noderna och skapa klustret. Ange token till 30000 för att tillåta minnesbevarande underhåll. Mer information finns i den här artikeln för Linux.
Om du skapar ett kluster på RHEL 7.x använder du följande kommandon:
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 --allOm du skapar ett kluster på RHEL 8.X använder du följande kommandon:
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 --allKontrollera klusterstatusen genom att köra följande kommando:
# 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] Ange förväntade röster.
# 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 2Tips
Om du skapar kluster med flera noder, det vill säga kluster med fler än två noder, ska du inte ange rösterna till 2.
[1] Tillåt samtidiga stängselåtgärder
sudo pcs property set concurrent-fencing=true
Skapa STONITH-enhet
STONITH-enheten använder tjänstens huvudnamn för att auktorisera mot Microsoft Azure. Följ de här stegen för att skapa ett huvudnamn för tjänsten.
- Gå till https://portal.azure.com
- Öppna Azure Active Directory bladet
Gå till Egenskaper och anteckna katalog-ID:t. Det här är klientorganisations-ID:t. - Klicka på Appregistreringar
- Klicka på Ny registrering
- Ange ett Namn och välj "Endast konton i den här organisationskatalogen"
- Välj Programtyp "Webb", ange en inloggnings-URL (till exempel http: / /localhost) och klicka på Lägg till
Inloggnings-URL:en används inte och kan vara en giltig URL - Välj Certifikat och hemligheter och klicka sedan på Ny klienthemlighet
- Ange en beskrivning för en ny nyckel, välj "Upphör aldrig att gälla" och klicka på Lägg till
- Gör en nod till Värde. Det används som lösenord för tjänstens huvudnamn
- Välj Översikt. Anteckna program-ID:t. Det används som användarnamn (inloggnings-ID i stegen nedan) för tjänstens huvudnamn
[1] Skapa en anpassad roll för stängselagenten
Tjänstens huvudnamn har inte behörighet att komma åt dina Azure-resurser som standard. Du måste ge tjänstens huvudnamn behörighet att starta och stoppa (stänga av) alla virtuella datorer i klustret. Om du inte redan har skapat den anpassade rollen kan du skapa den med hjälp av PowerShell eller Azure CLI
Använd följande innehåll för indatafilen. Du måste anpassa innehållet efter dina prenumerationer. Ersätt c276fc76-9cd4-44c9-99a7-4fd71546436e och e91d47c4-76f3-4271-a796-21b4ecfe3624 med ID:n för din prenumeration. Om du bara har en prenumeration tar du bort den andra posten i 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] Tilldela den anpassade rollen till tjänstens huvudnamn
Tilldela den anpassade rollen "Linux Fence Agent Role" som skapades i det senaste kapitlet till tjänstens huvudnamn. Använd inte rollen Ägare längre! Detaljerade anvisningar finns i Tilldela Azure-roller med hjälp av Azure Portal.
Se till att tilldela rollen för båda klusternoderna.
[1] Skapa STONITH-enheter
När du har redigerat behörigheterna för de virtuella datorerna kan du konfigurera STONITH-enheterna i klustret.
sudo pcs property set stonith-timeout=900
Anteckning
Alternativet "pcmk_host_map" krävs ENDAST i kommandot om RHEL-värdnamnen och namnen på virtuella Azure-datorer INTE är identiska. Ange mappningen i formatet hostname:vm-name. Se avsnittet fetstil i kommandot. Mer information finns i Vilket format ska jag använda för att ange nodmappningar till stonith-enheter i pcmk_host_map
För RHEL 7.X använder du följande kommando för att konfigurera stängselenheten:
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
För RHEL 8.X använder du följande kommando för att konfigurera stängselenheten:
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
Tips
Konfigurera bara pcmk_delay_max attributet i två nod-pacemakerkluster. Mer information om hur du förhindrar stängslet i ett pacemakerkluster med två noder finns i Delaying fencecing in a two nodecluster to prevent fence of "fence death" scenarios .
Viktigt
Övervaknings- och avstängningsåtgärderna avser serialiseras. Det innebär att om det finns en övervakningsåtgärd som körs längre och samtidiga avstängningshändelsen, finns det ingen fördröjning i redundansen av klustret på grund av den övervakningsåtgärd som redan körs.
[1] Aktivera användning av en STONITH-enhet
sudo pcs property set stonith-enabled=true
Tips
Azure Fence Agent kräver utgående anslutning till offentliga slutpunkter enligt dokumentation, tillsammans med möjliga lösningar, i offentlig slutpunktsanslutning för virtuella datorer som använder standard-ILB.
Valfri STONITH-konfiguration
Tips
Det här avsnittet gäller endast om du vill konfigurera särskilda avstängningsenhet. fence_kdump
Om du behöver samla in diagnostikinformation i den virtuella datorn kan det vara användbart att konfigurera ytterligare STONITH-enhet baserat på stängsletagenten fence_kdump . Agenten kan identifiera att en nod har angett kdump-kraschåterställning och kan tillåta att återställningstjänsten för krascher slutförs innan andra fence_kdump avstängningsmetoder anropas. Observera att fence_kdump inte ersätter traditionella mekanismer för stängsel, till exempel Azure Fence Agent när du använder virtuella Azure-datorer.
Viktigt
Tänk på att när konfigureras som en stonith på första nivån, kommer det att införa fördröjningar i avstängningsåtgärder och respektive fördröjningar i programresursernas fence_kdump redundans.
Om en kraschdump har identifierats fördröjs avstängningen tills återställningstjänsten för kraschen har slutförts. Om noden som misslyckades inte kan nås eller om den inte svarar, fördröjs avskärmningen av tiden som bestäms av det konfigurerade antalet iterationer och fence_kdump tidsgränsen. Mer information finns i Hur gör jag för att konfigurera fence_kdump i ett Red Hat Pacemaker-kluster.
Den föreslagna fence_kdump tidsgränsen kan behöva anpassas till den specifika miljön.
Vi rekommenderar att du bara konfigurerar stonith när det behövs för att samla in diagnostik på den virtuella datorn och alltid i kombination med traditionell fence_kdump stängselmetod som Azure Fence Agent.
Följande Red Hat-kB innehåller viktig information om hur du fence_kdump konfigurerar stonith:
- Hur gör jag för att konfigurera fence_kdump i ett Red Hat Pacemaker-kluster
- Så här konfigurerar/hanterar du STONITH-nivåer i RHEL-kluster med Pacemaker
- fence_kdump misslyckas med "timeout efter X sekunder" i ett RHEL 6 0r 7 HA-kluster med kexec-verktyg som är äldre än 2.0.14
- Information om hur du ändrar standard-timeout finns i Hur gör jag för att kdump för användning med RHEL 6,7,8 HA-tillägget
- Information om hur du minskar redundansfördröjningen finns i Kan jag minska den förväntade fördröjningen vid redundans
fence_kdumpnär jag lägger till fence_kdump konfiguration
Utför följande valfria steg för att fence_kdump lägga till som en STONITH-konfiguration på första nivån, utöver Azure Fence Agent-konfigurationen.
[A] Kontrollera att kdump är aktiv och konfigurerad.
systemctl is-active kdump # Expected result # active[A] Installera
fence_kdumpstängselagenten.yum install fence-agents-kdump[1] Skapa
fence_kdumpen stonith-enhet i klustret.pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" timeout=30[1] Konfigurera stonith-nivåer så
fence_kdumpatt avstängningsmekanismen först används.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] Tillåt nödvändiga portar för
fence_kdumpgenom brandväggenfirewall-cmd --add-port=7410/udp firewall-cmd --add-port=7410/udp --permanent[A] Se till att
initramfsbildfilen innehållerfence_kdumpfilerna ochhosts. Mer information finns i Hur gör jag för att konfigurera fence_kdump i ett Red Hat Pacemaker-kluster.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] Utför konfigurationen
fence_kdump_nodesi för att undvika att/etc/kdump.conffence_kdumptidsgränsen för vissa versionerkexec-toolsmisslyckas. Mer information finns i fence_kdump-tidsgränsen när fence_kdump_nodes inte har angetts med kexec-tools version 2.0.15 eller senare och fence_kdump misslyckas med "timeout efter X sekunder" i ett RHEL 6- eller 7-kluster med hög tillgänglighet med kexec-verktygsversioner som är äldre än 2.0.14. Exempelkonfigurationen för ett kluster med två noder visas nedan. När du har gjort en/etc/kdump.confändring i måste kdump-avbildningen återskapas. Det kan du göra genom att starta omkdumptjänsten.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 kdumpTesta konfigurationen genom att krascha en nod. Mer information finns i Hur gör jag för att konfigurera fence_kdump i ett Red Hat Pacemaker-kluster.
Viktigt
Om klustret redan används effektivt bör du planera testet eftersom krascha en nod påverkar programmet.
echo c > /proc/sysrq-trigger
Nästa steg
- Azure Virtual Machines planering och implementering för SAP
- Azure Virtual Machines distribution 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å Azure Virtual Machines (VM)