Pacemaker instellen op SUSE Linux Enterprise Server in Azure

Er zijn twee opties voor het instellen van een Pacemaker-cluster in Azure. U kunt een fencing-agent gebruiken, die zorgt voor het opnieuw opstarten van een mislukt knooppunt via de Azure-API's of u kunt een SBD-apparaat gebruiken.

Het SBD-apparaat vereist ten minste één extra virtuele machine die fungeert als een iSCSI-doelserver en een SBD-apparaat levert. Deze iSCSI-doelservers kunnen echter worden gedeeld met andere Pacemaker-clusters. Het voordeel van het gebruik van een SBD-apparaat is dat als u al on-premises SBD-apparaten gebruikt, er geen wijzigingen nodig zijn in de manier waarop u het Pacemaker-cluster gebruikt. U kunt maximaal drie SBD-apparaten gebruiken voor een Pacemaker-cluster zodat een SBD-apparaat niet meer beschikbaar is, bijvoorbeeld tijdens het patchen van het besturingssysteem van de iSCSI-doelserver. Als u meer dan één SBD-apparaat per Pacemaker wilt gebruiken, implementeert u meerdere iSCSI-doelservers en verbindt u één SBD vanaf elke iSCSI-doelserver. U wordt aangeraden één of drie SBD-apparaten te gebruiken. Pacemaker kan een clusterknooppunt niet automatisch omhein als u slechts twee SBD-apparaten configureert en een ervan niet beschikbaar is. Als u wilt kunnen fencen wanneer één iSCSI-doelserver niet beschikbaar is, moet u drie SBD-apparaten en dus drie iSCSI-doelservers gebruiken. Dit is de meest flexibele configuratie bij het gebruik van SBD's.

Voor de Azure Fence-agent is het niet nodig om extra virtuele machines te implementeren.

Overzicht van Pacemaker op SLES

Belangrijk

Bij het plannen en implementeren van geclusterde Linux Pacemaker-knooppunten en SBD-apparaten is het essentieel voor de algehele betrouwbaarheid van de volledige clusterconfiguratie dat de routering tussen de betrokken VM's en de VM('s) die als host voor de SBD-apparaten worden gebruikt, niet wordt doorgelaten via andere apparaten, zoals NNA's. Anders kunnen problemen en onderhoudsgebeurtenissen met de NVA een negatieve invloed hebben op de stabiliteit en betrouwbaarheid van de algehele clusterconfiguratie. Als u dergelijke obstakels wilt voorkomen, definieert u geen routeringsregels van N NVA's of door de gebruiker gedefinieerde routeringsregels die verkeer routeren tussen geclusterde knooppunten en SBD-apparaten via N NVA's en vergelijkbare apparaten bij het plannen en implementeren van geclusterde Linux Pacemaker-knooppunten en SBD-apparaten.

SBD-fencing

Volg deze stappen als u een SBD-apparaat wilt gebruiken voor fencing.

iSCSI-doelservers instellen

U moet eerst de virtuele iSCSI-doelmachines maken. iSCSI-doelservers kunnen worden gedeeld met meerdere Pacemaker-clusters.

  1. Implementeer nieuwe virtuele machines van SLES 12 SP1 of hoger en maak er verbinding mee via ssh. De machines hoeven niet groot te zijn. Een grootte van een virtuele machine Standard_E2s_v3 of Standard_D2s_v3 is voldoende. Zorg ervoor dat u Premium de besturingssysteemschijf.

Voer de volgende opdrachten uit op alle virtuele iSCSI-doelmachines.

  1. SLES bijwerken

    sudo zypper update
    

    Notitie

    Mogelijk moet u het besturingssysteem opnieuw opstarten nadat u het besturingssysteem hebt bijgewerkt of bijgewerkt.

  2. Pakketten verwijderen

    Verwijder de volgende pakketten om een bekend probleem met targetcli en SLES 12 SP3 te voorkomen. U kunt fouten over pakketten negeren die niet kunnen worden gevonden

    sudo zypper remove lio-utils python-rtslib python-configshell targetcli
    
  3. iSCSI-doelpakketten installeren

    sudo zypper install targetcli-fb dbus-1-python
    
  4. De iSCSI-doelservice inschakelen

    sudo systemctl enable targetcli
    sudo systemctl start targetcli
    

