Pacemaker instellen op SUSE Linux Enterprise Server in Azure

Dit artikel legt uit hoe je een eenvoudige twee-knoop Pacemaker-cluster opzet en configureert op SUSE Linux Enterprise Server (SLES) in Azure. Deze instructies behandelen SLES for SAP 12 SP5, SLES for SAP 15 SP 4+, en SLES for SAP 16.

Prerequisites

Overzicht

Deze gids gaat ervan uit dat je de benodigde resource group, Azure virtueel netwerk, subnet en virtuele machines (VM's) al hebt uitgerold.

Clusters die op Linux draaien, vereisen een fencing agent om ongezonde knooppunten te fenceen. Om deze taak op Azure uit te voeren, gebruik je een van de volgende methoden:

  • Storage Based Death (SBD) met Azure Shared Disk
  • Storage Based Death (SBD) met iSCSI-doelen
  • Azure Fencing Agent

Notitie

De volgende voorvoegsels worden in dit document gebruikt:

  • [A]: Van toepassing op alle knooppunten.
  • [1]: Alleen van toepassing op knooppunt 1.
  • [2]: Alleen van toepassing op knooppunt 2.

Gebruik van SBD met Azure Shared Disk

Door gebruik te maken van Azure Shared Disks kun je dezelfde schijf mounten op alle virtuele machines die deel uitmaken van de cluster. Je kunt je SBD-apparaat op die gedeelde schijf hosten zonder extra infrastructuurvereisten.

Diagram van een gedeelde Azure-schijf als een SBD-apparaat in een pacemakercluster.

Voordelen

  • Biedt een native Azure shared block device-optie voor SBD zonder extra middelen te vereisen.
  • Virtuele machines verbinden de beheerde schijf direct, waardoor de afhankelijkheid van extra netwerkoverwegingen wordt verminderd.

Belangrijke overwegingen

  • Je kunt een gedeelde Azure-schijf met de Premium SSD SKU als SBD-apparaat gebruiken.
  • Bekijk de lijst met ondersteunde besturingssystemen.
  • SBD-apparaten die een Azure premium gedeelde schijf gebruiken, ondersteunen lokaal redundante opslag (LRS) en zone-redundante opslag (ZRS).
  • Afhankelijk van het type implementatie, kiest u de juiste redundante opslag voor een gedeelde Azure-schijf als uw SBD-apparaat.
    • Een SBD-apparaat dat LRS gebruikt voor Azure premium gedeelde schijf (skuName - Premium_LRS) ondersteunt alleen implementaties in een beschikbaarheidsset.
    • Een SBD-apparaat dat ZRS gebruikt voor een Azure premium gedeelde schijf (skuName - Premium_ZRS) wordt aanbevolen voor implementaties in beschikbaarheidszones.
  • De gedeelde Azure-schijf die u voor SBD-apparaten gebruikt, hoeft niet groot te zijn. De waarde maxShares bepaalt hoeveel clusterknooppunten de gedeelde schijf kunnen gebruiken. Je kunt bijvoorbeeld P1- of P2-schijfgroottes gebruiken voor je SBD-apparaat op een twee-knoop cluster zoals SAP ASCS/ERS of SAP HANA scale-up.
    • Voor clusters met meer dan twee knooppunten, raadpleeg de gedocumenteerde maxShares voor je geselecteerde schijf.
  • Verbind geen Azure shared disk SBD-apparaat aan verschillende Pacemaker-clusters.
  • Als u meerdere gedeelde Azure-schijf-SBD-apparaten gebruikt, controleert u de limiet voor een maximum aantal gegevensschijven dat kan worden gekoppeld aan een virtuele machine.
  • Raadpleeg de sectie Beperkingen van de documentatie over gedeelde Azure-schijven voor meer informatie over beperkingen voor gedeelde Azure-schijven.

SBD gebruiken met iSCSI-doelen

Deze oplossing vereist dat je Internet Small Computer System Interface (iSCSI)-doelen host op ten minste één extra virtuele machine (VM).

Diagram van iSCSI-servers die iSCSI-doelen hosten voor SBD-apparaten in een Pacemaker Cluster.

Voordelen

  • Deze iSCSI-hostservers kunnen ook iSCSI-doelen hosten voor andere Pacemaker-clusters in dezelfde regio.
  • Als je ze al on-premises gebruikt, vereisen ze geen aanpassingen aan hoe je de Pacemaker-cluster bedient.

Belangrijke overwegingen

  • Je moet drie iSCSI-hostservers gebruiken om het hoogste niveau van veerkracht voor je cluster te hebben.
    • Het gebruik van slechts één server creëert één storingspunt, waardoor je cluster geen fencing kan uitvoeren als die server uitvalt.
    • Pacemaker staat geen fencing toe als je slechts twee nodes hebt en er één is uitgevallen.
  • iSCSI-doelhostservers moeten zich in dezelfde regio bevinden als je clusters.
  • Netwerkroutering tussen je clusters en iSCSI-hostservers mag niet over niet-redundante netwerkapparaten (zoals een Network Virtual Appliance) lopen.
    • Onderhoudsgebeurtenissen en andere problemen met netwerkapparaten kunnen de stabiliteit en betrouwbaarheid van de totale clusterconfiguratie negatief beïnvloeden.

Gebruik van de Azure Fence Agent

Door gebruik te maken van de Azure Fence Agent kan je cluster knooppunten afsluiten door direct de Azure API's aan te roepen om mislukte knooppunten opnieuw op te starten.

Diagram van de Azure Fence Agent in een Pacemaker-cluster.

Voordelen

  • Geen extra middelen nodig.
  • Beheerde identiteiten verwijderen alle inloggegevensonderhoud.

Belangrijke overwegingen

  • Gebruik Managed Identities voor authenticatie. Als je momenteel een service principal gebruikt, update dan de Azure Fence Agent van SPN naar MSI.
  • De Azure fence agent vereist uitgaande connectiviteit naar publieke Azure-eindpunten. Zie Openbare eindpuntconnectiviteit voor VM's met behulp van standaard-ILB voor meer informatie en mogelijke oplossingen.
  • De bewakings- en afschermingsbewerkingen worden gedeserialiseerd. Als er dus een langduriger actieve bewakingsbewerking en een gelijktijdige fencing-gebeurtenis is, is er geen vertraging voor de cluster-overgang omdat de bewakingsbewerking al wordt uitgevoerd.

Deploy een gedeelde Azure Disk voor SBD

Om een gedeelde Azure-schijf te maken en te koppelen met PowerShell, voer je de volgende commando's uit. Als u resources wilt implementeren met behulp van de Azure CLI of Azure Portal, raadpleegt u Een ZRS-schijf implementeren.

$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
}

