Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln förklarar hur man sätter upp och konfigurerar ett grundläggande tvånods Pacemaker-kluster på SUSE Linux Enterprise Server (SLES) i Azure. Dessa instruktioner täcker SLES for SAP 12 SP5, SLES for SAP 15 SP 4+, och SLES for SAP 16.
Förutsättningar
SLES-dokumentation för hög tillgänglighet (HA)
SLES-dokumentation för SAP-erbjudanden
Översikt
Denna guide förutsätter att du redan har distribuerat den nödvändiga resursgruppen, Azure-virtuellt nätverk, subnät och virtuella maskiner (VM).
Kluster som körs på Linux kräver en fencingagent för att stänga in ohälsosamma noder. För att utföra denna uppgift på Azure, använd en av följande metoder:
- Storage Based Death (SBD) med Azure Shared Disk
- Lagringsbaserad död (SBD) med iSCSI-mål
- Azure-stängselagent
Anmärkning
Följande prefix används i detta dokument:
- [A]: Gäller för alla noder.
- [1]: Gäller endast för nod 1.
- [2]: Gäller endast för nod 2.
Att använda SBD med Azure Shared Disk
Genom att använda Azure Shared Disks kan du montera samma disk på alla virtuella maskiner som ingår i klustret. Du kan hosta din SBD-enhet på den delade disken utan extra infrastrukturkrav.
Benefits
- Erbjuder ett inbyggt Azure delat blockenhetsalternativ för SBD utan att behöva ytterligare resurser.
- Virtuella maskiner kopplar den hanterade disken direkt, vilket minskar beroendet av ytterligare nätverksöverväganden.
Viktiga överväganden
- Du kan använda en Azure-delad disk med
Premium SSDSKU som en SBD-enhet. - Gå igenom listan över stödda operativsystem.
- SBD-enheter som använder en Azure premium delad disk stödjer lokalt redundant lagring (LRS) och zonredundant lagring (ZRS).
- Beroende på typen av distribution väljer du lämplig redundant lagring för en Delad Azure-disk som SBD-enhet.
- En SBD-enhet som använder LRS för Azure premiumdelad disk (skuName - Premium_LRS) stöder endast distributioner i en tillgänglighetsuppsättning.
- En SBD-enhet som använder ZRS för en Azure premium-delad disk (skuName - Premium_ZRS) rekommenderas för distributioner i tillgänglighetszoner.
- Den Delade Azure-disk som du använder för SBD-enheter behöver inte vara stor. Värdet maxShares avgör hur många klusternoder som kan använda den delade disken. Till exempel kan du använda diskstorlekarna P1 eller P2 för din SBD-enhet i ett kluster med två noder, till exempel SAP ASCS/ERS eller SAP Hana scale-up.
- För kluster med fler än två noder, se det dokumenterade värdet för maxShares för den disk du har valt.
- Koppla inte en Azure shared disk SBD-enhet över olika Pacemaker-kluster.
- Om du använder flera SBD-enheter med delad Azure-disk kontrollerar du gränsen för ett maximalt antal datadiskar som kan anslutas till en virtuell dator.
- Mer information om begränsningar för delade Azure-diskar finns i avsnittet "Begränsningar" i dokumentationen om delade Azure-diskar.
Att använda SBD med iSCSI-mål
Denna lösning kräver att du hostar Internet Small Computer System Interface (iSCSI)-mål på minst en ytterligare virtuell maskin (VM).
Benefits
- Dessa iSCSI-värdservrar kan också hysa iSCSI-mål för andra Pacemaker-kluster i samma region.
- Om du redan använder dem lokalt kräver de inga förändringar i hur du använder Pacemaker-klustret.
Viktiga överväganden
- Du måste använda tre iSCSI-värdservrar för att ha högsta nivå av motståndskraft för ditt kluster.
- Att endast använda en server skapar en enda felpunkt som hindrar ditt kluster från att utföra fencing om den servern ligger nere.
- Pacemakern tillåter inte fäktning om du bara har två mål och ett är nere.
- iSCSI-målvärdsservrar måste finnas i samma region som dina kluster.
- Nätverksrouting mellan dina kluster och iSCSI:s värdservrar får inte passera några icke-redundanta nätverksenheter (som en Network Virtual Appliance).
- Underhållshändelser och andra problem med nätverksenheter kan negativt påverka stabiliteten och tillförlitligheten i den övergripande klusterkonfigurationen.
Att använda Azure Fence Agent
Genom att använda Azure Fence Agent kan ditt kluster stänga noder genom att direkt anropa Azure-API:erna för att starta om misslyckade noder.
Benefits
- Inga extra resurser behövs.
- Hanterade identiteter eliminerar behovet av att hantera autentiseringsuppgifter.
Viktiga överväganden
- Använd Managed Identities för autentisering. Om du för närvarande använder en tjänsteprincip, uppdatera Azure Fence Agent från SPN till MSI.
- Azure fence-agenten kräver utgående anslutning till publika Azure-endpoints. Mer information och möjliga lösningar finns i Offentlig slutpunktsanslutning för virtuella datorer med standard-ILB.
- Övervaknings- och fäktningsåtgärderna deserialiseras. Om det finns en övervakningsåtgärd som körs längre och samtidiga fäktningshändelser blir det därför ingen fördröjning i klusterredundansväxlingen eftersom övervakningsåtgärden redan körs.
Distribuera en Azure delad disk för SBD
För att skapa och bifoga en Azure-delad disk med PowerShell, kör följande kommandon. Om du vill distribuera resurser genom att använda Azure CLI eller Azure-portalen, se Deploy a ZRS disk.
$ResourceGroup = "<ResourceGroupName>"
$DiskSizeInGB = 4
$DiskName = "<SBDDiskName>"
# Must be Equal to or greater than the Number of Nodes in the Cluster
$ShareNodes = 2
# Options are "Premium_LRS" or "Premium_ZRS"
$SKUName = "<DiskSKU>"
# VMs to attach the disk to
$vmNames = @("sap-cl1", "sap-cl2")
# Lun to attach the disk to. You should use the same lun on all servers in the cluster.
$lunNumber = <lunNumber>
$diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
# Attach SBD disk to cluster VMs
foreach ($vmName in $vmNames)
{
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $lunNumber
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
Använd iSCSI-mål
Skapa iSCSI-målservrar
Distribuera tre virtuella maskiner som körs på en stödd SLES OS-version. VM:arna behöver inte vara stora. VM-storlekar som Standard_E2s eller Standard_D2s är tillräckliga.
Anmärkning
Du behöver inte använda SLES för SAP Applications OS-avbildning för iSCSI-målservern. Du kan använda en standard SLES OS-avbildning istället. Supportlivscykeln varierar dock mellan olika os-produktversioner.
Installera de senaste uppdateringarna och starta om om det behövs.
sudo zypper -n updateInstallera iSCSI-targetpaketet.
sudo zypper -n install targetcli-fbAktivera och starta iSCSI-tjänsten.
sudo systemctl start targetcli sudo systemctl enable targetcli
Skapa iSCSI-mål
För varje kluster behöver du provisionera en iSCSI-disk på varje iSCSI-värdserver och sedan ge varje klusternod åtkomst till den disken. I detta exempel skapar du diskar för två olika kluster:
- ascsnw1: ASCS/ERS-klustret för NW1
- hdbnw1: HANA-databasklustret för NW1
- sap-cl1 och sap-cl2: Värdnamn för NW1 ASCS/ERS-klustrets noder
- sap-db1 och sap-db2: Värdnamn för NW1 HANA-klustrets noder
- Skapa rotmappen för alla SBD-enheter.
sudo mkdir /sbd - Skapa SBD-enheten för det första klustret (ascsnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 # Grant Cluster Node 1 (sap-cl1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl1.local:sap-cl1 # Grant Cluster Node 2 (sap-cl2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl2.local:sap-cl2 - Skapa SBD-enheten för det andra klustret (hdbnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdhdbnw1 /sbd/sbdhdbnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.hdbnw1.local:hdbnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/luns/ create /backstores/fileio/sbdhdbnw1 # Grant Cluster Node 1 (sap-db1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db1.local:sap-db1 # Grant Cluster Node 2 (sap-db2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db2.local:sap-db2 - Spara konfigurationen.
sudo targetcli saveconfig - Kontrollera installationen.
sudo targetcli ls o- / ............................................................................................... [...] o- backstores .................................................................................... [...] | o- block ........................................................................ [Storage Objects: 0] | o- fileio ....................................................................... [Storage Objects: 2] | | o- sbdascsnw1 ..................................... [/sbd/sbdascsnw1 (50.0MiB) write-thru activated] | | | o- alua ......................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | | o- sbdhdbnw1 ....................................... [/sbd/sbdhdbnw1 (50.0MiB) write-thru activated] | | o- alua ......................................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | o- pscsi ........................................................................ [Storage Objects: 0] | o- ramdisk ...................................................................... [Storage Objects: 0] o- iscsi .................................................................................. [Targets: 2] | o- iqn.2006-04.hdbnw1.local:hdbnw1 ......................................................... [TPGs: 1] | | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | | o- acls ................................................................................ [ACLs: 2] | | | o- iqn.2006-04.sap-db1.local:sap-db1 .......................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | | o- iqn.2006-04.sap-db2.local:sap-db2 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | o- luns ................................................................................ [LUNs: 1] | | | o- lun0 ................................. [fileio/sbdhdbnw1 (/sbd/sbdhdbnw1) (default_tg_pt_gp)] | | o- portals .......................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ........................................................................... [OK] | o- iqn.2006-04.ascsnw1.local:ascsnw1 ....................................................... [TPGs: 1] | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | o- acls ................................................................................ [ACLs: 2] | | o- iqn.2006-04.sap-cl1.local:sap-cl1 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | | o- iqn.2006-04.sap-cl2.local:sap-cl2 .......................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | o- luns ................................................................................ [LUNs: 1] | | o- lun0 ............................... [fileio/sbdascsnw1 (/sbd/sbdascsnw1) (default_tg_pt_gp)] | o- portals .......................................................................... [Portals: 1] | o- 0.0.0.0:3260 ........................................................................... [OK] o- loopback ............................................................................... [Targets: 0]
Konfigurera Azure Fence Agent
Skapa identitet
För att skapa en managed identity (MSI), skapa en systemtilldelad managed identity för varje VM i klustret. Användartilldelade hanterade identiteter stöds inte för närvarande.
Skapa en anpassad roll.
Din identitet behöver behörigheter via Azure RBAC för att utföra fencing-åtgärder på dina virtuella datorer. För att uppfylla Least Privileged Access (LPA) säkerhetsmodellen, skapa en anpassad RBAC-roll.
Använd följande definition för din roll och ersätt ditt prenumerations-ID(n) där det behövs:
{ "Name": "Linux Fence Agent", "description": "Allowed to power-off and start virtual machines", "assignableScopes": [ "/subscriptions/<Subscription 1 ID (GUID)>", "/subscriptions/<Subscription N ID (GUID)>" ], "actions": [ "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/powerOff/action", "Microsoft.Compute/virtualMachines/start/action" ], "notActions": [], "dataActions": [], "notDataActions": [] }Tilldela den anpassade rollen till dina identiteter.
För varje VM i ditt kluster, tilldela dess hanterade identitet till den anpassade rollen "Linux Fence Agent" för varje VM i klustret, inklusive sig själv. Detaljerade steg finns i Tilldela en hanterad identitet åtkomst till en resurs med hjälp av Azure Portal.
Viktigt!
Var medveten om att tilldelning och borttagning av auktorisation med hanterade identiteter kan skjutas upp tills den träder i kraft.
Skapa och konfigurera kluster
[A] Uppdatera operativsystemet och starta om om det behövs.
sudo zypper -n update[A] Installera nödvändiga klusterpaket.
sudo zypper -n install socat pacemaker resource-agents[A] Installera nödvändiga stängselpaket.
sudo zypper -n install sbdsudo zypper -n install sbd open-iscsisudo zypper -n install fence-agents-azure-arm[A] Konfigurera DNS.
Du kan antingen använda en DNS-server eller ändra
/etc/hostspå alla noder. Det här exemplet visar hur du använder/etc/hosts-filen.Uppdatera posterna så att de matchar dina IP-adresser och värdnamn.
sudo vi /etc/hosts [...] # IP address of cluster node 1 10.27.0.6 sap-cl1 # IP address of cluster node 2 10.27.0.7 sap-cl2sudo vi /etc/hosts [...] # IP address of cluster node 1 10.0.0.6 sap-cl1 # IP address of cluster node 2 10.0.0.7 sap-cl2 # IP address of iSCSI Target Host Server 1 10.0.0.17 sbd-iscsi1 # IP address of iSCSI Target Host Server 1 10.0.0.18 sbd-iscsi2 # IP address of iSCSI Target Host Server 1 10.0.0.19 sbd-iscsi3[A] Utbyt SSH-rootnycklar mellan noderna.
sudo ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519 sudo cat /root/.ssh/id_ed25519.pub sudo vi /root/.ssh/authorized_keys [...] <Contents from cat command on other server>[A] Konfigurera operativsystemet.
- Justera dirty cache för NFS-klienter på högminnessystem. Se denna artikel för mer information.
sudoedit /etc/sysctl.d/30-nfs.conf && sudo sysctl --systemvm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800 - Se till att
vm.swappinessden är inställd på 10 för att minska swap-användningen och gynna minnet.sudoedit /etc/sysctl.d/31-memswap.conf && sudo sysctl --systemvm.swappiness = 10 -
SLES 12 SP 5 Only: Pacemakern skapar ibland många processer, vilket kan förbruka det tillåtna antalet. När detta inträffar kan ett hjärtslag mellan klusternoderna misslyckas och leda till en failover av resurser. Öka det maximala antalet tillåtna processer genom att sätta följande parameter:
# Edit the configuration file sudo vi /etc/systemd/system.conf [...] DefaultTasksMax=4096 [...] # Activate this setting sudo systemctl daemon-reload # Test to ensure that the change was successful sudo systemctl --no-pager show | grep DefaultTasksMax
- Justera dirty cache för NFS-klienter på högminnessystem. Se denna artikel för mer information.
[1] Skapa klustret.
sudo crm cluster init --yes --name ascsnw1 --node sap-cl1 --node sap-cl2[1] Konfigurera klusterinställningar.
sudo crm corosync set totem.token 30000 sudo csync2 -xv sudo crm cluster run "corosync-cfgtool -R"Konfigurera en uppstartsfördröjning för Pacemaker.
Att starta Pacemaker omedelbart efter uppstart kan göra att en nod återansluter till klustret innan failover har slutförts, vilket kan förhindra failover eller fördröja återställningen. För att lösa detta problem använd en timer-tjänst för att fördröja pacemakerstart vid omstart.
-
[A] Konfigurera timertjänst.
sudo vi /etc/systemd/system/pacemaker.timer[Unit] Description=Delay start of pacemaker.service after boot [Timer] OnBootSec=216 Unit=pacemaker.service [Install] WantedBy=timers.target -
[A] Aktivera timerservice.
sudo systemctl daemon-reload sudo systemctl enable pacemaker.timer -
[1] Inaktivera pacemaker-tjänster.
sudo crm cluster disable --all
-
[A] Konfigurera timertjänst.
Validera klustret.
-
[1] Verifiera Pacemaker-klustret.
sudo crm status Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 2.1.7+20231219.0f7f88312-150600.6.15.1-2.1.7+20231219.0f7f88312) - partition with quorum * Last updated: Tue Aug 4 17:50:24 2026 on sap-cl1 * Last change: Thu Jul 30 19:02:56 2026 by hacluster via hacluster on sap-cl1 * 2 nodes configured * 0 resource instances configured Node List: * Online: [ sap-cl1 sap-cl2 ] Full List of Resources: -
[A] Validera tjänster.
systemctl list-unit-files pacemaker.timer pacemaker.service corosync.serviceUNIT FILE STATE PRESET corosync.service disabled disabled pacemaker.service disabled disabled pacemaker.timer enabled disabled
-
[1] Verifiera Pacemaker-klustret.
Konfigurera stängslet
-
[A] Aktivera SBD-tjänsten.
sudo systemctl enable sbd -
[A] Aktivera mjukvaruvakthund.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[A] Upptäck iSCSI:s enhets-ID.
- Bestäm monteringspunkt baserat på LUN-nummer
ls -l /dev/disk/azure/scsi1/lun1 lrwxrwxrwx. 1 root root 12 Apr 16 20:22 /dev/disk/azure/scsi1/lun1 -> ../../../sdb - Få iSCSI-enhets-ID från mount.
ls -l /dev/disk/by-id/scsi-3* | grep -i sdb lrwxrwxrwx. 1 root root 9 Apr 16 20:22 /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -> ../../sdb
- Bestäm monteringspunkt baserat på LUN-nummer
-
[1] Skapa SBD-enheten.
sudo sbd -d /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -1 60 -4 120 create
-
[1] Lägg till SBD-enheten i klustret.
sudo crm cluster init --yes sbd -s /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -
[1] Ändra SBD-konfigurationsinställningar.
sudo crm configure property stonith-timeout=210 sudo crm configure property stonith-enabled=true # For the below command, 600 is the interval, and 120 is the timeout sudo crm configure monitor stonith-sbd 600:120 sudo crm configure set stonith-sbd.pcmk_delay_max 15 -
[A] Validera SBD-konfigurationsfilen.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
-
[A] Aktivera de nödvändiga tjänsterna.
sudo systemctl enable sbd iscsi iscsid -
[A] Aktivera mjukvaruvakthund.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[1] Uppdatera
InitiatorNameför nod 1.sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1 -
[2] Uppdatera
InitiatorNameför nod 2.# Node 2 sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2 -
[A] Starta om iSCSI-tjänsterna.
sudo systemctl restart iscsi iscsid -
[A] Montera iSCSI-målen från alla iSCSI-värdservrar.
for hostServer in sbd-iscsi1 sbd-iscsi2 sbd-iscsi3; do iscsiadm -m discovery --type=st --portal=${hostServer}:3260 iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=${hostServer}:3260 iscsiadm -m node --portal=${hostServer}:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic done -
[A] Upptäck iSCSI:s enhets-ID:n.
- Bestäm iSCSI-monteringspunkterna.
lsscsi [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb [2:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdc [3:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdd [4:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sde - Få iSCSI-enhets-ID:n.
ls -l /dev/disk/by-id/scsi-3* | grep sd[c,d,e] lrwxrwxrwx 1 root root 9 Jul 21 18:02 /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -> ../../sdd lrwxrwxrwx 1 root root 9 Jul 21 17:50 /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -> ../../sdc lrwxrwxrwx 1 root root 9 Jul 21 18:04 /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -> ../../sde
- Bestäm iSCSI-monteringspunkterna.
-
[1] Skapa SBD-enheterna.
sudo sbd -d /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -1 60 -4 120 create
-
[1] Lägg till SBD-enheterna i klustret.
sudo crm cluster init --yes sbd \ -s /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 \ -s /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff \ -s /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -
[1] Ändra SBD-konfigurationsinställningar.
sudo crm configure property stonith-timeout=210 sudo crm configure property stonith-enabled=true # For the below command, 600 is the interval, and 120 is the timeout sudo crm configure monitor stonith-sbd 600:120 sudo crm configure set stonith-sbd.pcmk_delay_max 15 -
[A] Validera SBD-konfigurationsfilen.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
[1] Configure Azure Fence Agent.
Anmärkning
När du använder Azure government cloud måste du ange alternativet
cloud=när du konfigurerar Azure Fence Agent. Till exempelcloud=usgovför Azure US Government-molnet.sudo crm configure primitive rsc_st_azure stonith:fence_azure_arm params msi=true \ resourceGroup="<ResourceGroupName>" subscriptionId="<SubscriptionID>" \ pcmk_host_map="sap-cl1:<AzureVMNameCL1>;sap-cl2:<AzureVMNameCL2>" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 \ pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \ meta failure-timeout=120s op monitor interval=3600 timeout=120[1] Konfigurera klustret för Azure Fence Agent.
sudo crm configure property stonith-enabled=true sudo crm configure property stonith-timeout=900
Bygga ett pacemakerkluster med fler än två noder
Om du bygger ett större kluster, tänk på dessa överväganden:
[1] Justera klusterkonfigurationen.
Värdena
quorum.two_nodeochquorum.expected_votesuppdateras automatiskt när du lägger till ytterligare en nod, så att du har tre eller fler noder. Verifiera attquorum.two_nodeär0och attquorum.expected_votesär lika med antalet noder i ditt kluster.sudo crm corosync get quorum.two_node sudo crm corosync get quorum.expected_votesJustera stängselkonfigurationen.
sudo crm resource param stonith-sbd delete pcmk_delay_max sudo crm resource param stonith-sbd set pcmk_action_limit -1sudo crm resource param rsc_st_azure delete pcmk_delay_max sudo crm resource param rsc_st_azure pcmk_action_limit -1
Konfigurera Pacemaker för schemalagda Händelser i Azure
Scheduled Events är en Azure metadatatjänst som ger din applikation tid att förbereda sig för VM-underhåll. Den ger information om kommande underhållshändelser, såsom en omstart, så att din applikation kan förbereda sig för dem och begränsa störningar.
azure-events-az resursagenten övervakar denna metadatatjänst. När agenten upptäcker händelser och avgör att en annan klusternod är tillgänglig, sätter den ett nodnivå-hälsoattribut #health-azure till -1000000. Detta värde gör att klustret anser att noden är ohälsosam och migrerar resurser bort från den drabbade noden. Platsbegränsningen säkerställer att resurser som börjar med health- utesluts, eftersom azure-events-az-agenten fortfarande måste köras på båda noderna. När den berörda klusternoden är fri från körande klusterresurser meddelar agenten metadatatjänsten och den schemalagda händelsen kan fortsätta. När alla händelser är klara återställer resursagenten attributet #health-azure till 0, vilket markerar noden som frisk igen.
Viktigt!
Tidigare beskrev det här dokumentet användningen av azure-events för resursagenten. Den nya resursagenten azure-events-az har fullt stöd för Azure-miljöer som distribuerats i olika tillgänglighetszoner. Använd den nyare azure-events-az-agenten för alla högtilgängliga SAP-system med Pacemaker.
Endast SLES 12 SP5 Kontrollera din version av paketet
resource-agentsoch uppdatera om det behövs. SLES 15 och högre inkluderar det som standard i sina installerade versioner.zypper info resource-agentsMinimiversionen är
resource-agents-4.3.018.a7fb5035-3.98.1.[1] Sätt klustret i underhållsläge.
sudo crm configure property maintenance-mode=true[1] Sätt pacemakerklusterets hälsonodstrategi och begränsning.
Viktigt!
Definiera inga andra resurser i klustret med start från
health-, förutom de resurser som beskrivs i nästa steg.sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'[1] Ange det initiala värdet för klusterattributen.
Kör ett kommando för varje klusternod. För skalbara miljöer inkludera majoritetstillverkaren VM.
# Node 1 sudo crm_attribute --node sap-cl1 --name '#health-azure' --update 0 # Node 2 sudo crm_attribute --node sap-cl2 --name '#health-azure' --update 0 # Node N sudo crm_attribute --node sap-clN --name '#health-azure' --update 0[1] Konfigurera resurserna i Pacemaker. Resurserna måste börja med
health-azure.sudo crm configure primitive health-azure-events ocf:heartbeat:azure-events-az \ meta failure-timeout=120s \ op start start-delay=60s \ op monitor interval=10s sudo crm configure clone health-azure-events-cln health-azure-events \ meta allow-unhealthy-nodes=trueAnmärkning
När du konfigurerar resursen
health-azure-eventskan du ignorera följande varningsmeddelande.VARNING: health-azure-events: okänt attribut "allow-unhealthy-nodes".
Ta ut pacemakerklustret ur underhållsläge och rätta till eventuella fel.
sudo crm configure property maintenance-mode=false sudo crm resource cleanupVerifiera att det
health-azure-eventsstartar framgångsrikt på alla noder.crm status Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 3.0.0+20250218.64cd85422c-160000.4.1-3.0.0+20250218.64cd85422c) - partition with quorum * Last updated: Thu Jul 30 19:07:49 2026 on sap-cl1 * Last change: Thu Jul 30 19:06:01 2026 by root via root on sap-cl1 * 2 nodes configured * 3 resource instances configured Node List: * Online: [ z04ascs3 z04ascs4 ] Full List of Resources: * stonith-sbd (stonith:fence_sbd): Started sap-cl1 * Clone Set: health-azure-events-cln [health-azure-events]: * Started: [ sap-cl1 sap-cl2 ]Första gången en förfrågan för schemalagda händelser körs kan ta upp till 2 minuter. Pacemakertestning med schemalagda händelser kan använda omstarts- eller omdistribueringsåtgärder för de virtuella klusterdatorerna. För mer information, se schemalagda evenemang.
Anmärkning
När du har konfigurerat Pacemaker-resurserna för azure-events-agenten kan du få varningsmeddelanden som följande om du aktiverar eller avaktiverar underhållsläge för klustret:
VARNING: cib-bootstrap-options: okänt attribut "hostName_hostname"
VARNING: cib-bootstrap-options: okänt attribut "azure-events_globalPullState"
VARNING: cib-bootstrap-options: okänt attribut "hostName_ värdnamn"
Du kan ignorera dessa varningsmeddelanden.
Nästa steg
- Planering och implementering av Azure Virtual Machines för SAP.
- Azure Virtual Machines-distribution för SAP.
- Azure Virtual Machines DBMS-distribution för SAP.
- Hög tillgänglighet för NFS Simple Mount på Azure-VM:ar på SUSE Linux Enterprise Server.
- Mer 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.