Nastavení Pacemakeru na linuxovém Enterprise SUSE v Azure

Cluster Pacemaker v Azure můžete nastavit dvěma způsoby. Můžete použít buď agenta ohraničování, který se postará o restartování uzlu, který selhal, prostřednictvím rozhraní API Azure, nebo můžete použít zařízení SBD.

Zařízení SBD vyžaduje alespoň jeden další virtuální počítač, který funguje jako cílový server iSCSI a poskytuje zařízení SBD. Tyto cílové servery iSCSI je však možné sdílet s jinými clustery Pacemaker. Výhodou použití zařízení SBD je, že pokud už zařízení SBD používáte místně, nevyžaduje žádné změny v tom, jak cluster Pacemaker provozujete. Pro cluster Pacemaker můžete použít až tři zařízení SBD, aby zařízení SBD bylo nedostupné, například během oprav operačního systému cílového serveru iSCSI. Pokud chcete použít více než jedno zařízení SBD na Pacemaker, nezapomeňte nasadit několik cílových serverů iSCSI a připojit jednu SBD z každého cílového serveru iSCSI. Doporučujeme použít jedno nebo tři zařízení SBD. Pacemaker nebude moct automaticky ohrahraovat uzel clusteru, pokud nakonfigurujete pouze dvě zařízení SBD a jedno z nich není k dispozici. Pokud chcete být schopni plot, když je jeden cílový server iSCSI neschválený, musíte použít tři zařízení SBD a tedy tři cílové servery iSCSI, což je nejobezpečnější konfigurace při použití SBD.

Agent Azure Fence nevyžaduje nasazení dalších virtuálních počítačů.

Přehled Pacemakeru na SLES

Důležité

Při plánování a nasazování clusterovaných uzlů Linux Pacemakeru a zařízení SBD je pro celkovou spolehlivost kompletní konfigurace clusteru nezbytné, aby směrování mezi zapojených virtuálními počítači a virtuálními počítači, které hostují zařízení SBD, procházejí žádnými jinými zařízeními, jako jsou síťová virtuální zařízení. Jinak mohou mít problémy a události údržby síťového virtuálního zařízení negativní vliv na stabilitu a spolehlivost celkové konfigurace clusteru. Abyste se takovým překážkám vyhnuli, nedefinujte pravidla směrování síťových virtuálních zařízení ani uživatelsky definovaná pravidla směrování, která směrují provoz mezi uzly clusteru a zařízeními SBD prostřednictvím síťových virtuálních zařízení a podobných zařízení při plánování a nasazení clusterovaných uzlů a zařízení SBD s Linuxem Pacemakeru.

Ohraničování SBD

Pokud chcete pro ohraničování použít zařízení SBD, postupujte podle těchto kroků.

Nastavení cílových serverů iSCSI

Nejprve je potřeba vytvořit cílové virtuální počítače iSCSI. Cílové servery iSCSI je možné sdílet s několika clustery Pacemaker.

  1. Nasaďte nové virtuální počítače SLES 12 SP1 nebo vyšší a připojte se k nim přes SSH. Počítače nemusí být velké. Velikost virtuálního počítače, jako je Standard_E2s_v3 nebo Standard_D2s_v3, je dostatečná. Ujistěte se, že Premium disk s operačním systémem.

Na všech cílových virtuálních počítačích s iSCSI spusťte následující příkazy.

  1. Aktualizace SLES

    sudo zypper update
    

    Poznámka

    Po upgradu nebo aktualizaci operačního systému možná budete muset restartovat operační systém.

  2. Odebrání balíčků

    Pokud se chcete vyhnout známému problému s targetcli a SLES 12 SP3, odinstalujte následující balíčky. Chyby balíčků, které se nenašly, můžete ignorovat.

    sudo zypper remove lio-utils python-rtslib python-configshell targetcli
    
  3. Instalace cílových balíčků iSCSI

    sudo zypper install targetcli-fb dbus-1-python
    
  4. Povolení cílové služby iSCSI

    sudo systemctl enable targetcli
    sudo systemctl start targetcli
    

Vytvoření zařízení iSCSI na cílovém serveru iSCSI

Spuštěním následujících příkazů na všech cílových virtuálních počítačích iSCSI vytvořte disky iSCSI pro clustery používané systémy SAP. V následujícím příkladu se vytvoří zařízení SBD pro více clusterů. Ukazuje, jak použít jeden cílový server iSCSI pro více clusterů. Zařízení SBD se umístí na disk s operačním systémem. Ujistěte se, že máte dostatek místa.