Gebruik iSCSI-doelen

iSCSI-targethostservers configureren

  1. Deploy drie virtuele machines die draaien op een ondersteunde SLES OS-versie. De VM's hoeven niet groot te zijn. VM-groottes zoals Standard_E2s of Standard_D2s zijn voldoende.

    Notitie

    Je hoeft SLES niet te gebruiken voor de SAP Applications OS-image voor de iSCSI-doelserver. Je kunt in plaats daarvan een standaard SLES OS-image gebruiken. De levenscyclus van de ondersteuning varieert echter tussen verschillende productversies van het besturingssysteem.

  2. Installeer de nieuwste updates en start indien nodig opnieuw op.

    sudo zypper -n update
    
  3. Installeer het iSCSI target pakket.

    sudo zypper -n install targetcli-fb
    
  4. Activeer en start de iSCSI-service.

    sudo systemctl start targetcli
    sudo systemctl enable targetcli
    

Maak iSCSI-doelen aan

Voor elke cluster moet je een iSCSI-schijf provisioneren op elke iSCSI-hostserver, en vervolgens toegang geven aan elke clusterknoop op die schijf. In dit voorbeeld maak je schijven aan voor twee verschillende clusters:

  • ascsnw1: De ASCS/ERS-cluster voor NW1
  • hdbnw1: De HANA Database-cluster voor NW1
  • sap-cl1 en sap-cl2: Gastnamen voor de NW1 ASCS/ERS clusterknooppunten
  • sap-db1 en sap-db2: Gastnamen voor de NW1 HANA-clusterknooppunten
  1. Maak de hoofdmap voor alle SBD-apparaten.
    sudo mkdir /sbd
    
  2. Maak het SBD-apparaat aan voor de eerste cluster (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
    
  3. Maak het SBD-apparaat aan voor de tweede cluster (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
    
  4. Sla de configuratie op.
    sudo targetcli saveconfig
    
  5. Controleer de opstelling.
    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]
    

Azure Fence Agent configureren

  1. Identiteit creëren

    Om een beheerde identiteit (MSI) te creëren, maak je voor elke VM in het cluster een door het systeem toegewezen beheerde identiteit . Door gebruikers toegewezen beheerde identiteiten worden op dit moment niet ondersteund.

  2. Maak een aangepaste rol aan.

    Je identiteit heeft via Azure RBAC machtigingen nodig om fencingacties op je VM's uit te voeren. Om te voldoen aan het Least Privileged Access (LPA) Security Model, maak je een aangepaste RBAC-rol aan.

    Gebruik de volgende definitie voor je functie, waarbij je je abonnements-ID(s) vervangt waar nodig:

    {
          "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": []
    }
    
  3. Wijs de aangepaste rol toe aan uw identiteiten.

    Voor elke VM in je cluster wijs je de beheerde identiteit toe aan de aangepaste rol "Linux Fence Agent" voor elke VM in de cluster, inclusief zichzelf. Zie Een beheerde identiteit toegang tot een resource toewijzen met behulp van Azure Portal voor gedetailleerde stappen.

    Belangrijk

    Wees je ervan bewust dat de toewijzing en verwijdering van autorisatie met beheerde identiteiten kan worden uitgesteld tot deze effectief is.

Cluster aanmaken en configureren

  1. [A] Werk het besturingssysteem bij en start indien nodig opnieuw op.

    sudo zypper -n update
    
  2. [A] Installeer de vereiste clusterpakketten.

    sudo zypper -n install socat pacemaker resource-agents 
    
  3. [A] Installeer de vereiste hekpakketten.

    sudo zypper -n install sbd
    
    sudo zypper -n install sbd open-iscsi
    
    sudo zypper -n install fence-agents-azure-arm
    
  4. [A] Stel DNS in.

    U kunt ofwel een DNS-server gebruiken of /etc/hosts op alle knooppunten wijzigen. In dit voorbeeld ziet u hoe u het /etc/hosts bestand gebruikt.

    Werk de vermeldingen bij zodat ze overeenkomen met je IP-adressen en hostnamen.

    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-cl2
    
    sudo 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
    
  5. [A] Wissel SSH-rootsleutels uit tussen de knooppunten.

    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>
    
  6. [A] Configureer het besturingssysteem.

    1. Pas de dirty cache aan voor NFS-clients op systemen met veel geheugen. Zie dit artikel voor meer informatie.
      sudoedit /etc/sysctl.d/30-nfs.conf && sudo sysctl --system
      
      vm.dirty_bytes = 629145600
      vm.dirty_background_bytes = 314572800
      
    2. Zorg dat vm.swappiness het op 10 staat om swap-gebruik te verminderen en geheugen te bevoordelen.
      sudoedit /etc/sysctl.d/31-memswap.conf && sudo sysctl --system
      
      vm.swappiness = 10
      
    3. SLES 12 SP 5 Alleen: Pacemaker veroorzaakt af en toe veel processen, waardoor het toegestane aantal kan worden uitgeput. Als dit gebeurt, kan een heartbeat tussen de clusterknooppunten uitvallen en leiden tot een failover van uw resources. Verhoog het maximale aantal toegestane processen door de volgende parameter in te stellen:
      # 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
      
  7. [1] Maak het cluster.

    sudo crm cluster init --yes --name ascsnw1 --node sap-cl1 --node sap-cl2
    
  8. [1] Configureer de clusterinstellingen.

    sudo crm corosync set totem.token 30000
    sudo csync2 -xv
    sudo crm cluster run "corosync-cfgtool -R"
    
  9. Configureer een opstartvertraging voor Pacemaker.

    Het direct starten van Pacemaker na het opstarten kan mogelijk een node in staat stellen zich weer bij de cluster te voegen voordat de failover is voltooid, waardoor failover wordt voorkomen of het herstel wordt vertraagd. Om dit probleem op te lossen, gebruik je een timerservice om het opstarten van de pacemaker bij herstart uit te stellen.

    1. [A] Stel de timerservice in.
      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
      
    2. [A] Activeer timerservice.
      sudo systemctl daemon-reload
      sudo systemctl enable pacemaker.timer
      
    3. [1] Schakel de pacemaker-diensten uit.
      sudo crm cluster disable --all
      
  10. Controleer het cluster.

    1. [1] Controleer het Pacemaker-cluster.
      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:
      
    2. [A] Valideer de diensten.
      systemctl list-unit-files pacemaker.timer pacemaker.service corosync.service
      
      UNIT FILE         STATE    PRESET
      corosync.service  disabled disabled
      pacemaker.service disabled disabled
      pacemaker.timer   enabled  disabled
      

Afrastering configureren

  1. [A] Activeer de SBD-dienst.
    sudo systemctl enable sbd
    
  2. [A] Schakel de softwarewaakhond in.
    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    sudo modprobe softdog
    
  3. [A] Ontdek de iSCSI-apparaat-ID.
    1. Bepaal het mountpunt op basis van het LUN-nummer
      ls -l /dev/disk/azure/scsi1/lun1
      lrwxrwxrwx. 1 root root 12 Apr 16 20:22 /dev/disk/azure/scsi1/lun1 -> ../../../sdb
      
    2. Haal de iSCSI-apparaat-ID van 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
      
  4. [1] Maak het SBD-apparaat.
    sudo sbd -d /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -1 60 -4 120 create
    
  1. [1] Voeg het SBD-apparaat toe aan de cluster.
    sudo crm cluster init --yes sbd -s /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617
    
  2. [1] Verander de SBD-configuratie-instellingen.
    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
    
  3. [A] Valideer SBD-configuratiebestand.
    sudo vi /etc/sysconfig/sbd
    
    [...]
    SBD_DELAY_START=no
    [...]
    SBD_PACEMAKER=yes
    [...]
    SBD_STARTMODE=always
    [...]
    
  1. [A] Schakel de benodigde diensten in.
    sudo systemctl enable sbd iscsi iscsid
    
  2. [A] Schakel de softwarewaakhond in.
    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    sudo modprobe softdog
    
  3. [1] Werk de InitiatorName voor knooppunt 1 bij.
    sudo vi /etc/iscsi/initiatorname.iscsi
    [...]
    InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1
    
  4. [2] Werk InitiatorName voor knooppunt 2 bij.
    # Node 2
    sudo vi /etc/iscsi/initiatorname.iscsi
    [...]
    InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2
    
  5. [A] Herstart de iSCSI-diensten.
    sudo systemctl restart iscsi iscsid
    
  6. [A] Plaats de iSCSI-doelen vanaf alle iSCSI-hostservers.
    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
    
  7. [A] Ontdek de iSCSI-apparaat-ID's.
    1. Bepaal de iSCSI-mountpunten.
      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
      
    2. Haal de iSCSI-apparaat-ID's op.
      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
      
  8. [1] Maak de SBD-apparaten.
    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. [1] Voeg de SBD-apparaten toe aan de cluster.
    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
    
  2. [1] Verander de SBD-configuratie-instellingen.
    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
    
  3. [A] Valideer SBD-configuratiebestand.
    sudo vi /etc/sysconfig/sbd
    
    [...]
    SBD_DELAY_START=no
    [...]
    SBD_PACEMAKER=yes
    [...]
    SBD_STARTMODE=always
    [...]
    
  1. [1] Configureer de Azure-fence-agent.

    Notitie

    Bij het gebruik van Azure government cloud moet je de cloud= optie specificeren bij het configureren van de Azure Fence Agent. Bijvoorbeeld cloud=usgov voor de Azure US Government-cloud.

    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
    
  2. [1] Configureer de cluster voor Azure Fence Agent.

    sudo crm configure property stonith-enabled=true
    sudo crm configure property stonith-timeout=900
    

Het bouwen van een pacemakercluster met meer dan twee knooppunten

Als je een groter cluster bouwt, houd dan deze overwegingen in gedachten:

  1. [1] Stel de configuratie van het cluster aan.

    De quorum.two_node en-waarden quorum.expected_votes worden automatisch bijgewerkt wanneer je een derde of meer knooppunten toevoegt. Valideer dat het quorum.two_node is 0 en quorum.expected_votes gelijk is aan het aantal nodes in je cluster.

    sudo crm corosync get quorum.two_node
    sudo crm corosync get quorum.expected_votes
    
  2. Pas de afstelling van het hek aan.

    sudo crm resource param stonith-sbd delete pcmk_delay_max
    sudo crm resource param stonith-sbd set pcmk_action_limit -1
    
    sudo crm resource param rsc_st_azure delete pcmk_delay_max
    sudo crm resource param rsc_st_azure pcmk_action_limit -1
    

Pacemaker configureren voor geplande Azure-gebeurtenissen

Geplande Gebeurtenissen is een Azure Metadata Service die je applicatie tijd geeft om je voor te bereiden op VM-onderhoud. Het geeft informatie over aankomende onderhoudsgebeurtenissen, zoals een herstart, zodat je applicatie zich daarop kan voorbereiden en verstoringen kan beperken.

De azure-events-az resource agent monitort deze metadata-service. Wanneer de agent gebeurtenissen detecteert en bepaalt dat er een andere clusternode beschikbaar is, stelt hij een node-level gezondheidsattribuut #health-azure in op -1000000. Deze waarde zorgt ervoor dat de cluster de node als ongezond beschouwt en middelen wegmigreert van de getroffen node. De locatiebeperking zorgt ervoor dat resources die beginnen met health- worden uitgesloten, aangezien de azure-events-az-agent nog steeds op beide knooppunten moet draaien. Zodra de getroffen clusterknoop vrij is van actieve clusterbronnen, waarschuwt de agent de metadatadienst en kan het geplande evenement doorgaan. Wanneer alle gebeurtenissen zijn voltooid, zet de resource agent het #health-azure attribuut terug naar 0, waarmee de knoop weer als gezond wordt gemarkeerd.

Belangrijk

Eerder beschreven in dit document het gebruik van resourceagent azure-events. Nieuwe resourceagent azure-events-az biedt volledige ondersteuning voor Azure-omgevingen die zijn geïmplementeerd in verschillende beschikbaarheidszones. Gebruik de nieuwere azure-events-az agent voor alle SAP hoogbeschikbare systemen met Pacemaker.

  1. Alleen SLES 12 SP5 Controleer je versie van het resource-agents pakket en update indien nodig. SLES 15 en hoger voegen het standaard toe in hun geïnstalleerde versies.

    zypper info resource-agents
    

    De minimale versie is resource-agents-4.3.018.a7fb5035-3.98.1.

  2. [1] Zet het cluster in onderhoudsmodus.

    sudo crm configure property maintenance-mode=true
    
  3. [1] Stel de pacemakercluster gezondheidsknoopstrategie en -beperking in.

    Belangrijk

    Definieer geen andere resources in de cluster te beginnen met health-, behalve de resources die in de volgende stappen worden beschreven.

    sudo crm configure property node-health-strategy=custom
    sudo crm configure location loc_azure_health \
       /'!health-.*'/ rule '#health-azure': defined '#uname'
    
  4. [1] Stel de initiële waarde van de clusterkenmerken in.

    Voer een commando uit voor elke clusterknoop. Neem voor scale-out-omgevingen de majority-maker-VM op.

    # 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
    
  5. [1] Configureer de resources in Pacemaker. De bronnen moeten beginnen met 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=true
    

    Notitie

    Wanneer je de health-azure-events bron configureert, kun je het volgende waarschuwingsbericht negeren.

    waarschuwing: health-azure-events: onbekend kenmerk 'allow-unhealthy-nodes'.

  6. Haal het pacemaker-cluster uit onderhoudsmodus en ruim eventuele fouten op.

    sudo crm configure property maintenance-mode=false
    sudo crm resource cleanup
    
  7. Controleer of het health-azure-events succesvol start op alle nodes.

    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 ]
    

    De eerste uitvoering van een query voor geplande gebeurtenissen kan tot 2 minuten duren. Pacemaker-test met geplande gebeurtenissen kan herstart- of herimplementatieacties gebruiken voor de cluster-VM's. Voor meer informatie, zie geplande evenementen.

    Notitie

    Nadat je de Pacemaker-resources voor de Azure-events agent hebt geconfigureerd, kun je waarschuwingsberichten krijgen zoals, als je de cluster in of uit onderhoudsmodus plaatst:

    WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'hostName_hostname'
    WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'azure-events_globalPullState'
    WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'hostName_ hostnaam'
    Je kunt deze waarschuwingsberichten negeren.

Volgende stappen