Konfigurowanie programu Pacemaker na serwerze SUSE Linux Enterprise Server na platformie Azure
W tym artykule omówiono sposób konfigurowania programu Pacemaker w systemie SUSE Linux Enterprise Server (SLES) na platformie Azure.
Omówienie
Na platformie Azure dostępne są dwie opcje konfigurowania ogrodzenia w klastrze Pacemaker dla systemu SLES. Możesz użyć agenta ogrodzenia platformy Azure, który uruchamia ponownie węzeł, który kończy się niepowodzeniem za pośrednictwem interfejsów API platformy Azure, lub możesz użyć urządzenia SBD.
Korzystanie z urządzenia SBD
Urządzenie SBD można skonfigurować przy użyciu jednej z dwóch opcji:
Usługa SBD z serwerem docelowym iSCSI:
Urządzenie SBD wymaga co najmniej jednej dodatkowej maszyny wirtualnej, która działa jako serwer docelowy Internet Small Computer System Interface (iSCSI) i udostępnia urządzenie SBD. Te serwery obiektów docelowych iSCSI mogą być jednak współużytkowane z innymi klastrami Pacemaker. Zaletą korzystania z urządzenia SBD jest to, że jeśli korzystasz już z urządzeń SBD lokalnie, nie wymagają żadnych zmian sposobu działania klastra Pacemaker.
Można użyć maksymalnie trzech urządzeń SBD dla klastra Pacemaker, aby umożliwić urządzeniu SBD stanie się niedostępne (na przykład podczas stosowania poprawek systemu operacyjnego serwera docelowego iSCSI). Jeśli chcesz użyć więcej niż jednego urządzenia SBD na program Pacemaker, należy wdrożyć wiele serwerów obiektów docelowych iSCSI i połączyć jeden SBD z każdego serwera docelowego iSCSI. Zalecamy użycie jednego urządzenia SBD lub trzech. Program Pacemaker nie może automatycznie ogrodzać węzła klastra, jeśli skonfigurowano tylko dwa urządzenia SBD i jedna z nich jest niedostępna. Jeśli chcesz mieć możliwość ogrodzenia, gdy jeden serwer docelowy iSCSI nie działa, musisz użyć trzech urządzeń SBD i w związku z tym trzech serwerów docelowych iSCSI. Jest to najbardziej odporna konfiguracja podczas korzystania z dysków SSD.
Ważne
Podczas planowania i wdrażania węzłów klastrowanych programu Pacemaker systemu Linux i urządzeń SBD nie zezwalaj na routing między maszynami wirtualnymi i maszynami wirtualnymi hostujących urządzenia SBD do przekazywania wszystkich innych urządzeń, takich jak wirtualne urządzenie sieciowe (WUS).
Zdarzenia konserwacji i inne problemy z urządzeniem WUS mogą mieć negatywny wpływ na stabilność i niezawodność ogólnej konfiguracji klastra. Aby uzyskać więcej informacji, zobacz Reguły routingu zdefiniowane przez użytkownika.
Usługa SBD z dyskiem udostępnionym platformy Azure:
Aby skonfigurować urządzenie SBD, należy dołączyć co najmniej jeden dysk udostępniony platformy Azure do wszystkich maszyn wirtualnych będących częścią klastra Pacemaker. Zaletą urządzenia SBD przy użyciu dysku udostępnionego platformy Azure jest to, że nie trzeba wdrażać dodatkowych maszyn wirtualnych.
Poniżej przedstawiono kilka ważnych zagadnień dotyczących urządzeń SBD podczas korzystania z dysku udostępnionego platformy Azure:
- Dysk udostępniony platformy Azure z dyskiem SSD w warstwie Premium jest obsługiwany jako urządzenie SBD.
- Urządzenia SBD korzystające z dysku udostępnionego platformy Azure są obsługiwane w systemie SLES High Availability 15 SP01 lub nowszym.
- Urządzenia SBD korzystające z dysku udostępnionego usługi Azure Premium są obsługiwane w magazynie lokalnie nadmiarowym (LRS) i magazynie strefowo nadmiarowym (ZRS).
- W zależności od typu wdrożenia wybierz odpowiedni magazyn nadmiarowy dla dysku udostępnionego platformy Azure jako urządzenie SBD.
- Urządzenie SBD korzystające z magazynu LRS dla udostępnionego dysku azure Premium (skuName — Premium_LRS) jest obsługiwane tylko w przypadku wdrożenia w zestawie dostępności.
- Urządzenie SBD korzystające z magazynu ZRS dla dysku udostępnionego w warstwie Premium platformy Azure (skuName — Premium_ZRS) jest zalecane we wdrożeniu w strefach dostępności.
- Magazyn ZRS dla dysku zarządzanego jest obecnie niedostępny we wszystkich regionach ze strefami dostępności. Aby uzyskać więcej informacji, zapoznaj się z sekcją "Ograniczenia" magazynu ZRS w temacie Opcje nadmiarowości dla dysków zarządzanych.
- Dysk udostępniony platformy Azure używany na potrzeby urządzeń SBD nie musi być duży. Wartość maxShares określa, ile węzłów klastra może używać dysku udostępnionego. Można na przykład użyć rozmiarów dysków P1 lub P2 dla urządzenia SBD w klastrze z dwoma węzłami, takimi jak SAP ASCS/ERS lub SAP HANA scale-up.
- W przypadku skalowania w poziomie platformy HANA z replikacją systemu HANA (HSR) i pacemaker można użyć dysku udostępnionego platformy Azure dla urządzeń SBD w klastrach z maksymalnie czterema węzłami na lokację replikacji z powodu bieżącego limitu maxShares.
- Nie zalecamy dołączania urządzenia SBD dysku udostępnionego platformy Azure w klastrach Pacemaker.
- Jeśli używasz wielu urządzeń SBD dysku udostępnionego platformy Azure, sprawdź limit maksymalnej liczby dysków danych, które można dołączyć do maszyny wirtualnej.
- Aby uzyskać więcej informacji na temat ograniczeń dotyczących dysków udostępnionych platformy Azure, dokładnie zapoznaj się z sekcją "Ograniczenia" w dokumentacji dysku udostępnionego platformy Azure.
Korzystanie z agenta ogrodzenia platformy Azure
Ogrodzenie można skonfigurować przy użyciu agenta ogrodzenia platformy Azure. Agent ogrodzenia platformy Azure wymaga tożsamości zarządzanych dla maszyn wirtualnych klastra lub jednostki usługi, która zarządza ponownym uruchamianiem węzłów, które zakończyły się niepowodzeniem za pośrednictwem interfejsów API platformy Azure. Agent ogrodzenia platformy Azure nie wymaga wdrożenia dodatkowych maszyn wirtualnych.
Usługa SBD z serwerem docelowym iSCSI
Aby użyć urządzenia SBD, które używa serwera docelowego iSCSI do ogrodzenia, postępuj zgodnie z instrukcjami w następnych sekcjach.
Konfigurowanie serwera docelowego iSCSI
Najpierw należy utworzyć maszyny wirtualne obiektów docelowych iSCSI. Serwery docelowe iSCSI można udostępniać w wielu klastrach Pacemaker.
Wdróż nowe maszyny wirtualne SLES 12 SP3 lub nowsze i połącz się z nimi za pośrednictwem protokołu SSH. Maszyny nie muszą być duże. Rozmiary maszyn wirtualnych Standard_E2s_v3 lub Standard_D2s_v3 są wystarczające. Pamiętaj, aby używać magazynu w warstwie Premium dla dysku systemu operacyjnego.
Na maszynach wirtualnych obiektów docelowych iSCSI uruchom następujące polecenia:
a. Zaktualizuj usługę SLES.
sudo zypper update
Uwaga
Po uaktualnieniu lub zaktualizowaniu systemu operacyjnego może być konieczne ponowne uruchomienie systemu operacyjnego.
b. Usuń pakiety.
Aby uniknąć znanego problemu z elementami targetcli i SLES 12 SP3, odinstaluj następujące pakiety. Błędy dotyczące pakietów, których nie można znaleźć, można zignorować.
sudo zypper remove lio-utils python-rtslib python-configshell targetcli
c. Zainstaluj pakiety obiektów docelowych iSCSI.
sudo zypper install targetcli-fb dbus-1-python
d. Włącz usługę docelową iSCSI.
sudo systemctl enable targetcli sudo systemctl start targetcli
Tworzenie urządzenia iSCSI na serwerze docelowym iSCSI
Aby utworzyć dyski iSCSI dla klastrów, które mają być używane przez systemy SAP, uruchom następujące polecenia na wszystkich docelowych maszynach wirtualnych iSCSI. W tym przykładzie tworzone są urządzenia SBD dla wielu klastrów. Przedstawiono w nim sposób użycia jednego serwera docelowego iSCSI dla wielu klastrów. Urządzenia SBD są umieszczane na dysku systemu operacyjnego. Upewnij się, że masz wystarczającą ilość miejsca.
- nfs: identyfikuje klaster NFS.
- ascsnw1: identyfikuje klaster ASCS NW1.
- dbnw1: identyfikuje klaster bazy danych NW1.
- nfs-0 i nfs-1: nazwy hostów węzłów klastra NFS.
- nw1-xscs-0 i nw1-xscs-1: nazwy hostów węzłów klastra NW1 ASCS.
- nw1-db-0 i nw1-db-1: nazwy hostów węzłów klastra bazy danych.
W poniższych instrukcjach zastąp ciąg dostosuj nazwy hostów węzłów klastra i identyfikator SID systemu SAP.
Utwórz folder główny dla wszystkich urządzeń SBD.
sudo mkdir /sbd
Utwórz urządzenie SBD dla serwera 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-1
Utwórz urządzenie SBD dla serwera ASCS systemu SAP 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
Utwórz urządzenie SBD dla klastra bazy danych systemu SAP 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
Zapisz zmiany elementu targetcli.
sudo targetcli saveconfig
Sprawdź, czy wszystko zostało poprawnie skonfigurowane.
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]
Konfigurowanie urządzenia SBD serwera docelowego iSCSI
Połącz się z urządzeniem iSCSI utworzonym w ostatnim kroku z klastra. Uruchom następujące polecenia w węzłach nowego klastra, który chcesz utworzyć.
Uwaga
- [A]: Dotyczy wszystkich węzłów.
- [1]: Dotyczy tylko węzła 1.
- [2]: Dotyczy tylko węzła 2.
[A] Zainstaluj pakiet iSCSI.
sudo zypper install open-iscsi
[A] Połącz się z urządzeniami iSCSI. Najpierw włącz usługi iSCSI i SBD.
sudo systemctl enable iscsid sudo systemctl enable iscsi sudo systemctl enable sbd
[1] Zmień nazwę inicjatora w pierwszym węźle.
sudo vi /etc/iscsi/initiatorname.iscsi
[1] Zmień zawartość pliku tak, aby była zgodna z listami kontroli dostępu (ACL) używanymi podczas tworzenia urządzenia iSCSI na serwerze docelowym iSCSI (na przykład dla serwera NFS).
InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
[2] Zmień nazwę inicjatora w drugim węźle.
sudo vi /etc/iscsi/initiatorname.iscsi
[2] Zmień zawartość pliku tak, aby była zgodna z listami ACL używanymi podczas tworzenia urządzenia iSCSI na serwerze docelowym iSCSI.
InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
[A] Uruchom ponownie usługę iSCSI, aby zastosować zmianę.
sudo systemctl restart iscsid sudo systemctl restart iscsi
[A] Łączenie urządzeń iSCSI. W poniższym przykładzie 10.0.0.17 jest adresem IP serwera docelowego iSCSI, a 3260 jest portem domyślnym. iqn.2006-04.nfs.local:nfs jest jedną z nazw docelowych wymienionych podczas uruchamiania pierwszego polecenia .
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] Jeśli chcesz użyć wielu urządzeń SBD, połącz się również z drugim serwerem docelowym 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] Jeśli chcesz użyć wielu urządzeń SBD, połącz się również z trzecim serwerem docelowym 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] Upewnij się, że urządzenia iSCSI są dostępne i zanotuj nazwę urządzenia (/dev/sde, w poniższym przykładzie).
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] Pobieranie identyfikatorów urządzeń 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
Polecenie wyświetla listę trzech identyfikatorów urządzeń dla każdego urządzenia SBD. Zalecamy użycie identyfikatora rozpoczynającego się od scsi-3. W poprzednim przykładzie identyfikatory to:
- /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03
- /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
- /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
[1] Tworzenie urządzenia SBD.
a. Użyj identyfikatora urządzenia urządzeń iSCSI, aby utworzyć nowe urządzenia SBD w pierwszym węźle klastra.
sudo sbd -d /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -1 60 -4 120 create
b. Utwórz również drugie i trzecie urządzenia SBD, jeśli chcesz użyć więcej niż jednego.
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] Dostosowanie konfiguracji SBD.
a. Otwórz plik konfiguracji SBD.
sudo vi /etc/sysconfig/sbd
b. Zmień właściwość urządzenia SBD, włącz integrację programu Pacemaker i zmień tryb uruchamiania usługi 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" [...]
Uwaga
Jeśli wartość właściwości SBD_DELAY_START jest ustawiona na "nie", zmień wartość na "tak". Należy również sprawdzić plik usługi SBD, aby upewnić się, że wartość timeoutStartSec jest większa niż wartość SBD_DELAY_START. Aby uzyskać więcej informacji, zobacz Konfigurowanie pliku SBD
[A] Utwórz
softdog
plik konfiguracji.echo softdog | sudo tee /etc/modules-load.d/softdog.conf
[A] Załaduj moduł.
sudo modprobe -v softdog
Usługa SBD z dyskiem udostępnionym platformy Azure
Ta sekcja ma zastosowanie tylko wtedy, gdy chcesz użyć urządzenia SBD z dyskiem udostępnionym platformy Azure.
Tworzenie i dołączanie udostępnionego dysku platformy Azure za pomocą programu PowerShell
Dostosuj wartości dla grupy zasobów, regionu platformy Azure, maszyn wirtualnych, numerów jednostek logicznych (LUN) itd.
$ResourceGroup = "MyResourceGroup" $Location = "MyAzureRegion"
Zdefiniuj rozmiar dysku na podstawie dostępnego rozmiaru dysku dla dysków SSD w warstwie Premium. W tym przykładzie wymieniono rozmiar dysku P1 o rozmiarze 4G.
$DiskSizeInGB = 4 $DiskName = "SBD-disk1"
Za pomocą parametru -MaxSharesCount zdefiniuj maksymalną liczbę węzłów klastra, aby dołączyć dysk udostępniony dla urządzenia SBD.
$ShareNodes = 2
W przypadku urządzenia SBD korzystającego z magazynu LRS dla udostępnionego dysku usługi Azure Premium użyj następującej jednostki SkuName magazynu:
$SkuName = "Premium_LRS"
W przypadku urządzenia SBD korzystającego z magazynu ZRS dla udostępnionego dysku usługi Azure Premium użyj następującej jednostki SkuName magazynu:
$SkuName = "Premium_ZRS"
Konfigurowanie dysku udostępnionego platformy Azure.
$diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes $dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
Dołącz dysk do maszyn wirtualnych klastra.
$VM1 = "prod-cl1-0" $VM2 = "prod-cl1-1"
a. Dodaj dysk udostępniony platformy Azure do węzła klastra 1.
$vm = Get-AzVM -ResourceGroupName $ResourceGroup -Name $VM1 $vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0 Update-AzVm -VM $vm -ResourceGroupName $ResourceGroup -Verbose
b. Dodaj dysk udostępniony platformy Azure do węzła klastra 2.
$vm = Get-AzVM -ResourceGroupName $ResourceGroup -Name $VM2 $vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0 Update-AzVm -VM $vm -ResourceGroupName $ResourceGroup -Verbose
Jeśli chcesz wdrożyć zasoby przy użyciu interfejsu wiersza polecenia platformy Azure lub witryny Azure Portal, możesz również zapoznać się z artykułem Wdrażanie dysku ZRS.
Konfigurowanie urządzenia SBD dysku udostępnionego platformy Azure
[A] Włącz usługi SBD.
sudo systemctl enable sbd
[A] Upewnij się, że dołączony dysk jest dostępny.
# 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] Pobierz identyfikatory dołączonych dysków.
# 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 -> ../../sdc
Polecenia wyświetlają listę identyfikatorów urządzeń dla urządzenia SBD. Zalecamy użycie identyfikatora rozpoczynającego się od scsi-3. W poprzednim przykładzie identyfikator to /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19.
[1] Tworzenie urządzenia SBD.
Użyj identyfikatora urządzenia z kroku 2, aby utworzyć nowe urządzenia SBD w pierwszym węźle klastra.
# sudo sbd -d /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -1 60 -4 120 create
[A] Dostosowanie konfiguracji SBD.
a. Otwórz plik konfiguracji SBD.
sudo vi /etc/sysconfig/sbd
b. Zmień właściwość urządzenia SBD, włącz integrację programu Pacemaker i zmień tryb uruchamiania urządzenia SBD.
[...] SBD_DEVICE="/dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19" [...] SBD_PACEMAKER="yes" [...] SBD_STARTMODE="always" [...]
Uwaga
Jeśli wartość właściwości SBD_DELAY_START jest ustawiona na "nie", zmień wartość na "tak". Należy również sprawdzić plik usługi SBD, aby upewnić się, że wartość timeoutStartSec jest większa niż wartość SBD_DELAY_START. Aby uzyskać więcej informacji, zobacz Konfigurowanie pliku SBD
softdog
Utwórz plik konfiguracji.echo softdog | sudo tee /etc/modules-load.d/softdog.conf
Załaduj moduł.
sudo modprobe -v softdog
Korzystanie z agenta ogrodzenia platformy Azure
Ta sekcja ma zastosowanie tylko wtedy, gdy chcesz użyć urządzenia ogrodzenia z agentem ogrodzenia platformy Azure.
Tworzenie urządzenia agenta ogrodzenia platformy Azure
Ta sekcja ma zastosowanie tylko wtedy, gdy używasz urządzenia ogrodzenia opartego na agencie ogrodzenia platformy Azure. Urządzenie ogrodzenia używa tożsamości zarządzanej lub jednostki usługi do autoryzacji względem platformy Microsoft Azure.
Aby utworzyć tożsamość zarządzaną (MSI), utwórz tożsamość zarządzaną przypisaną przez system dla każdej maszyny wirtualnej w klastrze. Jeśli tożsamość zarządzana przypisana przez system już istnieje, zostanie użyta. Tożsamości zarządzane przypisane przez użytkownika nie powinny być obecnie używane z usługą Pacemaker. Agent ogrodzenia platformy Azure oparty na tożsamości zarządzanej jest obsługiwany w przypadku systemów SLES 12 SP5 i SLES 15 SP1 i nowszych.
[1] Tworzenie roli niestandardowej dla agenta ogrodzenia
Domyślnie żadna tożsamość zarządzana ani jednostka usługi nie ma uprawnień dostępu do zasobów platformy Azure. Aby uruchomić i zatrzymać wszystkie maszyny wirtualne w klastrze, musisz nadać tożsamości zarządzanej lub jednostce usługi uprawnienia do uruchamiania i zatrzymywania (cofania przydziału). Jeśli jeszcze nie utworzono roli niestandardowej, możesz to zrobić przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure.
Użyj następującej zawartości dla pliku wejściowego. Musisz dostosować zawartość do swoich subskrypcji. Oznacza to, że zastąp ciąg xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx i yyy-y własnymi identyfikatorami subskrypcji. Jeśli masz tylko jedną subskrypcję, usuń drugi wpis w obszarze 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] Przypisywanie roli niestandardowej
Użyj tożsamości zarządzanej lub jednostki usługi.
Przypisz rolę niestandardową "Rola agenta ogrodzenia systemu Linux", która została utworzona w ostatnim rozdziale do każdej tożsamości zarządzanej maszyn wirtualnych klastra. Każda tożsamość zarządzana przypisana przez system maszyny wirtualnej wymaga roli przypisanej dla każdego zasobu maszyny wirtualnej klastra. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie dostępu tożsamości zarządzanej do zasobu przy użyciu witryny Azure Portal. Sprawdź, czy przypisanie roli tożsamości zarządzanej każdej maszyny wirtualnej zawiera wszystkie maszyny wirtualne klastra.
Ważne
Należy pamiętać, że przypisanie i usunięcie autoryzacji z tożsamościami zarządzanymi może być opóźnione do czasu skutecznego.
Instalowanie klastra
Uwaga
- [A]: Dotyczy wszystkich węzłów.
- [1]: Dotyczy tylko węzła 1.
- [2]: Dotyczy tylko węzła 2.
[A] Zaktualizuj usługę SLES.
sudo zypper update
Uwaga
W przypadku systemu SLES 15 SP4 sprawdź wersje
crmsh
pakietów ipacemaker
, aby upewnić się, że spełniają minimalne wymagania dotyczące wersji:crmsh-4.4.0+20221028.3e41444-150400.3.9.1
lub nowszepacemaker-2.1.2+20211124.ada5c3b36-150400.4.6.1
lub nowsze
Ważne
- SLES 12 SP5: Jeśli zainstalowano środowisko python-azure-core-1.23.1-2.12.8, agent ogrodzenia platformy Azure może nie uruchomić się w klastrze Pacemaker, wyświetlając komunikat o błędzie "Zestaw SDK języka Python usługi Azure Resource Manager nie został znaleziony lub niedostępny" w pliku /var/log/messages. Aby uzyskać więcej informacji, postępuj zgodnie z instrukcjami w artykule SUSE KBA 21532 .
- SLES 15 SP4+: po zaktualizowaniu systemu operacyjnego biblioteki platformy Azure dla języka Python mogą używać interpretera języka Python 3.11, co powoduje, że agent ogrodzenia platformy Azure nie może uruchomić się w klastrze Pacemaker. Komunikat o błędzie "Nie znaleziono zestawu SDK języka Python usługi Azure Resource Manager lub jest on niedostępny" zostanie wyświetlony w pliku /var/log/messages. Aby uzyskać więcej informacji, postępuj zgodnie z instrukcjami w artykule SUSE KBA 21504 .
[A] Zainstaluj składnik, który jest potrzebny dla zasobów klastra.
sudo zypper in socat
[A] Zainstaluj składnik azure-lb, który jest potrzebny dla zasobów klastra.
sudo zypper in resource-agents
Uwaga
Sprawdź wersję pakietu resource-agents i upewnij się, że zostały spełnione minimalne wymagania dotyczące wersji:
- SLES 12 SP4/SP5: wersja musi być resource-agents-4.3.018.a7fb5035-3.30.1 lub nowsza.
- SLES 15/15 SP1: wersja musi być resource-agents-4.3.0184.6ee15eb2-4.13.1 lub nowsza.
[A] Skonfiguruj system operacyjny.
a. Pacemaker od czasu do czasu tworzy wiele procesów, które mogą wyczerpać dozwoloną liczbę. W takim przypadku puls między węzłami klastra może zakończyć się niepowodzeniem i prowadzić do przejścia w tryb failover zasobów. Zalecamy zwiększenie maksymalnej liczby dozwolonych procesów przez ustawienie następującego parametru:
# 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 DefaultTasksMax
b. Zmniejsz rozmiar brudnej pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Niska wydajność zapisu na serwerach SLES 11/12 z dużą pamięcią RAM.
sudo vi /etc/sysctl.conf # Change/set the following settings vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
c. Upewnij się, że wartość vm.swappiness jest ustawiona na 10, aby zmniejszyć użycie wymiany i faworyzować pamięć.
sudo vi /etc/sysctl.conf # Change/set the following setting vm.swappiness = 10
[A] Sprawdź wersję pakietu cloud-netconfig-azure .
Sprawdź zainstalowaną wersję pakietu cloud-netconfig-azure , uruchamiając narzędzie zypper info cloud-netconfig-azure. Jeśli wersja jest starsza niż 1.3, zalecamy zaktualizowanie pakietu cloud-netconfig-azure do najnowszej dostępnej wersji.
Napiwek
Jeśli wersja w środowisku to 1.3 lub nowsza, nie trzeba już pomijać zarządzania interfejsami sieciowymi przez wtyczkę sieci w chmurze.
Tylko wtedy, gdy wersja pliku cloud-netconfig-azure jest niższa niż 1.3, zmień plik konfiguracji interfejsu sieciowego, jak pokazano w poniższym kodzie, aby zapobiec usunięciu wirtualnego adresu IP przez wtyczkę sieci w chmurze (program Pacemaker musi kontrolować przypisanie). Aby uzyskać więcej informacji, zobacz 7023633 SUSE KB.
# Edit the configuration file sudo vi /etc/sysconfig/network/ifcfg-eth0 # Change CLOUD_NETCONFIG_MANAGE # CLOUD_NETCONFIG_MANAGE="yes" CLOUD_NETCONFIG_MANAGE="no"
[1] Włącz dostęp 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] Włącz dostęp 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] Włącz dostęp 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] Zainstaluj pakiet ogrodzenia agentów , jeśli używasz urządzenia ogrodzenia na podstawie agenta ogrodzenia platformy Azure.
sudo zypper install fence-agents
Ważne
Zainstalowana wersja pakietu ogrodzenia agentów musi być 4.4.0 lub nowsza, aby korzystać z szybszego czasu pracy w trybie failover z agentem ogrodzenia platformy Azure, gdy węzeł klastra jest ogrodzony. Jeśli używasz starszej wersji, zalecamy zaktualizowanie pakietu.
Ważne
W przypadku korzystania z tożsamości zarządzanej zainstalowana wersja pakietu ogrodzenia agentów musi mieć wartość -
- SLES 12 SP5: fence-agents 4.9.0+git.1624456340.8d746be9-3.35.2 lub nowszy
- SLES 15 SP1 i nowsze: fence-agents 4.5.2+git.1592573838.1ee0863 lub nowszy.
Wcześniejsze wersje nie będą działać poprawnie z konfiguracją tożsamości zarządzanej.
[A] Zainstaluj pakiet fence-agents-azure-arm.
W przypadku systemu SLES 12 SP5, jeśli używasz
fence-agents
wersji lub nowszej4.9.0+git.1624456340.8d746be9-3.41.3
oraz dla systemu SLES 15 SP4 i nowszych, musisz zainstalowaćfence-agents-azure-arm
pakiet. Ten pakiet będzie zawierać wszystkie wymagane zależności.# 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] Zainstaluj moduł Azure Python SDK i Azure Identity Python.
W przypadku systemu SLES 12 SP5, jeśli wersja
fence-agents
jest niższa4.9.0+git.1624456340.8d746be9-3.41.3
niż , a w przypadku systemu SLES 15 SP3 i poniżej należy zainstalować poniższe dodatkowe pakiety.# 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-identity
Ważne
W zależności od wersji i typu obrazu może być konieczne aktywowanie rozszerzenia chmury publicznej dla wersji systemu operacyjnego przed zainstalowaniem zestawu Azure Python SDK. Rozszerzenie można sprawdzić, uruchamiając polecenie
SUSEConnect ---list-extensions
. Aby osiągnąć krótszy czas pracy w trybie failover za pomocą agenta ogrodzenia platformy Azure:- W systemie SLES 12 SP5 zainstaluj wersję 4.6.2 lub nowszą pakietu python-azure-mgmt-compute .
- Jeśli pakiet python-azure-mgmt-compute lub python3-azure-mgmt-compute ma wersję 17.0.0-6.7.1, postępuj zgodnie z instrukcjami w artykule SUSE KBA, aby zaktualizować wersję agentów ogrodzenia i zainstalować bibliotekę klienta tożsamości platformy Azure dla języka Python, jeśli brakuje.
[A] Skonfiguruj rozpoznawanie nazwy hosta.
Możesz użyć serwera DNS lub zmodyfikować plik /etc/hosts na wszystkich węzłach. W tym przykładzie pokazano, jak używać pliku /etc/hosts .
Zastąp adres IP i nazwę hosta w następujących poleceniach.
Ważne
Jeśli używasz nazw hostów w konfiguracji klastra, ważne jest, aby mieć niezawodne rozpoznawanie nazwy hosta. Komunikacja klastra zakończy się niepowodzeniem, jeśli nazwy są niedostępne i może to prowadzić do opóźnień trybu failover klastra.
Zaletą używania /etc/hosts jest to, że klaster staje się niezależny od systemu DNS, co może być pojedynczym punktem awarii.
sudo vi /etc/hosts
Wstaw następujące wiersze w /etc/hosts. Zmień adres IP i nazwę hosta, aby pasować do twojego środowiska.
# 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] Zainstaluj klaster.
Jeśli używasz urządzeń SBD do ogrodzenia (dla serwera docelowego iSCSI lub dysku udostępnionego platformy 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)? n
Jeśli nie używasz urządzeń SBD do ogrodzenia:
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] Dodaj węzeł do klastra.
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] Zmień hasło hacluster na to samo hasło.
sudo passwd hacluster
[A] Dostosuj ustawienia corosync.
sudo vi /etc/corosync/corosync.conf
a. Sprawdź następującą sekcję w pliku i dostosuj, jeśli wartości nie istnieją lub są inne. Pamiętaj, aby zmienić token na 30000, aby umożliwić konserwację zachowującą pamięć. Aby uzyskać więcej informacji, zobacz artykuł "Konserwacja maszyn wirtualnych na platformie Azure" dla systemu Linux lub 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. Uruchom ponownie usługę corosync.
sudo service corosync restart
Tworzenie urządzenia ogrodzenia w klastrze Pacemaker
Napiwek
- Aby uniknąć wyścigów ogrodzenia w klastrze rozrusznika z dwoma węzłami, można skonfigurować dodatkową właściwość klastra "priority-fencing-delay". Ta właściwość wprowadza dodatkowe opóźnienie w ogrodzeniu węzła, który ma wyższy całkowity priorytet zasobów, gdy wystąpi scenariusz podziału mózgu. Aby uzyskać dodatkowe informacje, zobacz PODRĘCZNIK administrowania rozszerzeniem o wysokiej dostępności systemu SUSE Linux Enterprise Server.
- Instrukcje dotyczące ustawiania właściwości klastra "priority-fencing-delay" można znaleźć w odpowiednim dokumencie SAP ASCS/ERS (dotyczy tylko enSA2) i SAP HANA skalowania w górę wysokiej dostępności.
[1] Jeśli używasz urządzenia SBD (serwera docelowego iSCSI lub dysku udostępnionego platformy Azure) jako urządzenia ogrodzenia, uruchom następujące polecenia. Włącz korzystanie z urządzenia ogrodzeniowego i ustaw opóźnienie ogrodzenia.
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="600" timeout="15"
[1] Jeśli używasz agenta ogrodzenia platformy Azure do ogrodzenia, uruchom następujące polecenia. Po przypisaniu ról do obu węzłów klastra można skonfigurować urządzenia ogrodzenia w klastrze.
sudo crm configure property stonith-enabled=true sudo crm configure property concurrent-fencing=true
Uwaga
Opcja "pcmk_host_map" jest wymagana w poleceniu tylko wtedy, gdy nazwy hostów i nazwy maszyn wirtualnych platformy Azure nie są identyczne. Określ mapowanie w formacie nazwa hosta:vm-name.
# 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" \
op monitor interval=3600 timeout=120
sudo crm configure property stonith-timeout=900
Jeśli używasz urządzenia ogrodzenia w oparciu o konfigurację jednostki usługi, przeczytaj artykuł Change from SPN to MSI for Pacemaker clusters using Azure fencing (Zmiana nazwy SPN na msi dla klastrów Pacemaker przy użyciu ogrodzenia platformy Azure) i dowiedz się, jak konwertować na konfigurację tożsamości zarządzanej.
Ważne
Operacje monitorowania i ogrodzenia są deserializowane. W związku z tym, jeśli istnieje długotrwała operacja monitorowania i jednoczesne zdarzenie ogrodzenia, nie ma opóźnienia w trybie failover klastra, ponieważ operacja monitorowania jest już uruchomiona.
Napiwek
Agent ogrodzenia platformy Azure wymaga łączności wychodzącej z publicznymi punktami końcowymi, zgodnie z dokumentacją, wraz z możliwymi rozwiązaniami, w temacie Publiczna łączność punktów końcowych dla maszyn wirtualnych przy użyciu standardowego modułu równoważenia obciążenia.
Konfigurowanie programu Pacemaker dla zaplanowanych zdarzeń platformy Azure
Platforma Azure oferuje zaplanowane zdarzenia. Zaplanowane zdarzenia są udostępniane za pośrednictwem usługi metadanych i umożliwiają aplikacji przygotowanie się do takich zdarzeń. Agent zasobów azure-events-az monitors dla zaplanowanych zdarzeń platformy Azure. Jeśli wykryto zdarzenia, a agent zasobów ustali, że dostępny jest inny węzeł klastra, ustawia atrybut kondycji klastra. Gdy atrybut kondycji klastra jest ustawiony dla węzła, ograniczenie lokalizacji wyzwala i wszystkie zasoby, których nazwa nie zaczyna się od "health-" są migrowane z dala od węzła z zaplanowanym zdarzeniem. Gdy węzeł klastra, którego dotyczy problem, jest wolny od uruchamiania zasobów klastra, zdarzenie zaplanowane jest potwierdzane i może wykonać jego akcję, taką jak ponowne uruchomienie.
Ważne
Wcześniej w tym dokumencie opisano użycie agenta zasobów azure-events. Nowy agent zasobów azure-events-az w pełni obsługuje środowiska platformy Azure wdrożone w różnych strefach dostępności. Zaleca się korzystanie z nowszego agenta azure-events-az dla wszystkich systemów SAP o wysokiej dostępności za pomocą programu Pacemaker.
[A] Upewnij się, że pakiet agenta azure-events jest już zainstalowany i aktualny.
sudo zypper info resource-agents
Minimalne wymagania dotyczące wersji:
- 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 i nowsze:
resource-agents-4.10.0+git40.0f4de473-150400.3.19.1
- SLES 12 SP5:
[1] Konfigurowanie zasobów w narzędziu Pacemaker.
#Place the cluster in maintenance mode sudo crm configure property maintenance-mode=true
[1] Ustawianie strategii i ograniczenia węzła kondycji klastra pacemaker
sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'
Ważne
Nie należy definiować żadnych innych zasobów w klastrze, zaczynając od wartości "health-", oprócz zasobów opisanych w następnych krokach dokumentacji.
[1] Ustaw początkową wartość atrybutów klastra. Uruchom polecenie dla każdego węzła klastra. W przypadku środowisk skalowanych w poziomie, w tym maszyn wirtualnych twórców większości.
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] Konfigurowanie zasobów w narzędziu Pacemaker. Ważne: zasoby muszą zaczynać się od "health-azure".
sudo crm configure primitive health-azure-events ocf:heartbeat:azure-events-az \ meta allow-unhealthy-nodes=true failure-timeout=120s \ op start start-delay=60s \ op monitor interval=10s sudo crm configure clone health-azure-events-cln health-azure-events
Uwaga
Podczas konfigurowania zasobu "health-azure-events" można zignorować następujący komunikat ostrzegawczy.
OSTRZEŻENIE: health-azure-events: nieznany atrybut "allow--unhealthy-nodes".
Wyjmij klaster Pacemaker z trybu konserwacji
sudo crm configure property maintenance-mode=false
Wyczyść wszelkie błędy podczas włączania i sprawdź, czy zasoby health-azure-events zostały pomyślnie uruchomione we wszystkich węzłach klastra.
sudo crm resource cleanup
Wykonywanie zapytania po raz pierwszy dla zaplanowanych zdarzeń może potrwać do 2 minut. Testy pacemaker z zaplanowanymi zdarzeniami mogą używać akcji ponownego uruchamiania lub ponownego wdrażania dla maszyn wirtualnych klastra. Aby uzyskać więcej informacji, zobacz dokumentację zaplanowanych zdarzeń .
Uwaga
Po skonfigurowaniu zasobów programu Pacemaker dla agenta azure-events, jeśli umieścisz klaster w trybie konserwacji lub poza trybem konserwacji, mogą zostać wyświetlone komunikaty ostrzegawcze, takie jak:
OSTRZEŻENIE: cib-bootstrap-options: nieznany atrybut "hostName_hostname"
OSTRZEŻENIE: cib-bootstrap-options: nieznany atrybut "azure-events_globalPullState"
OSTRZEŻENIE: cib-bootstrap-options: nieznany atrybut "hostName_ nazwa hosta"
Te komunikaty ostrzegawcze można zignorować.
Następne kroki
- Planowanie i implementacja usługi Azure Virtual Machines dla oprogramowania SAP
- Wdrażanie usługi Azure Virtual Machines dla oprogramowania SAP
- Wdrażanie usługi Azure Virtual Machines DBMS dla oprogramowania SAP
- Wysoka dostępność systemu plików NFS na maszynach wirtualnych platformy Azure na serwerze SUSE Linux Enterprise Server
- Wysoka dostępność oprogramowania SAP NetWeaver na maszynach wirtualnych platformy Azure w systemie SUSE Linux Enterprise Server dla aplikacji SAP
- Aby dowiedzieć się, jak ustanowić wysoką dostępność i plan odzyskiwania po awarii oprogramowania SAP HANA na maszynach wirtualnych platformy Azure, zobacz Wysoka dostępność oprogramowania SAP HANA na maszynach wirtualnych platformy Azure