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 Pacemaker sur SUSE Linux Enterprise Server (SLES) dans Azure.
Vue d’ensemble
Dans Azure, vous disposez de deux options pour configurer l’isolation au sein du cluster Pacemaker pour SLES. Vous pouvez utiliser un agent d’isolation Azure, qui redémarre un nœud défaillant via les API Azure, ou vous pouvez utiliser un appareil SBD.
Utilisation d’un appareil SBD
Vous pouvez configurer l’appareil SBD de deux manières :
Appareil SBD avec un serveur cible iSCSI :
L’appareil SBD exige au moins une machine virtuelle supplémentaire qui agit en tant que serveur cible iSCSI (Internet Small Computer System Interface) et fournit un appareil SBD. Ces serveurs cibles iSCSI peuvent toutefois être partagés avec d’autres clusters Pacemaker. Le recours à un appareil SBD présente l’avantage que, si vous utilisez déjà des appareils SBD en local, ils ne vous obligent pas à revoir la façon dont vous exploitez le cluster Pacemaker.
Vous pouvez utiliser jusqu’à trois appareils SBD pour un cluster Pacemaker de façon à autoriser l’indisponibilité d’un appareil SBD (par exemple lors de la mise à jour corrective du système d’exploitation du serveur cible iSCSI). Si vous souhaitez avoir recours à plusieurs appareils SBD par Pacemaker, veillez à déployer plusieurs serveurs cibles iSCSI et à connecter un appareil SBD à partir de chaque serveur cible iSCSI. Nous vous recommandons d’utiliser soit un appareil SBD, soit trois appareils SBD. Pacemaker ne peut pas isoler automatiquement un nœud de cluster si seulement deux appareils SBD sont configurés et que l’un d’eux n’est pas disponible. Si vous souhaitez garantir la possibilité de clôturer même si un serveur cible iSCSI tombe en panne, vous devez utiliser trois périphériques SBD, ce qui implique le déploiement de trois serveurs cibles iSCSI. Cette configuration offre un haut niveau de résilience lors de l'utilisation de périphériques SBD.
Important
Lorsque vous planifiez et déployez des nœuds en cluster Linux Pacemaker et des appareils SBD, n’autorisez pas le routage entre vos machines virtuelles et les machines virtuelles qui hébergent les appareils SBD pour passer via d’autres appareils, tels qu’une appliance virtuelle réseau (NVA).
Les opérations de maintenance et autres problèmes liés au NVA peuvent avoir un impact négatif sur la stabilité et la fiabilité de la configuration globale du cluster. Pour plus d’informations, consultez Règles d’acheminement définies par l’utilisateur.
Appareil SBD avec un disque partagé Azure :
Pour configurer un périphérique SBD, vous devez connecter au moins un disque partagé Azure à toutes les machines virtuelles faisant partie du cluster Pacemaker. L’avantage d’un appareil SBD utilisant un disque partagé Azure est que vous n’avez pas besoin de déployer de machines virtuelles supplémentaires.
Voici quelques considérations importantes concernant les appareils SBD utilisés avec un disque partagé Azure :
- Un disque partagé Azure avec SSD Premium est pris en charge en tant qu’appareil SBD.
- Les appareils SBD qui utilisent un disque partagé Azure sont pris en charge sur SLES High Availability 15 SP01 et les versions plus récentes.
- Les appareils SBD qui utilisent un disque partagé Azure Premium sont pris en charge sur le stockage localement redondant (LRS, Locally Redundant Storage) et le stockage redondant interzone (ZRS, Zone-Redundant Storage).
- Selon le type de votre déploiement, choisissez le stockage redondant approprié pour un disque partagé Azure comme appareil SBD.
- Un appareil SBD utilisant le stockage LRS pour un disque partagé Azure Premium (skuName - Premium_LRS) n’est pris en charge qu’avec un déploiement dans un groupe à haute disponibilité.
- Un appareil SBD utilisant le stockage ZRS pour un disque partagé Azure Premium (skuName - Premium_ZRS) est recommandé avec un déploiement dans des zones de disponibilité.
- Le stockage ZRS pour le disque managé n’est actuellement pas disponible dans toutes les régions offrant des zones de disponibilité. Pour plus d’informations, consultez la section « Limitations » du stockage ZRS dans Options de redondance des disques managés.
- 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 choisir les tailles de disque P1 et P2 pour votre appareil SBD sur un cluster à deux nœuds, par exemple un scale-up SAP ASCS/ERS ou SAP HANA.
- Pour un scale-out HANA avec la réplication système HANA (HSR) et Pacemaker, vous pouvez utiliser un disque partagé Azure pour les appareils SBD dans des clusters contenant jusqu’à quatre nœuds par site de réplication en raison de la limite actuelle de maxShares.
- Nous déconseillons de connecter un périphérique de disque partagé Azure SBD à plusieurs 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 d’un agent d’isolation Azure
Vous pouvez configurer l’isolation à l’aide d’un agent d’isolation Azure. L'agent Azure Fence nécessite des identités gérées pour les VMs du cluster ou un principal de service qui gère le redémarrage des nœuds défaillants via les API Azure. L’agent de clôture Azure n’imposent pas le déploiement de machines virtuelles supplémentaires.
Appareil SBD avec un serveur cible iSCSI
Pour utiliser un appareil SBD qui a recours à un serveur cible iSCSI pour l’isolation, suivez les instructions des sections suivantes.
Configuration du serveur cible iSCSI
Vous devez tout d’abord créer les machines virtuelles cibles iSCSI. Vous pouvez partager les serveurs cibles iSCSI avec plusieurs clusters Pacemaker.
Déployez de nouvelles machines virtuelles SLES 12 SP3 (ou une version plus récente) et connectez-vous-y via le protocole SSH. Les machines n’ont pas besoin d’être volumineuses. Les tailles de machines virtuelles Standard_E2s_v3 et Standard_D2s_v3 sont suffisantes. Veillez à utiliser le Stockage Premium pour le disque de système d’exploitation.
Sur les machines virtuelles cibles iSCSI, exécutez les commandes suivantes :
a) Mettez à jour SLES.
sudo zypper updateRemarque
Vous pouvez être amené à redémarrer le système d’exploitation après la mise à niveau ou la mise à jour de celui-ci.
b. Supprimez des packages.
Pour éviter un problème connu avec targetcli et SLES 12 SP3, désinstallez les packages suivants. Vous pouvez ignorer les erreurs concernant des packages introuvables.
sudo zypper remove lio-utils python-rtslib python-configshell targetclic. Installez les packages cibles iSCSI.
sudo zypper install targetcli-fb dbus-1-pythond. Activez le service cible iSCSI.
sudo systemctl enable targetcli sudo systemctl start targetcli
Création d’un appareil iSCSI sur le serveur cible iSCSI
Pour créer les disques iSCSI des clusters qui doivent être utilisés par vos systèmes SAP, exécutez les commandes suivantes sur toutes les machines virtuelles cibles iSCSI. Dans l’exemple, des appareils SBD sont créés pour plusieurs clusters. Il vous montre comment utiliser un serveur cible iSCSI pour plusieurs clusters. Les appareils SBD sont placés sur le disque de système d’exploitation. Assurez-vous d’avoir suffisamment d’espace.
- nfs : identifie le cluster NFS.
- ascsnw1 : identifie le cluster ASCS de NW1.
- dbnw1 : identifie le cluster de base de données de NW1.
- nfs-0 et nfs-1 : noms d’hôte des nœuds de cluster NFS.
- nw1-xscs-0 et nw1-xscs-1 : noms d’hôte des nœuds de cluster ASCS NW1.
- nw1-db-0 et nw1-db-1 : noms d’hôte des nœuds de cluster de base de données.
Dans les instructions suivantes, mettez à jour les noms d'hôte de vos nœuds de cluster et le SID de votre système SAP.
Créez le dossier racine de tous les appareils SBD.
sudo mkdir /sbdCréez l’appareil SBD du serveur NFS.
sudo targetcli backstores/fileio create sbdnfs /sbd/sbdnfs 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.nfs.local:nfs sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/luns/ create /backstores/fileio/sbdnfs sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/acls/ create iqn.2006-04.nfs-0.local:nfs-0 sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/acls/ create iqn.2006-04.nfs-1.local:nfs-1Créez l’appareil SBD du serveur ASCS de NW1 du système SAP.
sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.nw1-xscs-0.local:nw1-xscs-0 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.nw1-xscs-1.local:nw1-xscs-1Créez l’appareil SBD du cluster de base de données de NW1 du système SAP.
sudo targetcli backstores/fileio create sbddbnw1 /sbd/sbddbnw1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.dbnw1.local:dbnw1 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/luns/ create /backstores/fileio/sbddbnw1 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/acls/ create iqn.2006-04.nw1-db-0.local:nw1-db-0 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/acls/ create iqn.2006-04.nw1-db-1.local:nw1-db-1Enregistrez les modifications apportées à targetcli.
sudo targetcli saveconfigVérifiez que tout a été correctement configuré.
sudo targetcli ls o- / .......................................................................................................... [...] o- backstores ............................................................................................... [...] | o- block ................................................................................... [Storage Objects: 0] | o- fileio .................................................................................. [Storage Objects: 3] | | o- sbdascsnw1 ................................................ [/sbd/sbdascsnw1 (50.0MiB) write-thru activated] | | | o- alua .................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ........................................................ [ALUA state: Active/optimized] | | o- sbddbnw1 .................................................... [/sbd/sbddbnw1 (50.0MiB) write-thru activated] | | | o- alua .................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ........................................................ [ALUA state: Active/optimized] | | o- sbdnfs ........................................................ [/sbd/sbdnfs (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: 3] | o- iqn.2006-04.ascsnw1.local:ascsnw1 .................................................................. [TPGs: 1] | | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | | o- acls ........................................................................................... [ACLs: 2] | | | o- iqn.2006-04.nw1-xscs-0.local:nw1-xscs-0 ............................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 ............................................................ [lun0 fileio/sbdascsnw1 (rw)] | | | o- iqn.2006-04.nw1-xscs-1.local:nw1-xscs-1 ............................................... [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- iqn.2006-04.dbnw1.local:dbnw1 ...................................................................... [TPGs: 1] | | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | | o- acls ........................................................................................... [ACLs: 2] | | | o- iqn.2006-04.nw1-db-0.local:nw1-db-0 ................................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 .............................................................. [lun0 fileio/sbddbnw1 (rw)] | | | o- iqn.2006-04.nw1-db-1.local:nw1-db-1 ................................................... [Mapped LUNs: 1] | | | o- mapped_lun0 .............................................................. [lun0 fileio/sbddbnw1 (rw)] | | o- luns ........................................................................................... [LUNs: 1] | | | o- lun0 .............................................. [fileio/sbddbnw1 (/sbd/sbddbnw1) (default_tg_pt_gp)] | | o- portals ..................................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ...................................................................................... [OK] | o- iqn.2006-04.nfs.local:nfs .......................................................................... [TPGs: 1] | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | o- acls ........................................................................................... [ACLs: 2] | | o- iqn.2006-04.nfs-0.local:nfs-0 ......................................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ................................................................ [lun0 fileio/sbdnfs (rw)] | | o- iqn.2006-04.nfs-1.local:nfs-1 ......................................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................................ [lun0 fileio/sbdnfs (rw)] | o- luns ........................................................................................... [LUNs: 1] | | o- lun0 .................................................. [fileio/sbdnfs (/sbd/sbdnfs) (default_tg_pt_gp)] | o- portals ..................................................................................... [Portals: 1] | o- 0.0.0.0:3260 ...................................................................................... [OK] o- loopback .......................................................................................... [Targets: 0] o- vhost ............................................................................................. [Targets: 0] o- xen-pvscsi ........................................................................................ [Targets: 0]
Configuration de l’appareil SBD du serveur cible iSCSI
Connectez-vous à l’appareil iSCSI créé à l’étape précédente à partir du cluster. Exécutez les commandes suivantes sur les nœuds du nouveau cluster que vous souhaitez créer.
Remarque
- [A] : s’applique à tous les nœuds.
- [1] : s’applique uniquement au nœud 1.
- [2] : s’applique uniquement au nœud 2.
[A] Installez le package iSCSI.
sudo zypper install open-iscsi[A] Connectez-vous aux appareils iSCSI. Tout d’abord, activez les services iSCSI et SBD.
sudo systemctl enable iscsid sudo systemctl enable iscsi sudo systemctl enable sbd[1] Modifiez le nom de l’initiateur sur le premier nœud.
sudo vi /etc/iscsi/initiatorname.iscsi[1] Modifiez le contenu du fichier pour qu’il corresponde aux listes de contrôle d’accès (ACL, Access Control List) utilisées lors de la création de l’appareil iSCSI sur le serveur cible iSCSI (par exemple pour le serveur NFS).
InitiatorName=iqn.2006-04.nfs-0.local:nfs-0[2] Modifiez le nom de l’initiateur sur le deuxième nœud.
sudo vi /etc/iscsi/initiatorname.iscsi[2] Modifiez le contenu du fichier pour qu’il corresponde aux listes ACL utilisées lors de la création de l’appareil iSCSI sur le serveur cible iSCSI.
InitiatorName=iqn.2006-04.nfs-1.local:nfs-1[A] Redémarrez le service iSCSI pour appliquer la modification.
sudo systemctl restart iscsid sudo systemctl restart iscsi[A] Connectez les appareils iSCSI. Dans l’exemple suivant, 10.0.0.17 est l’adresse IP du serveur cible iSCSI, et 3260 le port par défaut. iqn.2006-04.nfs.local:nfs est un des noms cibles indiqués lorsque vous exécutez la première commande,
iscsiadm -m discovery.sudo iscsiadm -m discovery --type=st --portal=10.0.0.17:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.17:3260 sudo iscsiadm -m node -p 10.0.0.17:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic[A] Si vous souhaitez utiliser plusieurs appareils SBD, connectez-vous également au deuxième serveur cible iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.18:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.18:3260 sudo iscsiadm -m node -p 10.0.0.18:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic[A] Si vous souhaitez utiliser plusieurs appareils SBD, connectez-vous également au troisième serveur cible iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.19:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.19:3260 sudo iscsiadm -m node -p 10.0.0.19:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic[A] Vérifiez que les appareils iSCSI sont disponibles et notez leur nom (/dev/sde dans l’exemple suivant).
lsscsi # [2:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda # [3:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb # [5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc # [5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd # [6:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdd # [7:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sde # [8:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdf[A] Récupérez l’ID des appareils iSCSI.
ls -l /dev/disk/by-id/scsi-* | grep sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-1LIO-ORG_sbdnfs:afb0ba8d-3a3c-413b-8cc2-cca03e63ef42 -> ../../sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -> ../../sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-SLIO-ORG_sbdnfs_afb0ba8d-3a3c-413b-8cc2-cca03e63ef42 -> ../../sdd ls -l /dev/disk/by-id/scsi-* | grep sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-1LIO-ORG_cl1:3fe4da37-1a5a-4bb6-9a41-9a4df57770e4 -> ../../sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df -> ../../sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-SLIO-ORG_cl1_3fe4da37-1a5a-4bb6-9a41-9a4df57770e4 -> ../../sde ls -l /dev/disk/by-id/scsi-* | grep sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-1LIO-ORG_sbdnfs:f88f30e7-c968-4678-bc87-fe7bfcbdb625 -> ../../sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf -> ../../sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-SLIO-ORG_sbdnfs_f88f30e7-c968-4678-bc87-fe7bfcbdb625 -> ../../sdfLa commande fait apparaître trois ID par appareil SBD. Nous vous recommandons d’utiliser celui qui commence par scsi-3. Dans l’exemple précédent, les ID sont les suivants :
- /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03
- /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
- /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
[1] Créez l’appareil SBD.
a) Utilisez l’ID d’appareil des appareils iSCSI pour créer de nouveaux appareils SBD sur le premier nœud de cluster.
sudo sbd -d /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -1 60 -4 120 createb. Créez également le deuxième et le troisième appareil SBD si vous souhaitez en utiliser plusieurs.
sudo sbd -d /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf -1 60 -4 120 create[A] Adaptez la configuration SBD.
a) Ouvrez le fichier de configuration SBD.
sudo vi /etc/sysconfig/sbdb. Modifiez la propriété de l’appareil SBD, activez l’intégration de Pacemaker et modifiez le mode de démarrage de l’appareil SBD. Ajustez également la valeur de SBD_DELAY_START, si nécessaire
[...] SBD_DEVICE="/dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03;/dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df;/dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf" [...] # In some cases, a longer delay than the default "msgwait" seconds is needed. So, set a specific delay value, in seconds. See, `man sbd` for more information. SBD_DELAY_START=216 [...] SBD_PACEMAKER="yes" [...] SBD_STARTMODE="always" [...]Remarque
Si la valeur de la propriété
SBD_DELAY_STARTest définie sur « non » ou « oui », mettez-la à jour avec la valeur de délai spécifique, en secondes. Pour plus d'informations, consultez la sectionConfiguration via environmentcorrespondante du manuelman sbd.c. Assurez-vous que la valeur
TimeoutStartSecdans le fichier de service SBD est supérieure à la valeur de SBD_DELAY_START. Consultez la documentation de configuration du fichier SBD pour plus de détails.sudo systemctl show sbd | grep -i Timeout # TimeoutStartUSec=4min 19s # TimeoutStopUSec=4min 19s # TimeoutAbortUSec=4min 19sSi la valeur est par défaut (90 secondes) ou si elle est inférieure à SBD_DELAY_START, suivez les étapes pour ajuster la valeur.
sudo mkdir /etc/systemd/system/sbd.service.d echo -e "[Service]\nTimeoutSec=259" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf sudo systemctl daemon-reloadRemarque
Dans la nouvelle configuration du cluster, les deux valeurs
SBD_DELAY_STARTetTimeoutStartSecsont automatiquement définies.Sur une configuration de cluster existante, la valeur
SBD_DELAY_STARTpourrait être définie sur « non » ou « oui », etTimeoutStartSecserait différente. La mise à niveau de la version SLES ne met pas à jour la valeur ; vous devrez donc ajuster ces paramètres manuellement.[A] Créez le fichier de configuration
softdog.echo softdog | sudo tee /etc/modules-load.d/softdog.conf[A] Chargez le module.
sudo modprobe -v softdog
Appareil SBD avec un disque partagé Azure
Cette section s’applique uniquement si vous souhaitez utiliser un appareil SBD avec un disque partagé Azure.
Création et attachement d’un disque partagé Azure avec PowerShell
Pour créer et attacher un disque partagé Azure avec PowerShell, exécutez l’instruction suivante. Si vous souhaitez déployer des ressources avec Azure CLI ou le Portail Azure, vous pouvez également consulter Déploiement d’un disque ZRS.
$ResourceGroup = "MyResourceGroup"
$Location = "MyAzureRegion"
$DiskSizeInGB = 4
$DiskName = "SBD-disk1"
$ShareNodes = 2
$LRSSkuName = "Premium_LRS"
$ZRSSkuName = "Premium_ZRS"
$vmNames = @("prod-cl1-0", "prod-cl1-1") # VMs to attach the disk
# ZRS Azure shared disk: Configure an Azure shared disk with ZRS for a premium shared disk
$zrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $ZRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$zrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $zrsDiskConfig
# Attach ZRS disk to cluster VMs
foreach ($vmName in $vmNames) {
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $zrsDataDisk.Id -Lun 0
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
# LRS Azure shared disk: Configure an Azure shared disk with LRS for a premium shared disk
$lrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $LRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$lrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $lrsDiskConfig
# Attach LRS disk to cluster VMs
foreach ($vmName in $vmNames) {
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $lrsDataDisk.Id -Lun 0
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
Configuration de l’appareil SBD du disque partagé Azure
[A] Activez les services SBD.
sudo systemctl enable sbd[A] Vérifiez que le disque attaché est disponible.
lsblk # NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT # fd0 2:0 1 4K 0 disk # sda 8:0 0 30G 0 disk # ├─sda1 8:1 0 2M 0 part # ├─sda2 8:2 0 512M 0 part /boot/efi # ├─sda3 8:3 0 1G 0 part /boot # ├─sda4 8:4 0 28.5G 0 part / # sdb 8:16 0 256G 0 disk # ├─sdb1 8:17 0 256G 0 part /mnt # sdc 8:32 0 4G 0 disk # sr0 11:0 1 1024M 0 rom lsscsi # [1:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0 # [2:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda # [3:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb # [5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc[A] Récupérez les ID des disques attachés.
# ls -l /dev/disk/by-id/scsi-* | grep sdc lrwxrwxrwx 1 root root 9 Nov 8 16:55 /dev/disk/by-id/scsi-14d534654202020204208a67da80744439b513b2a9728af19 -> ../../sdc lrwxrwxrwx 1 root root 9 Nov 8 16:55 /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -> ../../sdcLes commandes indiquent les ID de l’appareil SBD. Nous vous recommandons d’utiliser celui qui commence par scsi-3. Dans l’exemple précédent, l’ID est /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19.
[1] Créez l’appareil SBD.
Utilisez l’ID d’appareil de l’étape 2 pour créer les nouveaux appareils SBD sur le premier nœud de cluster.
# sudo sbd -d /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -1 60 -4 120 create[A] Adaptez la configuration SBD.
a) Ouvrez le fichier de configuration SBD.
sudo vi /etc/sysconfig/sbdb. Modifiez la propriété de l’appareil SBD, activez l’intégration de Pacemaker et modifiez le mode de démarrage de l’appareil SBD. Ajustez également la valeur de SBD_DELAY_START, si nécessaire
[...] SBD_DEVICE="/dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19" [...] # # In some cases, a longer delay than the default "msgwait" seconds is needed. So, set a specific delay value, in seconds. See, `man sbd` for more information. SBD_DELAY_START=216 [...] SBD_PACEMAKER="yes" [...] SBD_STARTMODE="always" [...]Remarque
Si la valeur de la propriété
SBD_DELAY_STARTest définie sur « non » ou « oui », mettez-la à jour avec la valeur de délai spécifique, en secondes. Pour plus d'informations, consultez la sectionConfiguration via environmentcorrespondante du manuelman sbd.c. Assurez-vous que la valeur
TimeoutStartSecdans le fichier de service SBD est supérieure à la valeur deSBD_DELAY_START. Consultez la documentation de configuration du fichier SBD pour plus de détails.sudo systemctl show sbd | grep -i Timeout # TimeoutStartUSec=4min 19s # TimeoutStopUSec=4min 19s # TimeoutAbortUSec=4min 19sSi la valeur est par défaut (90 secondes) ou si elle est inférieure à SBD_DELAY_START, suivez les étapes pour ajuster la valeur.
sudo mkdir /etc/systemd/system/sbd.service.d echo -e "[Service]\nTimeoutSec=259" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf sudo systemctl daemon-reloadRemarque
Dans la nouvelle configuration du cluster, les deux valeurs
SBD_DELAY_STARTetTimeoutStartSecsont automatiquement définies.Sur une configuration de cluster existante, la valeur
SBD_DELAY_STARTpourrait être définie sur « non » ou « oui », etTimeoutStartSecserait différente. La mise à niveau de la version SLES ne met pas à jour la valeur ; vous devez donc ajuster ces paramètres manuellement.Créez le fichier de configuration
softdog.echo softdog | sudo tee /etc/modules-load.d/softdog.confChargez le module.
sudo modprobe -v softdog
Utilisation d’un agent d’isolation Azure
Cette section s’applique uniquement si vous souhaitez utiliser un appareil d’isolation avec un agent d’isolation Azure.
Créer un appareil d’agent d’isolation Azure
Cette section s'applique uniquement si vous utilisez l'agent Azure Fence comme dispositif de clôture. L'agent de clôture Azure utilise soit une identité gérée, soit un principal de service pour s'authentifier auprès de Microsoft Azure.
Pour créer une identité managée (MSI), créez une identité managée affectée par le système pour chaque machine virtuelle du cluster. Si une identité gérée attribuée par le système est déjà activée, alors elle sera utilisée. Les identités managées attribuées par l’utilisateur ne doivent pas être utilisées avec Pacemaker pour l’instant. L'agent Azure Fence, basé sur une identité gérée, est pris en charge pour SLES 12 SP5 et SLES 15 SP1 et versions ultérieures.
[1] Créer un rôle personnalisé pour l’agent d’isolation
Par défaut, ni l’identité managée ni le principal de service ne disposent des autorisations nécessaires pour accéder à vos ressources Azure. Vous devez accorder à l’identité managée ou au principal de service les autorisations pour démarrer et arrêter (libérer) toutes les machines virtuelles du cluster. Si vous n’avez pas encore créé le rôle personnalisé, utilisez pour cela PowerShell ou Azure CLI.
Utilisez le contenu suivant pour le fichier d’entrée. Vous devez adapter le contenu à vos abonnements, Autrement dit, remplacez xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx et yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy par vos propres ID d’abonnement. Si vous ne possédez qu’un seul abonnement, supprimez la deuxième entrée sous AssignableScopes.
{
"Name": "Linux fence agent Role",
"description": "Allows to power-off and start virtual machines",
"assignableScopes": [
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"/subscriptions/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
],
"actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
[A] Attribuer le rôle personnalisé
Utilisez une identité managée ou un principal de service.
Attribuez le rôle personnalisé « Rôle d’agent de clôture Linux » créé dans le dernier chapitre à chaque identité managée des machines virtuelles du cluster. Chaque identité managée affectée par le système de machine virtuelle a besoin du rôle attribué pour la ressource de chaque machine virtuelle du cluster. Pour connaître les étapes en détail, consultez Attribuer à une identité managée un accès à une ressource à l’aide du Portail Azure. Vérifiez que l’attribution de rôle d’identité managée de chaque machine virtuelle contient toutes les machines virtuelles du cluster.
Important
L’attribution et la suppression de l’autorisation avec des identités managées peuvent être retardées jusqu’à leur entrée en vigueur.
Installation du cluster
Remarque
- [A] : s’applique à tous les nœuds.
- [1] : s’applique uniquement au nœud 1.
- [2] : s’applique uniquement au nœud 2.
[A] Mettez à jour SLES.
sudo zypper updateRemarque
Pour SLES 15 SP4, vérifiez que les versions des packages
crmshetpacemakerrépondent à la configuration minimale requise :-
crmsh-4.4.0+20221028.3e41444-150400.3.9.1ou ultérieur -
pacemaker-2.1.2+20211124.ada5c3b36-150400.4.6.1ou ultérieur
Important
- SLES 12 SP5 : Si python-azure-core-1.23.1-2.12.8 est installé, l’agent Azure Fence peut ne pas démarrer dans un cluster Pacemaker, affichant le message d’erreur « Azure Resource Manager Python SDK introuvable ou inaccessible » dans /var/log/messages. Pour plus d’informations, suivez les instructions de SUSE KBA 21532.
- SLES 15 SP4+ : après la mise à jour du système d’exploitation, les bibliothèques Azure pour Python peuvent utiliser l’interpréteur Python 3.11, ce qui entraîne l’échec du démarrage de l’agent d’isolation Azure dans un cluster Pacemaker. Le message d'erreur « SDK Python Azure Resource Manager introuvable ou inaccessible » apparaîtrait dans /var/log/messages. Pour plus d’informations, suivez les instructions de SUSE KBA 21504.
-
[A] Installez le composant dont vous avez besoin pour les ressources du cluster.
sudo zypper in socat[A] Installez le composant azure-lb dont vous avez besoin pour les ressources de cluster.
sudo zypper in resource-agentsRemarque
Vérifiez que la version du package resource-agents respecte la version minimale requise :
- SLES 12 SP4/SP5 : la version doit être resource-agents-4.3.018.a7fb5035-3.30.1 ou une version plus récente.
- SLES 15/15 SP1 : la version doit être resource-agents-4.3.0184.6ee15eb2-4.13.1 ou une version plus récente.
[A] Configurez le système d’exploitation.
a) Pacemaker crée parfois de nombreux processus, ce qui risque d’é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. Nous vous recommandons d’augmenter le nombre maximal autorisé de processus en définissant le paramètre suivant :
# Edit the configuration file sudo vi /etc/systemd/system.conf # Change the DefaultTasksMax #DefaultTasksMax=512 DefaultTasksMax=4096 # Activate this setting sudo systemctl daemon-reload # Test to ensure that the change was successful sudo systemctl --no-pager show | grep DefaultTasksMaxb. Réduisez la taille du cache d’intégrité. Pour plus d’informations, consultez Faibles performances en écriture sur les serveurs SLES 11/12 avec une grande quantité de RAM.
sudo vi /etc/sysctl.conf # Change/set the following settings vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800c. Assurez-vous que vm.swappiness a la valeur 10 pour réduire l’utilisation de l’échange et favoriser la mémoire.
sudo vi /etc/sysctl.conf # Change/set the following setting vm.swappiness = 10[A] Vérifiez la version du package cloud-netconfig-azure.
Vérifiez la version installée du package cloud-netconfig-azure en exécutant zypper info cloud-netconfig-azure. Si la version est plus ancienne, nous vous recommandons de mettre à jour le package cloud-netconfig-azure avec la dernière version disponible.
Conseil
Si la version dans votre environnement est 1.3 ou une version plus récente, il n’est plus nécessaire de bloquer la gestion des interfaces réseau par le plug-in réseau cloud.
Si la version de cloud-netconfig-azure est inférieure à la version 1.3, modifiez le fichier de configuration de l’interface réseau comme indiqué dans le code suivant pour empêcher le plug-in réseau cloud de supprimer l’adresse IP virtuelle (Pacemaker doit contrôler l’affectation). Pour plus d’informations, consultez SUSE KB 7023633.
# Edit the configuration file sudo vi /etc/sysconfig/network/ifcfg-eth0 # Change CLOUD_NETCONFIG_MANAGE # CLOUD_NETCONFIG_MANAGE="yes" CLOUD_NETCONFIG_MANAGE="no"[1] Activez l’accès SSH.
sudo ssh-keygen # Enter file in which to save the key (/root/.ssh/id_rsa), and then select Enter # Enter passphrase (empty for no passphrase), and then select Enter # Enter same passphrase again, and then select Enter # copy the public key sudo cat /root/.ssh/id_rsa.pub[2] Activez l’accès SSH.
sudo ssh-keygen # Enter file in which to save the key (/root/.ssh/id_rsa), and then select Enter # Enter passphrase (empty for no passphrase), and then select Enter # Enter same passphrase again, and then select Enter # Insert the public key you copied in the last step into the authorized keys file on the second server sudo vi /root/.ssh/authorized_keys # copy the public key sudo cat /root/.ssh/id_rsa.pub[1] Activez l’accès SSH.
# insert the public key you copied in the last step into the authorized keys file on the first server sudo vi /root/.ssh/authorized_keys[A] Installez le package fence-agents si vous utilisez un appareil d’isolation basé sur l’agent d’isolation Azure.
sudo zypper install fence-agentsImportant
Vous devez installer la version 4.4.0 ou une version plus récente du package fence-agents pour pouvoir tirer parti des délais de basculement plus rapides avec l’agent d’isolation Azure lorsqu’un nœud de cluster est isolé. Si vous utilisez une version plus ancienne, nous vous recommandons de mettre à jour le package.
Important
Si vous utilisez une identité managée, la version installée du package agents de clôture doit être :
- SLES 12 SP5: fence-agents 4.9.0+git.1624456340.8d746be9-3.35.2 ou version ultérieure
- SLES 15 SP1 et versions ultérieures : fence-agents 4.5.2+git.1592573838.1eee0863 ou version ultérieure.
Les versions antérieures ne fonctionnent pas correctement avec une configuration d’identité managée.
[A] Installez le package fence-agents-azure-arm.
Pour SLES 12 SP5, si vous utilisez la version
fence-agentsou une version ultérieure, et pour4.9.0+git.1624456340.8d746be9-3.41.3, vous devez installer le paquet . Ce package inclut toutes les dépendances requises.# On SLES 12 SP5 with fence-agents version 4.9.0+git.1624456340.8d746be9-3.41.3 or higher. You might need to activate the public cloud extension first SUSEConnect -p sle-module-public-cloud/12/x86_64 sudo zypper install fence-agents-azure-arm # On SLES 15 SP4 and later. You might need to activate the public cloud extension first. In this example, the SUSEConnect SUSEConnect -p sle-module-public-cloud/15.4/x86_64 sudo zypper install fence-agents-azure-arm[A] Installez le SDK Azure Python et le module Python Azure Identity.
Pour SLES 12 SP5, si votre version
fence-agentsest inférieure à4.9.0+git.1624456340.8d746be9-3.41.3, et pour SLES 15 SP3 et versions inférieures, vous devez installer les packages supplémentaires ci-dessous.# You might need to activate the public cloud extension first SUSEConnect -p sle-module-public-cloud/12/x86_64 sudo zypper install python-azure-mgmt-compute sudo zypper install python-azure-identity # You might need to activate the public cloud extension first. In this example, the SUSEConnect command is for SLES 15 SP1 SUSEConnect -p sle-module-public-cloud/15.1/x86_64 sudo zypper install python3-azure-mgmt-compute sudo zypper install python3-azure-identityImportant
Selon la version et le type d’image, vous devrez peut-être activer l’extension cloud public correspondant à la version de votre système d’exploitation pour pouvoir installer le kit SDK Azure Python. Pour vérifier l’extension, exécutez
SUSEConnect ---list-extensions. Pour obtenir des délais de basculement plus rapides avec l’agent d’isolation Azure, procédez comme suit :- Sur SLES 12 SP5, installez la version 4.6.2 ou ultérieure du package python-azure-mgmt-compute.
- Si votre version du package python-azure-mgmt-compute or python3-azure-mgmt-compute est 17.0.0-6.7.1, suivez les instructions de l'article de la base de connaissances SUSE KBA pour mettre à jour la version de fence-agents et installer le module de bibliothèque cliente Azure Identity pour Python s'il est manquant.
[A] Configurer la résolution du nom d'hôte.
Vous pouvez utiliser un serveur DNS ou modifier le fichier /etc/hosts sur tous les nœuds. Cet exemple montre comment utiliser le fichier /etc/hosts.
Remplacez l’adresse IP et le nom d’hôte dans les commandes suivantes.
Important
Si vous utilisez des noms d’hôte dans la configuration du cluster, il est essentiel que vous disposiez d’une résolution fiable du nom d’hôte. La communication entre les clusters échoue si les noms ne sont pas disponibles, ce qui peut entraîner des retards dans le basculement des clusters.
Le recours au fichier /etc/hosts présente l’avantage que votre cluster devient indépendant du serveur DNS, qui peut aussi constituer un point de défaillance unique.
sudo vi /etc/hostsInsérez les lignes suivantes dans le fichier /etc/hosts. Changez l’adresse IP et le nom d’hôte en fonction de votre environnement.
# 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[1] Installez le cluster.
Si vous utilisez des appareils SBD pour l’isolation (pour le serveur cible iSCSI ou le disque partagé Azure) :
sudo crm cluster init # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # /root/.ssh/id_rsa already exists - overwrite (y/n)? n # Address for ring0 [10.0.0.6] Select Enter # Port for ring0 [5405] Select Enter # SBD is already configured to use /dev/disk/by-id/scsi-36001405639245768818458b930abdf69;/dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03;/dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf - overwrite (y/n)? n # Do you wish to configure an administration IP (y/n)? nSi vous n’utilisez pas d’appareils SBD pour l’isolation :
sudo crm cluster init # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # /root/.ssh/id_rsa already exists - overwrite (y/n)? n # Address for ring0 [10.0.0.6] Select Enter # Port for ring0 [5405] Select Enter # Do you wish to use SBD (y/n)? n # WARNING: Not configuring SBD - STONITH will be disabled. # Do you wish to configure an administration IP (y/n)? n
[2] Joignez le nœud au cluster.
sudo crm cluster join # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # IP address or hostname of existing node (for example, 192.168.1.1) []10.0.0.6 # /root/.ssh/id_rsa already exists - overwrite (y/n)? n[A] Changez le mot de passe hacluster pour utiliser le même mot de passe.
sudo passwd hacluster[A] Ajustez les paramètres corosync.
sudo vi /etc/corosync/corosync.confa) Vérifiez la section suivante dans le fichier et faites des ajustements si les valeurs ne sont pas là ou sont différentes. Veillez à remplacer la valeur du jeton par 30000 pour autoriser la maintenance avec préservation de la mémoire. Pour plus d’informations, consultez l’article Maintenance des machines virtuelles dans Azure pour Linux ou Windows.
[...] token: 30000 token_retransmits_before_loss_const: 10 join: 60 consensus: 36000 max_messages: 20 interface { [...] } transport: udpu } nodelist { node { ring0_addr:10.0.0.6 } node { ring0_addr:10.0.0.7 } } logging { [...] } quorum { # Enable and configure quorum subsystem (default: off) # See also corosync.conf.5 and votequorum.5 provider: corosync_votequorum expected_votes: 2 two_node: 1 }b. Redémarrez le service corosync.
sudo service corosync restart
Créer un appareil d’isolation sur le cluster Pacemaker
Conseil
- Pour éviter les courses de clôture au sein d’un cluster pacemaker à deux nœuds, vous pouvez configurer une propriété de cluster « priority-fencing-delay » supplémentaire. Cette propriété introduit un délai supplémentaire dans un délimiteur de nœud qui a une priorité de ressource totale supérieure lorsqu’un scénario split-brain se produit. Pour découvrir plus d’informations, consultez le Guide d’administration de l’extension haute disponibilité SUSE Linux Enterprise Server.
- Cette propriété
priority-fencing-delays'applique uniquement aux clusters à deux nœuds. L’instruction sur la définition de la propriété de cluster « priority-fencing-delay » est disponible dans le document SAP ASCS/ERS/ERS (applicable uniquement sur ENSA2) et le document de haute disponibilité SAP HANA. - Lors de la configuration d'un cluster pour la mise à l'échelle horizontale de HANA, ne définissez pas la propriété
pcmk_delay_maxdans la ressource SBD Stonith.
[1] Si vous utilisez un appareil SBD (serveur cible iSCSI ou disque partagé Azure) en tant qu’appareil d’isolation, exécutez les commandes suivantes. Activez l’utilisation d’un appareil d’isolation, et définissez le délai d’isolation.
sudo crm configure property stonith-timeout=210 sudo crm configure property stonith-enabled=true # List the resources to find the name of the SBD device sudo crm resource list sudo crm resource stop stonith-sbd sudo crm configure delete stonith-sbd sudo crm configure primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max="15" \ op monitor interval="600" timeout="15"[1] Si vous utilisez un agent d’isolation Azure pour l’isolation, exécutez les commandes suivantes. Après avoir attribué des rôles aux deux nœuds du cluster, vous pouvez configurer les dispositifs de clôture dans le cluster.
sudo crm configure property stonith-enabled=true sudo crm configure property concurrent-fencing=trueRemarque
L’option « pcmk_host_map » n’est requise dans la commande que si les noms d’hôte et les noms de machines virtuelles Azure ne sont pas identiques. Spécifiez le mappage au format nom-d-hôte:nom-machine-virtuelle.
# Adjust the command with your subscription ID and resource group of the VM
sudo crm configure primitive rsc_st_azure stonith:fence_azure_arm \
params msi=true subscriptionId="subscription ID" resourceGroup="resource group" \
pcmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_delay_max=15 pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
meta failure-timeout=120s \
op monitor interval=3600 timeout=120
sudo crm configure property stonith-timeout=900
Si vous utilisez l’appareil de clôture, en fonction de la configuration du principal de service, lisez Passer de SPN à MSI pour les clusters Pacemaker à l’aide de la clôture Azure et découvrez comment effectuer la conversion en configuration d’identité managée.
Important
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.
Conseil
L’agent d’isolation Azure exige une connectivité sortante vers les points de terminaison publics. Cet aspect est documenté, avec des solutions possibles, dans Connectivité des points de terminaison publics pour les machines virtuelles avec un équilibreur de charge interne standard.
Configuration de Pacemaker pour les événements planifiés Azure
Azure propose des événements planifiés. Les événements planifiés sont fournis via le service de métadonnées et permettent à l’application de se préparer à ces événements.
L’agent de ressources azure-events-az surveille les événements Azure planifiés. Si des événements sont détectés et que l’agent de ressources détermine qu’un autre nœud de cluster est disponible, il définit l'attribut d’intégrité au niveau du nœud #health-azure sur -1000000.
Lorsque cet attribut d’intégrité de cluster spécial est défini pour un nœud, le nœud est considéré comme non sain par le cluster et toutes les ressources sont migrées loin du nœud affecté. La contrainte d’emplacement garantit que les ressources dont le nom commence par « health- » sont exclues, car l’agent doit fonctionner dans cet état défectueux. Une fois que le nœud de cluster affecté est libre d’exécuter des ressources de cluster, l’événement planifié peut exécuter son action, telle que le redémarrage, sans risque d’exécuter des ressources.
L’attribut #heath-azure est réinitialisé à 0 au démarrage de pacemaker, une fois que tous les événements ont été traités, 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é. Nous recommandons d’utiliser l’agent azure-events-az plus récent pour tous les systèmes SAP hautement disponibles avec Pacemaker.
[A] Vérifiez que le package de l’agent azure-events est déjà installé et à jour.
sudo zypper info resource-agentsExigences minimales pour la version :
- SLES 12 SP5 :
resource-agents-4.3.018.a7fb5035-3.98.1 - SLES 15 SP1 :
resource-agents-4.3.0184.6ee15eb2-150100.4.72.1 - SLES 15 SP2 :
resource-agents-4.4.0+git57.70549516-150200.3.56.1 - SLES 15 SP3 :
resource-agents-4.8.0+git30.d0077df0-150300.8.31.1 - SLES 15 SP4 et versions ultérieures :
resource-agents-4.10.0+git40.0f4de473-150400.3.19.1
- SLES 12 SP5 :
[1] Configurez les ressources dans Pacemaker.
#Place the cluster in maintenance mode sudo crm configure property maintenance-mode=true[1] Définir la stratégie et la contrainte du nœud d’intégrité du cluster Pacemaker
sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'Important
Ne définissez aucune autre ressource dans le cluster en commençant par « health- », en plus des ressources décrites dans les étapes suivantes de la documentation.
[1] Définissez la valeur initiale des attributs de cluster. Exécutez chaque nœud de cluster. Pour les environnements de scale-out, y compris la machine virtuelle de Pacemaker majoritaire.
sudo crm_attribute --node prod-cl1-0 --name '#health-azure' --update 0 sudo crm_attribute --node prod-cl1-1 --name '#health-azure' --update 0[1] Configurez les ressources dans Pacemaker. Important : 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
Lors de la configuration de la ressource « health-azure-events », le message d’avertissement suivant peut être ignoré.
AVERTISSEMENT : health-azure-events: unknown attribute 'allow-unhealthy-nodes'.
Retirer le mode maintenance du cluster Pacemaker
sudo crm configure property maintenance-mode=falseEffacez les erreurs lors de l’activation et vérifiez que les ressources health-azure-events ont démarré correctement sur tous les nœuds de cluster.
sudo crm resource cleanupLa première exécution d'une requête pour des é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 la documentation sur les événements planifiés.
Remarque
Si, après avoir configuré les ressources Pacemaker pour l’agent azure-events, vous placez le cluster en mode maintenance ou quittez ce mode, les messages d’avertissement suivants peuvent s’afficher :
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 »
Ces messages d’avertissement peuvent être ignorés.
É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 sur les machines virtuelles Azure sur SUSE Linux Enterprise Server.
- Haute disponibilité pour SAP NetWeaver sur des VMs Azure hébergées sur SUSE Linux Enterprise Server pour les applications SAP.
- 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.