iSCSI-apparaat maken op iSCSI-doelserver

Voer de volgende opdrachten uit op alle virtuele iSCSI-doelmachines om de iSCSI-schijven te maken voor de clusters die worden gebruikt door uw SAP-systemen. In het volgende voorbeeld worden SBD-apparaten voor meerdere clusters gemaakt. U ziet hoe u één iSCSI-doelserver gebruikt voor meerdere clusters. De SBD-apparaten worden op de besturingssysteemschijf geplaatst. Zorg ervoor dat u voldoende ruimte hebt.

nfs wordt gebruikt om het NFS-cluster te identificeren. ascsnw1 wordt gebruikt om het ASCS-cluster van NW1 te identificeren, dbnw1 wordt gebruikt om het databasecluster van NW1 te identificeren, nfs-0 en nfs-1 zijn de hostnamen van de NFS-clusterknooppunten, nw1-xscs-0 en nw1-xscs-1 zijn de hostnamen van de NW1 ASCS-clusterknooppunten en nw1-db-0 en nw1-db-1 zijn de hostnamen van de databaseclusterknooppunten. Vervang deze door de hostnamen van uw clusterknooppunten en de SID van uw SAP-systeem.

# Create the root folder for all SBD devices
sudo mkdir /sbd

# Create the SBD device for the NFS server
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-1

# Create the SBD device for the ASCS server of SAP System NW1
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-1

# Create the SBD device for the database cluster of SAP System NW1
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-1

# save the targetcli changes
sudo targetcli saveconfig

U kunt controleren of alles juist is ingesteld met

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]

SBD-apparaat instellen

Verbinding maken het iSCSI-apparaat dat in de laatste stap vanuit het cluster is gemaakt. Voer de volgende opdrachten uit op de knooppunten van het nieuwe cluster dat u wilt maken. De volgende items hebben het voorvoegsel [A] - van toepassing op alle knooppunten, [1] - alleen van toepassing op knooppunt 1 of [2] - alleen van toepassing op knooppunt 2.

  1. [A] Verbinding maken iSCSI-apparaten

    Schakel eerst de iSCSI- en SBD-services in.

    sudo systemctl enable iscsid
    sudo systemctl enable iscsi
    sudo systemctl enable sbd
    
  2. [1] Wijzig de naam van de initiator op het eerste knooppunt

    sudo vi /etc/iscsi/initiatorname.iscsi
    

    Wijzig de inhoud van het bestand zo dat deze overeenkomen met de ACL's die u hebt gebruikt bij het maken van het iSCSI-apparaat op de iSCSI-doelserver, bijvoorbeeld voor de NFS-server.

    InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
    
  3. [2] Wijzig de naam van de initiator op het tweede knooppunt

    sudo vi /etc/iscsi/initiatorname.iscsi
    

    Wijzig de inhoud van het bestand zo dat deze overeenkomen met de ACL's die u hebt gebruikt bij het maken van het iSCSI-apparaat op de iSCSI-doelserver

    InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
    
  4. [A] Start de iSCSI-service opnieuw

    Start nu de iSCSI-service opnieuw om de wijziging toe te passen

    sudo systemctl restart iscsid
    sudo systemctl restart iscsi
    

    Verbinding maken de iSCSI-apparaten. In het onderstaande voorbeeld is 10.0.0.17 het IP-adres van de iSCSI-doelserver en is 3260 de standaardpoort. iqn.2006-04.nfs.local:nfs is een van de doelnamen die wordt weergegeven wanneer u de eerste opdracht hieronder (iscsiadm -m discovery) hebt uitgevoerd.

    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
    
    # If you want to use multiple SBD devices, also connect to the second iSCSI target server
    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
    
    # If you want to use multiple SBD devices, also connect to the third iSCSI target server
    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
    

    Zorg ervoor dat de iSCSI-apparaten beschikbaar zijn en noteer de apparaatnaam (in het volgende voorbeeld /dev/sde)

    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
    

    Haal nu de ID's van de iSCSI-apparaten op.

    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 -> ../../sdf
    

    De opdracht vermeldt drie apparaat-ID's voor elk SBD-apparaat. We raden u aan de id te gebruiken die begint met scsi-3. In het bovenstaande voorbeeld is dit

    • /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2en3
    • /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
    • /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
  5. [1] Het SBD-apparaat maken

    Gebruik de apparaat-id van de iSCSI-apparaten om de nieuwe SBD-apparaten te maken op het eerste clusterknooppunt.

    sudo sbd -d /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -1 60 -4 120 create
    
    # Also create the second and third SBD devices if you want to use more than one.
    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
    
  6. [A] De SBD-configuratie aanpassen

    Open het configuratiebestand SBD

    sudo vi /etc/sysconfig/sbd
    

    Wijzig de eigenschap van het SBD-apparaat, schakel de pacemaker-integratie in en wijzig de startmodus van SBD.

    [...]
    SBD_DEVICE="/dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03;/dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df;/dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf"
    [...]
    SBD_PACEMAKER="yes"
    [...]
    SBD_STARTMODE="always"
    [...]
    

    Het softdog configuratiebestand maken

    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    

    Laad nu de module

    sudo modprobe -v softdog
    