nfs se používá k identifikaci clusteru NFS, ascsnw1 se používá k identifikaci clusteru ASCS NW1, dbnw1 se používá k identifikaci databázového clusteru NW1, nfs-0 a nfs-1 jsou název hostitele uzlů clusteru NFS. nw1-xscs-0 a nw1-xscs-1 jsou název hostitele uzlů clusteru NW1 ASCS a nw1-db-0 a nw1-db-1 jsou název hostitele uzlů databázového clusteru. Nahraďte je názvům hostitelů uzlů clusteru a SID vašeho systému SAP.

# 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

Můžete zkontrolovat, jestli je všechno správně nastavené.

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]

Nastavení zařízení SBD

Připojení k zařízení iSCSI, které bylo vytvořeno v posledním kroku z clusteru. Na uzlech nového clusteru, který chcete vytvořit, spusťte následující příkazy. Následující položky mají předponu [A] – platí pro všechny uzly [1] – platí jenom pro uzel 1 nebo [2] – platí jenom pro uzel 2.

  1. [A] Připojení k zařízením iSCSI

    Nejprve povolte služby iSCSI a SBD.

    sudo systemctl enable iscsid
    sudo systemctl enable iscsi
    sudo systemctl enable sbd
    
  2. [1] Změna názvu iniciátoru na prvním uzlu

    sudo vi /etc/iscsi/initiatorname.iscsi
    

    Změňte obsah souboru tak, aby odpovídal seznamy ACL, které jste použili při vytváření zařízení iSCSI na cílovém serveru iSCSI, například pro server NFS.

    InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
    
  3. [2] Změna názvu iniciátoru na druhém uzlu

    sudo vi /etc/iscsi/initiatorname.iscsi
    

    Změňte obsah souboru tak, aby odpovídal seznamy ACL, které jste použili při vytváření zařízení iSCSI na cílovém serveru iSCSI.

    InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
    
  4. [A] Restartujte službu iSCSI.

    Teď restartujte službu iSCSI, aby se změna aplikuje.

    sudo systemctl restart iscsid
    sudo systemctl restart iscsi
    

    Připojení zařízení iSCSI. V následujícím příkladu je IP adresa cílového serveru iSCSI 10.0.0.17 a 3260 je výchozí port. iqn.2006-04.nfs.local:nfs je jedním z cílových názvů uvedených při spuštění prvního příkazu níže (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
    
    # 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
    

    Ujistěte se, že jsou dostupná zařízení iSCSI, a poznamenejte si název zařízení (v následujícím příkladu je to /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
    

    Teď načtěte ID zařízení 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 -> ../../sdf
    

    Příkaz zobrazí seznam tří ID zařízení pro každé zařízení SBD. Doporučujeme použít ID, které začíná na scsi-3. V příkladu výše je to

    • /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03
    • /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
    • /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
  5. [1] Vytvoření zařízení SBD

    Pomocí ID zařízení iSCSI vytvořte nová zařízení SBD na prvním uzlu clusteru.

    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] Přizpůsobení konfigurace SBD

    Otevření konfiguračního souboru SBD

    sudo vi /etc/sysconfig/sbd
    

    Změňte vlastnost zařízení SBD, povolte integraci pacemakeru a režim spuštění 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"
    [...]
    

    Vytvoření softdog konfiguračního souboru

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

    Teď modul načtěte.

    sudo modprobe -v softdog
    

Instalace clusteru

Následující položky mají předponu [A] – platí pro všechny uzly [1] – platí jenom pro uzel 1 nebo [2] – platí jenom pro uzel 2.

  1. [A] Aktualizace SLES

    sudo zypper update
    
  2. [A] Instalace komponenty potřebné pro prostředky clusteru

    sudo zypper in socat
    
  3. [A] Instalace komponenty azure-lb potřebné pro prostředky clusteru

    sudo zypper in resource-agents
    

    Poznámka

    Zkontrolujte verzi balíčku resource-agents a ujistěte se, že jsou splněné minimální požadavky na verzi:

    • Pro SLES 12 SP4/SP5 musí být verze alespoň resource-agents-4.3.018.a7fb5035-3.30.1.
    • Pro SLES 15/15 SP1 musí být verze alespoň resource-agents-4.3.0184.6ee15eb2-4.13.1.
  4. [A] Konfigurace operačního systému

    V některých případech Pacemaker vytvoří mnoho procesů a tím vyčerpá povolený počet procesů. V takovém případě může heartbeat mezi uzly clusteru selhat a vést k převzetí služeb při selhání vašich prostředků. Doporučujeme zvýšit maximální povolený počet procesů nastavením následujícího parametru.

    # 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
    

    Zmenšete velikost nečtené mezipaměti. Další informace najdete v tématu Nízký výkon zápisu na serverech SLES 11/12s velkou paměť RAM.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  5. [A] Konfigurace cloud-netconfig-azure pro cluster s ha-ka

    Poznámka

    Spuštěním příkazu zypper info cloud-netconfig-azure zkontrolujte nainstalovanou verzi balíčku cloud-netconfig-azure. Pokud je verze ve vašem prostředí 1.3 nebo vyšší, není už nutné potlačit správu síťových rozhraní modulem plug-in cloudové sítě. Pokud je verze nižší než 1.3, doporučujeme aktualizovat balíček cloud-netconfig-azure na nejnovější dostupnou verzi.

    Změňte konfigurační soubor síťového rozhraní, jak je znázorněno níže, abyste modulu plug-in cloudové sítě zabránili v odebrání virtuální IP adresy (Pacemaker musí řídit přiřazení virtuální IP adresy). Další informace najdete v tématu 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"
    
  6. [1] Povolení přístupu ssh

    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] Povolení přístupu ssh

    
    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] Povolení přístupu 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
    
  9. [A] Pokud používáte zařízení STONITH založené na agentovi Azure Fence, nainstalujte balíček agentů Fence.

    sudo zypper install fence-agents
    

    Důležité

    Nainstalovaná verze agentů plotu balíčků musí být minimálně 4.4.0, aby bylo možné využít rychlejší doby převzetí služeb při selhání pomocí agenta Azure Fence Agent, pokud je potřeba ohrazení uzlů clusteru. Pokud používáte nižší verzi, doporučujeme balíček aktualizovat.

  10. [A] Instalace sady Azure Python SDK

    • V SLES 12 SP4 nebo 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
    
    • V SLES 15 a vyšších
    
     # 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
    

    Důležité

    V závislosti na vaší verzi a typu image možná budete muset před instalací Azure Python SDK aktivovat rozšíření veřejného cloudu pro vaši verzi operačního systému. Rozšíření můžete ověřit spuštěním SUSEConnect---rozšíření seznamu.
    Chcete-li dosáhnout rychlejšího převzetí služeb při selhání pomocí agenta Azure Plot:

    • v SLES 12 SP4 nebo SLES 12 SP5 nainstalujte verzi 4.6.2 nebo vyšší z balíčku Python – Azure-Správa – Compute.
    • v SLES 15. X nainstalujte verzi 4.6.2 balíčku Python 3– Azure-pro správu – COMPUTE, ale ne vyšší. Vyhněte se verzi 17.0.0-6.7.1 balíčku Python 3– Azure-pro správu – COMPUTE, protože obsahuje změny nekompatibilní s agentem Azure plot
  11. [A] nastavení rozlišení názvu hostitele

    Můžete buď použít server DNS, nebo upravit/etc/hosts na všech uzlech. Tento příklad ukazuje, jak použít soubor/etc/hosts. V následujících příkazech nahraďte IP adresu a název hostitele.

    Důležité

    Pokud používáte názvy hostitelů v konfiguraci clusteru, je důležité mít spolehlivé rozlišení názvu hostitele. Pokud názvy nejsou k dispozici a to může vést k prodlevám při převzetí služeb při selhání clusteru, komunikace clusteru selže. Výhodou použití/etc/hosts je to, že váš cluster bude nezávislý na službě DNS, což může být jen jeden bod selhání.

    sudo vi /etc/hosts
    
    

    Vložte následující řádky do/etc/hosts. Změňte IP adresu a název hostitele tak, aby odpovídaly vašemu prostředí.

    # 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] nainstalovat cluster

  • Pokud se pro oplocení používá zařízení SBD

    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
    
  • Pokud nepoužíváte zařízení SBD pro oplocení

    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] přidat uzel do clusteru

    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] Změna hesla hacluster na stejné heslo

    sudo passwd hacluster
    
  3. [A] upravit nastavení Corosync.

    sudo vi /etc/corosync/corosync.conf
    

    Pokud tyto hodnoty nejsou nebo jsou odlišné, přidejte do souboru následující tučný obsah. Ujistěte se, že jste token změnili na 30000, aby se zajistila údržba paměti. Další informace najdete v tomto článku pro Linux nebo 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
    }
    

    Pak restartujte službu Corosync.

    sudo service corosync restart
    

