Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment configurer et configurer un cluster Pacemaker à deux nœuds basique sur SUSE Linux Enterprise Server (SLES) dans Azure. Ces instructions couvrent SLES for SAP 12 SP5, SLES for SAP 15 SP 4+, et SLES for SAP 16.
Prerequisites
Documentation de SLES High Availability (HA)
Documentation SLES pour les offres SAP
Vue d’ensemble
Ce guide suppose que vous avez déjà déployé le groupe de ressources requis, le réseau virtuel Azure, le sous-réseau et les machines virtuelles (VM).
Les clusters fonctionnant sous Linux nécessitent un agent de fencing pour isoler les nœuds défaillants. Pour accomplir cette tâche sur Azure, utilisez l’une des méthodes suivantes :
- Mort basée sur le stockage (SBD) avec Azure Shared Disk
- Mort basée sur le stockage (SBD) avec cibles iSCSI
- Agent de clôture Azure
Remarque
Les préfixes suivants sont utilisés dans ce document :
- [A] : applicable à tous les nœuds.
- [1] : applicable au nœud 1 uniquement.
- [2] : applicable au nœud 2 uniquement.
Utilisation de SBD avec Azure Shared Disk
En utilisant Azure Shared Disks, vous pouvez monter le même disque sur toutes les machines virtuelles faisant partie du cluster. Vous pouvez héberger votre appareil SBD sur ce disque partagé sans nécessiter d’infrastructure supplémentaire.
Avantages
- Offre une option native d’appareil à blocs partagés Azure pour SBD sans nécessiter de ressources supplémentaires.
- Les machines virtuelles connectent directement le disque géré, réduisant ainsi la dépendance à des considérations réseau supplémentaires.
Considérations importantes
- Vous pouvez utiliser un disque partagé Azure avec le
Premium SSDSKU comme un périphérique SBD. - Consultez la liste des systèmes d’exploitation pris en charge.
- Les appareils SBD utilisant un disque partagé premium Azure prennent en charge le stockage localement redondant (LRS) et le stockage redondant en zone (ZRS).
- Selon le type de votre déploiement, choisissez le stockage redondant approprié pour un disque partagé Azure comme appareil SBD.
- Un périphérique SBD qui utilise LRS pour un disque partagé Premium Azure (skuName - Premium_LRS) prend uniquement en charge les déploiements dans un ensemble de disponibilité.
- Un dispositif SBD utilisant ZRS pour un disque partagé premium Azure (skuName - Premium_ZRS) est recommandé pour les déploiements dans les zones de disponibilité.
- Le disque partagé Azure utilisé pour les appareils SBD n’a pas besoin d’être de grande taille. La valeur maxShares détermine combien de nœuds de cluster peuvent utiliser le disque partagé. Par exemple, vous pouvez utiliser des tailles de disque P1 ou P2 pour votre appareil SBD sur un cluster à deux nœuds comme SAP ASCS/ERS ou SAP HANA Scale-up.
- Pour les clusters de plus de deux nœuds, consultez la valeur maxShares documentée pour le disque sélectionné.
- Ne connectez pas un dispositif Azure shared disk SBD entre différents clusters Pacemaker.
- Si vous utilisez plusieurs appareils SBD de disque partagé Azure, vérifiez le nombre maximal de disques de données pouvant être attachés à la machine virtuelle.
- Pour plus d’informations sur les limitations des disques partagés Azure, lisez attentivement la section « Limitations » de la documentation Disque partagé Azure.
Utilisation de SBD avec des cibles iSCSI
Cette solution nécessite d’héberger des cibles Internet Small Computer System Interface (iSCSI) sur au moins une machine virtuelle (VM) supplémentaire.
Avantages
- Ces serveurs hôtes iSCSI peuvent également héberger des cibles iSCSI pour d’autres clusters Pacemaker dans la même région.
- Si vous les utilisez déjà sur site, ils ne nécessitent aucun changement dans la façon dont vous utilisez le cluster Pacemaker.
Considérations importantes
- Vous devez utiliser trois serveurs hôtes iSCSI pour avoir le plus haut niveau de résilience pour votre cluster.
- Utiliser un seul serveur crée un point de défaillance unique qui empêche votre cluster d’effectuer le fencing s’il tombe en panne.
- Pacemaker n’autorise pas le fencing si vous n’avez que deux cibles et que l’une d’elles est hors service.
- Les serveurs hôtes cibles iSCSI doivent résider dans la même région que vos clusters.
- Le routage réseau entre vos clusters et les serveurs hôtes iSCSI ne doit pas traverser de dispositifs réseau non redondants (comme un Network Virtual Appliance).
- Les événements de maintenance et autres problèmes liés aux dispositifs réseau peuvent nuire à la stabilité et à la fiabilité de la configuration globale du cluster.
Utilisation de l’agent de clôture Azure
En utilisant l’agent Azure Fence, votre cluster peut isoler les nœuds en appelant directement les API Azure afin de redémarrer les nœuds défaillants.
Avantages
- Aucune ressource supplémentaire n’est nécessaire.
- Les identités gérées suppriment toute maintenance des identifiants.
Considérations importantes
- Utilisez des identités gérées pour l’authentification. Si vous utilisez actuellement un principal de service, mettez à jour l'Agent Azure Fence de SPN à MSI.
- L’agent de clôture Azure nécessite une connectivité sortante vers les points de terminaison Azure publics. Pour plus d’informations et pour découvrir les solutions potentielles, consultez Connectivité de point de terminaison public pour les machines virtuelles avec ILB Standard.
- Les opérations de monitoring et d’isolation sont désérialisées. Par conséquent, si un événement d’isolation se produit en même temps qu’une opération de monitoring longue, il n’y a aucun délai pour le basculement du cluster. En effet, l’opération de monitoring est déjà en cours d’exécution.
Déploiement d’un disque partagé Azure pour SBD
Pour créer et attacher un disque partagé Azure en utilisant PowerShell, exécutez les commandes suivantes. Si vous souhaitez déployer des ressources en utilisant la interface Azure CLI ou le portail Azure, consultez Déploiement d’un disque ZRS.
$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
}
Utiliser des cibles iSCSI
Construire des serveurs hôtes cibles iSCSI
Déploie trois machines virtuelles qui fonctionnent sur une version prise en charge du système d’exploitation SLES. Les machines virtuelles n’ont pas besoin d’être très grandes. Les tailles de VM telles que Standard_E2s ou Standard_D2s sont suffisantes.
Remarque
Vous n’avez pas besoin d’utiliser SLES pour l’image d’OS SAP Applications pour le serveur cible iSCSI. Vous pouvez utiliser une image SLES OS standard à la place. Toutefois, le cycle de vie de prise en charge varie selon les différentes versions du produit du système d’exploitation.
Installez les dernières mises à jour, et redémarrez si nécessaire.
sudo zypper -n updateInstallez le package cible iSCSI.
sudo zypper -n install targetcli-fbActivez et lancez le service iSCSI.
sudo systemctl start targetcli sudo systemctl enable targetcli
Créer des cibles iSCSI
Pour chaque cluster, vous devez provisionner un disque iSCSI sur chaque serveur hôte iSCSI, puis accorder l’accès à chaque nœud du cluster à ce disque. Dans cet exemple, vous créez des disques pour deux clusters différents :
- ascsnw1 : Le cluster ASCS/ERS pour NW1
- hdbnw1 : Le cluster de bases de données HANA pour NW1
- sap-cl1 et sap-cl2 : noms d’hôte pour les nœuds du cluster ASCS/ERS NW1
- sap-db1 et sap-db2 : noms d’hôte pour les nœuds du cluster HANA NW1
- Créez le dossier racine de tous les appareils SBD.
sudo mkdir /sbd - Créez le dispositif SBD pour le premier 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 - Créer le périphérique SBD pour le second 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 - Enregistrez la configuration.
sudo targetcli saveconfig - Vérifiez la configuration.
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]
Configurer Azure Fence Agent
Créer une identité
Pour créer une identité managée (MSI), créez une identité managée assignée par le système pour chaque VM du cluster. Les identités gérées attribuées par les utilisateurs ne sont pas prises en charge pour le moment.
créer un rôle personnalisé ;
Votre identité nécessite des autorisations via RBAC Azure pour effectuer des actions d’isolation sur vos machines virtuelles. Pour se conformer au modèle de sécurité à accès minimal privilégié (LPA), créez un rôle RBAC personnalisé.
Utilisez la définition suivante pour votre rôle, en remplaçant vos identifiants d’abonnement là où c’est nécessaire :
{ "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": [] }Attribuez le rôle personnalisé à vos identités.
Pour chaque VM de votre cluster, attribuez son identité gérée au rôle personnalisé « Linux Fence Agent » pour chaque VM du cluster, y compris elle-même. Pour connaître les étapes en détail, consultez Attribuer à une identité managée un accès à une ressource à l’aide du Portail Azure.
Important
Sachez que l’attribution et la suppression des autorisations avec des identités gérées peuvent être retardées jusqu’à leur entrée en vigueur.
Créer et configurer un cluster
[A] Mettez à jour le système d’exploitation et redémarrez si nécessaire.
sudo zypper -n update[A] Installez les packages de cluster nécessaires.
sudo zypper -n install socat pacemaker resource-agents[A] Installer les paquets de clôture requis.
sudo zypper -n install sbdsudo zypper -n install sbd open-iscsisudo zypper -n install fence-agents-azure-arm[A] Configurez le DNS.
Vous pouvez utiliser un serveur DNS ou modifier
/etc/hostssur tous les nœuds. Cet exemple vous explique comment utiliser le fichier/etc/hosts.Mettez à jour les entrées pour qu’elles correspondent à vos adresses IP et noms d’hôte.
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] Échangez les clés SSH de l’utilisateur root entre les nœuds.
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] Configurez le système d’exploitation.
- Ajustez le cache sale pour les clients NFS sur les systèmes à haute mémoire. Consultez cet article pour plus d’informations.
sudoedit /etc/sysctl.d/30-nfs.conf && sudo sysctl --systemvm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800 - Assurez-vous que
vm.swappinessest définie sur 10 afin de réduire l’utilisation de l’espace d’échange et de privilégier la mémoire.sudoedit /etc/sysctl.d/31-memswap.conf && sudo sysctl --systemvm.swappiness = 10 -
SLES 12 SP 5 Seulement : Le pacemaker crée parfois de nombreux processus, ce qui peut épuiser le nombre autorisé. Dans ce cas de figure, une pulsation entre les nœuds de cluster peut échouer et entraîner un basculement de vos ressources. Augmenter le nombre maximal de processus autorisés en définissant le paramètre suivant :
# 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
- Ajustez le cache sale pour les clients NFS sur les systèmes à haute mémoire. Consultez cet article pour plus d’informations.
[1] Créez le cluster.
sudo crm cluster init --yes --name ascsnw1 --node sap-cl1 --node sap-cl2[1] Configurez les paramètres du cluster.
sudo crm corosync set totem.token 30000 sudo csync2 -xv sudo crm cluster run "corosync-cfgtool -R"Configurez un délai de démarrage pour Pacemaker.
Le démarrage de Pacemaker immédiatement après le démarrage du système peut potentiellement permettre à un nœud de réintégrer le cluster avant la fin du basculement, ce qui empêche le basculement ou retarde la reprise. Pour résoudre ce problème, utilisez un service de minuterie pour retarder le démarrage du pacemaker au redémarrage.
-
[A] Configurez le service de minuterie.
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] Activez le service de minuterie.
sudo systemctl daemon-reload sudo systemctl enable pacemaker.timer -
[1] Désactivez les services Pacemaker.
sudo crm cluster disable --all
-
[A] Configurez le service de minuterie.
Validez le cluster.
-
[1] Valider le cluster Pacemaker.
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] Validez les services.
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] Valider le cluster Pacemaker.
Configurez la clôture
-
[A] Activez le service SBD.
sudo systemctl enable sbd -
[A] Activer le watchdog logiciel.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[A] Découvrez l’ID de l’appareil iSCSI.
- Déterminer le point de montage en fonction du numéro LUN
ls -l /dev/disk/azure/scsi1/lun1 lrwxrwxrwx. 1 root root 12 Apr 16 20:22 /dev/disk/azure/scsi1/lun1 -> ../../../sdb - Récupérez l’identifiant du périphérique iSCSI à partir du point de montage.
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
- Déterminer le point de montage en fonction du numéro LUN
-
[1] Créez l’appareil SBD.
sudo sbd -d /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -1 60 -4 120 create
-
[1] Ajouter l’appareil SBD au cluster.
sudo crm cluster init --yes sbd -s /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -
[1] Modifier les paramètres de configuration SBD.
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] Valider le fichier de configuration SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
-
[A] Activez les services nécessaires.
sudo systemctl enable sbd iscsi iscsid -
[A] Activez le watchdog logiciel.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[1] Mettre à jour le
InitiatorNamedu nœud 1.sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1 -
[2] Mettre à jour le
InitiatorNamedu nœud 2.# Node 2 sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2 -
[A] Redémarrez les services iSCSI.
sudo systemctl restart iscsi iscsid -
[A] Montez les cibles iSCSI depuis tous les serveurs hôtes iSCSI.
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] Découvrez les identifiants des appareils iSCSI.
- Déterminez les points de montage iSCSI.
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 - Obtenez les identifiants des appareils iSCSI.
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
- Déterminez les points de montage iSCSI.
-
[1] Créer les dispositifs SBD.
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] Ajoutez les appareils SBD au 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 -
[1] Modifier les paramètres de configuration SBD.
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] Valider le fichier de configuration SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
[1] Configurez Azure Fence Agent.
Remarque
Lorsque vous utilisez Azure Government Cloud, vous devez spécifier cette
cloud=option lors de la configuration de l’Azure Fence Agent. Par exemple,cloud=usgovpour le cloud Azure US Government.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] Configurez le cluster pour Azure Fence Agent.
sudo crm configure property stonith-enabled=true sudo crm configure property stonith-timeout=900
Construire un cluster Pacemaker avec plus de deux nœuds
Si vous construisez un cluster plus vaste, gardez ces considérations à l’esprit :
[1] Ajustez la configuration du cluster.
Les
quorum.two_nodevaleurs etquorum.expected_votesse mettent automatiquement à jour lorsque vous ajoutez un troisième nœud ou plus. Vérifiez que lequorum.two_nodeest0et quequorum.expected_votesest égal au nombre de nœuds de votre cluster.sudo crm corosync get quorum.two_node sudo crm corosync get quorum.expected_votesAjustez la configuration de la clôture.
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
Configuration de Pacemaker pour les événements planifiés Azure
Scheduled Events est un service de métadonnées Azure qui donne à votre application le temps de se préparer à la maintenance des machines virtuelles. Il fournit des informations sur les événements de maintenance à venir, comme un redémarrage, afin que votre application puisse s’y préparer et limiter les perturbations.
L’agent de ressources azure-events-az surveille ce service de métadonnées. Lorsque l’agent détecte des événements et détermine qu’un autre nœud de cluster est disponible, il attribue un attribut #health-azure de santé au niveau du nœud à -1000000. Cette valeur pousse le cluster à considérer le nœud comme malsain et à migrer des ressources loin du nœud affecté. La contrainte de localisation garantit que les ressources commençant par health- sont exclues, car l’agent azure-events-az doit toujours s’exécuter sur les deux nœuds. Une fois que le nœud du cluster affecté est libéré des ressources du cluster en cours d’exécution, l’agent notifie le service de métadonnées et l’événement programmé peut continuer. Lorsque tous les événements sont terminés, l’agent de ressources remet l’attribut #health-azure à 0, marquant ainsi le nœud comme sain à nouveau.
Important
Auparavant, ce document décrivait l'utilisation de l'agent de ressource azure-events. Un nouvel agent de ressources azure-events-az prend entièrement en charge les environnements Azure déployés dans différentes zones de disponibilité. Utilisez l’agent plus récent azure-events-az pour tous les systèmes SAP hautement disponibles avec Pacemaker.
SLES 12 SP5 uniquement Vérifiez votre version du
resource-agentspaquet et mettez-la à jour si nécessaire. Les SLES 15 et supérieurs l’incluent par défaut dans leurs versions installées.zypper info resource-agentsLa version minimale est
resource-agents-4.3.018.a7fb5035-3.98.1.[1] Placez le cluster en mode maintenance.
sudo crm configure property maintenance-mode=true[1] Définissez la stratégie et la contrainte du nœud d’intégrité du cluster Pacemaker.
Important
Ne définissez aucune autre ressource dans le cluster commençant par
health-, à part les ressources décrites dans les étapes suivantes.sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'[1] Définissez la valeur initiale des attributs de cluster.
Exécutez une commande pour chaque nœud du cluster. Pour les environnements de scale-out, incluez la machine virtuelle de créateur de majorité.
# 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] Configurez les ressources dans Pacemaker. Les ressources doivent commencer par
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=trueRemarque
Lorsque vous configurez la
health-azure-eventsressource, vous pouvez ignorer le message d’avertissement suivant.AVERTISSEMENT : health-azure-events: unknown attribute 'allow-unhealthy-nodes'.
Retirez le cluster Pacemaker du mode maintenance et effacez toutes les erreurs.
sudo crm configure property maintenance-mode=false sudo crm resource cleanupVérifiez que
health-azure-eventsdémarre correctement sur tous les nœuds.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 ]La première exécution de requête pour les événements programmés peut prendre jusqu’à 2 minutes. Les tests Pacemaker avec des événements planifiés peuvent utiliser des actions de redémarrage ou de redéploiement pour les machines virtuelles du cluster. Pour plus d’informations, consultez les événements programmés.
Remarque
Après avoir configuré les ressources Pacemaker pour l’agent Azure-events, si vous placez le cluster en mode maintenance ou hors d’elle, vous pourriez recevoir des messages d’avertissement tels que :
AVERTISSEMENT : cib-bootstrap-options: unknown attribute 'hostName_hostname'
AVERTISSEMENT : cib-bootstrap-options : attribut inconnu « azure-events_globalPullState »
AVERTISSEMENT : cib-bootstrap-options : attribut inconnu « hostName_ nom d’hôte »
Vous pouvez ignorer ces messages d’avertissement.
Étapes suivantes
- Planification et mise en œuvre de Machines Virtuelles Microsoft Azure pour SAP.
- Déploiement de Machines Virtuelles Microsoft Azure pour SAP.
- Déploiement de DBMS sur des machines virtuelles Azure pour SAP.
- Haute disponibilité pour NFS Simple Mount sur les VM Azure sur SUSE Linux Enterprise Server.
- Pour découvrir comment établir une haute disponibilité et planifier la reprise après sinistre de SAP HANA sur des VMs Azure, consultez la section Haute disponibilité de SAP HANA sur des machines virtuelles Azure.