Clusterinstallatie

De volgende items hebben het voorvoegsel [A] - van toepassing op alle knooppunten, [1] - alleen van toepassing op knooppunt 1 of [2] - alleen van toepassing op knooppunt 2.

  1. [A] SLES bijwerken

    sudo zypper update
    
  2. [A] Onderdeel installeren, nodig voor clusterbronnen

    sudo zypper in socat
    
  3. [A] Azure-lb-onderdeel installeren, nodig voor clusterbronnen

    sudo zypper in resource-agents
    

    Notitie

    Controleer de versie van pakketresourceagents en zorg ervoor dat aan de minimale versievereisten wordt voldaan:

    • Voor SLES 12 SP4/SP5 moet de versie ten minste resource-agents-4.3.018.a7fb5035-3.30.1 zijn.
    • Voor SLES 15/15 SP1 moet de versie ten minste resource-agents-4.3.0184.6ee15eb2-4.13.1 zijn.
  4. [A] Het besturingssysteem configureren

    In sommige gevallen maakt Pacemaker veel processen en is het toegestane aantal processen daarmee uitputtend. In dat geval kan een heartbeat tussen de clusterknooppunten mislukken en leiden tot failover van uw resources. U wordt aangeraden de maximaal toegestane processen te verhogen door de volgende parameter in te stellen.

    # Edit the configuration file
    sudo vi /etc/systemd/system.conf
    
    # Change the DefaultTasksMax
    #DefaultTasksMax=512
    DefaultTasksMax=4096
    
    #and to activate this setting
    sudo systemctl daemon-reload
    
    # test if the change was successful
    sudo systemctl --no-pager show | grep DefaultTasksMax
    

    Verklein de grootte van de vervuilde cache. Zie Low write performance on SLES 11/12 servers with large RAM (Lage schrijfprestaties op SLES 11/12-servers met grote RAM-geheugen) voor meer informatie.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  5. [A] Cloud-netconfig-azure configureren voor ha-cluster

    Notitie

    Controleer de geïnstalleerde versie van het pakket cloud-netconfig-azure door zypper info cloud-netconfig-azure uit te geven. Als de versie in uw omgeving 1.3 of hoger is, is het niet meer nodig om het beheer van netwerkinterfaces te onderdrukken door de cloudnetwerkinvoeging. Als de versie lager is dan 1.3, raden we u aan het pakket cloud-netconfig-azure bij te werken naar de nieuwste beschikbare versie.

    Wijzig het configuratiebestand voor de netwerkinterface zoals hieronder wordt weergegeven om te voorkomen dat de cloudnetwerkinvoegserver het virtuele IP-adres verwijdert (Pacemaker moet de VIP-toewijzing bepalen). Zie SUSE KB-7023633voor meer informatie.

    # Edit the configuration file
    sudo vi /etc/sysconfig/network/ifcfg-eth0 
    
    # Change CLOUD_NETCONFIG_MANAGE
    # CLOUD_NETCONFIG_MANAGE="yes"
    CLOUD_NETCONFIG_MANAGE="no"
    
  6. [1] SSH-toegang inschakelen

    sudo ssh-keygen
    
    # Enter file in which to save the key (/root/.ssh/id_rsa): -> Press ENTER
    # Enter passphrase (empty for no passphrase): -> Press ENTER
    # Enter same passphrase again: -> Press ENTER
    
    # copy the public key
    sudo cat /root/.ssh/id_rsa.pub
    
  7. [2] SSH-toegang inschakelen

    
    sudo ssh-keygen
    
    # Enter file in which to save the key (/root/.ssh/id_rsa): -> Press ENTER
    # Enter passphrase (empty for no passphrase): -> Press ENTER
    # Enter same passphrase again: -> Press 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
    
  8. [1] SSH-toegang inschakelen

    # 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
    
  9. [A] Install Fence agents package, if using STONITH device, based on Azure Fence Agent.

    sudo zypper install fence-agents
    

    Belangrijk

    De geïnstalleerde versie van pakket fence-agents moet ten minste 4.4.0 zijn om te profiteren van de snellere failover-tijden met Azure Fence Agent, als een clusterknooppunten moeten worden omheind. U wordt aangeraden het pakket bij te werken als u een lagere versie hebt.

  10. [A] Azure Python SDK installeren

    • Op SLES 12 SP4 of SLES 12 SP5
    
     # You may need to activate the Public cloud extention first
     SUSEConnect -p sle-module-public-cloud/12/x86_64
     sudo zypper install python-azure-mgmt-compute
    
    • Op SLES 15 en hoger
    
     # You may need to activate the Public cloud extention 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
    

    Belangrijk

    Afhankelijk van uw versie en afbeeldingstype moet u mogelijk de openbare cloudextensie voor uw besturingssysteemre release activeren voordat u Azure Python SDK kunt installeren. U kunt de extensie controleren door SUSEConnect uit te ---list-extensions.
    Voor het bereiken van de snellere failovertijden met Azure Fence Agent:

    • op SLES 12 SP4 of SLES 12 SP5 installeert u versie 4.6.2 of hoger van pakket python-azure-mgmt-compute
    • installeer op SLES 15.X versie 4.6.2 van pakket python 3-azure-mgmt-compute, maar niet hoger. Vermijd versie 17.0.0-6.7.1 van pakket python 3-azure-mgmt-compute, omdat deze wijzigingen bevat die niet compatibel zijn met Azure Fence Agent
  11. [A] Hostnaamresolutie instellen

    U kunt een DNS-server gebruiken of de /etc/hosts op alle knooppunten wijzigen. In dit voorbeeld ziet u hoe u het bestand /etc/hosts gebruikt. Vervang het IP-adres en de hostnaam in de volgende opdrachten.

    Belangrijk

    Als u hostnamen gebruikt in de clusterconfiguratie, is het essentieel om een betrouwbare hostnaamresolutie te hebben. De clustercommunicatie mislukt als de namen niet beschikbaar zijn en dit kan leiden tot vertragingen bij de failover van het cluster. Het voordeel van het gebruik van /etc/hosts is dat uw cluster onafhankelijk wordt van DNS, wat ook een single point of failures kan zijn.

    sudo vi /etc/hosts
    
    

    Voeg de volgende regels toe aan /etc/hosts. Wijzig het IP-adres en de hostnaam in uw omgeving

    # 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
    
  12. [1] Cluster installeren

  • bij gebruik van SBD-apparaten voor fencing

    sudo ha-cluster-init -u
    
    # ! 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] Press ENTER
    # Port for ring0 [5405] Press 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)? n
    
  • als u geen SBD-apparaten gebruikt voor fencing

    sudo ha-cluster-init -u
    
    # ! 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] Press ENTER
    # Port for ring0 [5405] Press 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
    
  1. [2] Knooppunt toevoegen aan cluster

    sudo ha-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 (e.g.: 192.168.1.1) []10.0.0.6
    # /root/.ssh/id_rsa already exists - overwrite (y/n)? n
    
  2. [A] Wijzig het hacluster-wachtwoord in hetzelfde wachtwoord

    sudo passwd hacluster
    
  3. [A] Corosync-instellingen aanpassen.

    sudo vi /etc/corosync/corosync.conf
    

    Voeg de volgende vetgedrukte inhoud toe aan het bestand als de waarden er niet of anders zijn. Zorg ervoor dat u het token wijzigt in 30000 om onderhoud met geheugenbehoud toe te staan. Zie dit artikel voor Linux of Windows voor meer informatie.

    [...]
      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
    }
    

    Start vervolgens de corosync-service opnieuw

    sudo service corosync restart
    