Výchozí konfigurace Pacemaker pro SBD

Konfigurace v této části je platná, pouze pokud používáte SBD STONITH.

  1. [1] povolit použití zařízení STONITH a nastavit zpoždění plotu
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"

Vytvoření zařízení STONITH s agentem Azure plot

Tato část dokumentace je k dispozici, pouze pokud používáte STONITH, a to na základě agenta Azure plot. Zařízení STONITH používá instanční objekt k autorizaci proti Microsoft Azure. Pomocí těchto kroků můžete vytvořit instanční objekt.

  1. Přejděte na https://portal.azure.com.
  2. otevřete okno Azure Active Directory
    Přejděte na vlastnosti a zapište ID adresáře. Toto je ID tenanta.
  3. Klikněte na Registrace aplikací
  4. Klikněte na nová registrace.
  5. Zadejte název, vyberte účty pouze v tomto adresáři organizace.
  6. Vyberte typ aplikace "Web", zadejte adresu URL pro přihlášení (například http: / /localhost) a klikněte na Přidat.
    Přihlašovací adresa URL se nepoužívá a může to být libovolná platná adresa URL.
  7. Vyberte certifikáty a tajné klíče a pak klikněte na nový tajný klíč klienta.
  8. Zadejte popis nového klíče, vyberte možnost "nikdy vyprší platnost" a klikněte na tlačítko Přidat.
  9. Zapište hodnotu. Používá se jako heslo instančního objektu.
  10. Vyberte Přehled. Poznamenejte si ID aplikace. Používá se jako uživatelské jméno objektu služby.