Standaard pacemaker-configuratie voor SBD

De configuratie in deze sectie is alleen van toepassing als U SBD STONITH gebruikt.

  1. [1] Schakel het gebruik van een STONITH-apparaat in en stel de fence-vertraging in
sudo crm configure property stonith-timeout=144
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="15" timeout="15"

StoNITH-apparaat voor Azure Fence-agent maken

Deze sectie van de documentatie is alleen van toepassing als STONITH wordt gebruikt op basis van de Azure Fence-agent. Het STONITH-apparaat gebruikt een service-principal om te autoreren tegen Microsoft Azure. Volg deze stappen om een service-principal te maken.

  1. Ga naar https://portal.azure.com
  2. Open de Azure Active Directory blade
    Ga naar Eigenschappen en noteer de map-id. Dit is de tenant-id.
  3. Klik op App-registraties
  4. Klik op Nieuwe registratie
  5. Voer een naam in, selecteer 'Alleen accounts in deze organisatiemap'
  6. Selecteer Toepassingstype 'Web', voer een aanmeldings-URL in (bijvoorbeeld http: / /localhost) en klik op Toevoegen
    De aanmeldings-URL wordt niet gebruikt en kan een geldige URL zijn
  7. Selecteer Certificaten en geheimen en klik vervolgens op Nieuw clientgeheim
  8. Voer een beschrijving in voor een nieuwe sleutel, selecteer 'Verloopt nooit' en klik op Toevoegen
  9. Noteert u de Waarde. Deze wordt gebruikt als het wachtwoord voor de service-principal
  10. Selecteer Overzicht. Noteer de toepassings-id. Deze wordt gebruikt als de gebruikersnaam van de service-principal

[1] Een aangepaste rol maken voor de fence-agent

De service-principal heeft standaard geen machtigingen voor toegang tot uw Azure-resources. U moet de service-principal machtigingen geven om alle virtuele machines van het cluster te starten en te stoppen (de toewijzing te herstellen). Als u de aangepaste rol nog niet hebt gemaakt, kunt u deze maken met behulp van PowerShell of Azure CLI

Gebruik de volgende inhoud voor het invoerbestand. U moet de inhoud aanpassen aan uw abonnementen. Vervang c276fc76-9cd4-44c9-99a7-4fd71546436e en e91d47c4-76f3-4271-a796-21b4ecfe3624 door de id's van uw abonnement. Als u slechts één abonnement hebt, verwijdert u de tweede vermelding in AssignableScopes.

{
      "Name": "Linux Fence Agent Role",
      "description": "Allows to power-off and start virtual machines",
      "assignableScopes": [
              "/subscriptions/e663cc2d-722b-4be1-b636-bbd9e4c60fd9",
              "/subscriptions/e91d47c4-76f3-4271-a796-21b4ecfe3624"
      ],
      "actions": [
              "Microsoft.Compute/*/read",
              "Microsoft.Compute/virtualMachines/powerOff/action",
              "Microsoft.Compute/virtualMachines/start/action"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
}

[A] De aangepaste rol toewijzen aan de service-principal

Wijs de aangepaste rol 'Linux Fence Agent Role' die in het vorige hoofdstuk is gemaakt, toe aan de service-principal. Gebruik de rol van Eigenaar niet meer! Zie Azure-rollen toewijzen met behulp van de Azure Portal voor gedetailleerde Azure Portal.
Zorg ervoor dat u de rol voor beide clusterknooppunten toewijst.

[1] De STONITH-apparaten maken

Nadat u de machtigingen voor de virtuele machines hebt bewerkt, kunt u de STONITH-apparaten in het cluster configureren.

Notitie

Optie 'pcmk_host_map' is ALLEEN vereist in de opdracht als de hostnamen en de namen van de Azure-VM's NIET identiek zijn. Geef de toewijzing op in de indeling hostnaam:vm-name. Raadpleeg de vetgedrukte sectie in de opdracht .

sudo crm configure property stonith-enabled=true
crm configure property concurrent-fencing=true
# replace the bold string with your subscription ID, resource group of the VM, tenant ID, service principal application ID and password
sudo crm configure primitive rsc_st_azure stonith:fence_azure_arm \
  params subscriptionId="subscription ID" resourceGroup="resource group" tenantId="tenant ID" login="application ID" passwd="password" \
  pcmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
  op monitor interval=3600 timeout=120

sudo crm configure property stonith-timeout=900

Belangrijk

De bewakings- en fencingbewerkingen worden gedeser serialiseerd. Als gevolg hiervan, als er een langere bewakingsbewerking en gelijktijdige fencing-gebeurtenis is, is er geen vertraging voor de failover van het cluster vanwege de bewakingsbewerking die al wordt uitgevoerd.

Tip

Azure Fence Agent vereist uitgaande connectiviteit met openbare eindpunten zoals beschreven, samen met mogelijke oplossingen, in Openbare eindpuntconnectiviteit voor VM's die gebruikmaken van de standaard-ILB.

Pacemaker-configuratie voor geplande Azure-gebeurtenissen

Azure biedt geplande gebeurtenissen. Geplande gebeurtenissen worden aangeboden via metagegevensservice en bieden de toepassing de tijd om zich voor te bereiden op gebeurtenissen zoals het afsluiten van de VM, het opnieuw toepassen van de VM, enzovoort. Resourceagent azure-events bewaakt geplande Azure-gebeurtenissen. Als er gebeurtenissen worden gedetecteerd en de resourceagent vaststelt dat er een ander beschikbaar clusterknooppunt is, zal de agent azure-events het doelclusterknooppunt in de stand-bymodus plaatsen om het cluster te dwingen resources te migreren van de VM met geplande Azure-gebeurtenissenin behandeling. Om dat te bereiken, moeten er aanvullende Pacemaker-resources worden geconfigureerd.

  1. [A] Zorg ervoor dat het pakket voor de agent azure-events al is geïnstalleerd en up-to-date is.
sudo zypper info resource-agents
  1. [1] Configureer de resources in Pacemaker.

#Place the cluster in maintenance mode
sudo crm configure property maintenance-mode=true

#Create Pacemaker resources for the Azure agent
sudo crm configure primitive rsc_azure-events ocf:heartbeat:azure-events op monitor interval=10s
sudo crm configure clone cln_azure-events rsc_azure-events

#Take the cluster out of maintenance mode
sudo crm configure property maintenance-mode=false

Notitie

Nadat u de Pacemaker-resources voor de agent azure-events hebt geconfigureerd en u het cluster in of uit de onderhoudsmodus zet, kunt u waarschuwingsberichten ontvangen, zoals:
WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'hostName_ hostname'
WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'azure-events_globalPullState'
WAARSCHUWING: cib-bootstrap-options: onbekend kenmerk 'hostName_ hostname'
Deze waarschuwingsberichten kunnen worden genegeerd.

Volgende stappen