[1] vytvoření vlastní role pro agenta plotu

Objekt služby nemá ve výchozím nastavení oprávnění pro přístup k prostředkům Azure. Musíte přidělit instančnímu objektu oprávnění ke spouštění a zastavování (navrácení) všech virtuálních počítačů v clusteru. Pokud jste ještě nevytvořili vlastní roli, můžete ji vytvořit pomocí PowerShellu nebo rozhraní příkazového řádku Azure CLI .

Pro vstupní soubor použijte následující obsah. Je potřeba upravit obsah pro vaše předplatná, která jsou, nahraďte c276fc76-9cd4-44c9-99a7-4fd71546436e a e91d47c4-76f3-4271-a796-21b4ecfe3624 ID vašeho předplatného. Pokud máte jenom jedno předplatné, odeberte druhou položku v 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] přiřazení vlastní role k instančnímu objektu

Přiřaďte vlastní roli "role ochrany systému Linux" vytvořenou v poslední kapitole objektu služby. Nepoužívejte již vlastníka role. Podrobný postup najdete v tématu přiřazení rolí Azure pomocí Azure Portal.
Ujistěte se, že přiřadíte roli pro oba uzly clusteru.

[1] vytvoření zařízení STONITH

Po úpravě oprávnění pro virtuální počítače můžete nakonfigurovat zařízení STONITH v clusteru.

Poznámka

Možnost ' pcmk_host_map ' je požadována pouze v příkazu, pokud názvy hostitelů a názvy virtuálních počítačů Azure nejsou stejné. Zadejte mapování ve formátu název hostitele: VM-Name. Přečtěte si část tučné v příkazu.

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

Důležité

Operace monitorování a oplocení jsou rozserializovány. Výsledkem je, že pokud už existuje již běžící operace monitorování a současná událost, dojde k převzetí služeb při selhání clusteru z důvodu již běžící operace monitorování.

Tip

Agent Azure plotu vyžaduje odchozí připojení k veřejným koncovým bodům, jak je popsáno, spolu s možnými řešeními ve veřejných koncových bodech pro virtuální počítače s využitím Standard interního nástroje.

Konfigurace Pacemaker pro plánované události Azure

Azure nabízí naplánované události. Naplánované události se poskytují prostřednictvím služby meta-data Service a umožňují, aby se aplikace připravila na události, jako je třeba vypnutí virtuálního počítače, opětovné nasazení virtuálního počítače atd. Agenti prostředků Azure – monitorování událostí pro plánované události Azure Pokud se zjistí události a Agent prostředků zjistí, že je k dispozici jiný dostupný uzel clusteru, agent Azure-Events umístí cílový uzel clusteru do úsporného režimu, aby vynutil, aby cluster migrovali prostředky z virtuálního počítače na probíhající plánované události Azure. Aby bylo možné dosáhnout dalších prostředků Pacemaker, musí být nakonfigurovány.

  1. [A] Ujistěte se, že balíček pro agenta Azure-Events je už nainstalovaný a aktuální.
sudo zypper info resource-agents
  1. [1] nakonfigurujte prostředky v 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

Poznámka

Po nakonfigurování prostředků Pacemaker pro agenta Azure-Events při umístění clusteru do režimu údržby nebo z něj dostanete varovné zprávy, jako například:
Upozornění: CIB-Bootstrap-Options: neznámý atribut hostName_ název hostitele
Upozornění: CIB-Bootstrap-Options: neznámý atribut ' Azure-events_globalPullState '
Upozornění: CIB-Bootstrap-Options: neznámý atribut hostName_ název hostitele
Tyto zprávy upozornění je možné ignorovat.

Další kroky