Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł wyjaśnia, jak skonfigurować podstawowy dwuwęzłowy klaster Pacemaker w systemie SUSE Linux Enterprise Server (SLES) na platformie Azure. Instrukcje te obejmują SLES for SAP 12 SP5, SLES for SAP 15 SP 4+, oraz SLES for SAP 16.
Wymagania wstępne
Dokumentacja SLES High Availability (HA)
Dokumentacja SLES dla SAP Offerings
Omówienie
Ten przewodnik zakłada, że już wdrożyłeś wymaganą grupę zasobów, sieć wirtualną Azure, podsieć oraz maszyny wirtualne (VM).
Klastry działające w systemie Linux wymagają agenta fencing do izolowania niesprawnych węzłów. Aby wykonać to zadanie na Azure, użyj jednej z następujących metod:
- SBD (Storage Based Death) z dyskiem współdzielonym platformy Azure
- Storage Based Death (SBD) z celami iSCSI
- Azure Fencing Agent
Uwaga
W tym dokumencie użyto następujących przedrostków:
- [A]: Dotyczy wszystkich węzłów.
- [1]: Dotyczy tylko węzła 1.
- [2]: Dotyczy tylko węzła 2.
Używanie SBD z Azure Shared Disk
Korzystając z Azure Shared Disks, możesz zamontować ten sam dysk na wszystkich maszynach wirtualnych należących do klastra. Możesz hostować swoje urządzenie SBD na tym współdzielonym dysku bez dodatkowych wymagań infrastrukturalnych.
Benefits
- Zapewnia natywną opcję współdzielonego urządzenia blokowego Azure dla SBD bez konieczności korzystania z dodatkowych zasobów.
- Maszyny wirtualne bezpośrednio podłączają zarządzany dysk, zmniejszając zależność od dodatkowych aspektów sieciowych.
Istotne zagadnienia
- Możesz używać współużytkowanego dysku platformy Azure o jednostce SKU
Premium SSDjako urządzenia SBD. - Przeglądaj listę obsługiwanych systemów operacyjnych.
- Urządzenia SBD korzystające z Azure premium shared disk obsługują lokalnie redundantną pamięć masową (LRS) oraz magazynowanie strefowe redundantne (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, które używa usługi LRS dla współdzielonego dysku Azure Premium (skuName - Premium_LRS), obsługuje tylko wdrożenia w ramach zestawu dostępności.
- W przypadku wdrożeń w strefach dostępności zalecane jest urządzenie SBD, które wykorzystuje ZRS we współdzielonym dysku Azure Premium (skuName - Premium_ZRS).
- 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. Na przykład możesz użyć rozmiarów dysków P1 lub P2 dla swojego urządzenia SBD na klastrze dwuwęzłowym, takim jak SAP ASCS/ERS lub skalowanie SAP HANA.
- W przypadku klastrów składających się z więcej niż dwóch węzłów zapoznaj się z udokumentowaną wartością parametru maxShares dla wybranego dysku.
- Nie podłączaj urządzenia SBD z Azure na różnych 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 SBD z obiektami docelowymi iSCSI
To rozwiązanie wymaga hostowania celów Internet Small Computer System Interface (iSCSI) na co najmniej jednej dodatkowej maszynie wirtualnej (VM).
Benefits
- Te serwery iSCSI mogą również hostować cele iSCSI dla innych klastrów Pacemakerów w tym samym regionie.
- Jeśli już korzystasz z nich lokalnie, nie wymagają żadnych zmian w sposobie obsługi klastra Pacemaker.
Istotne zagadnienia
- Aby zapewnić najwyższy poziom odporności klastra, musisz użyć trzech serwerów iSCSI.
- Korzystanie tylko z jednego serwera wprowadza pojedynczy punkt awarii, co uniemożliwia zastosowanie mechanizmu fencing w klastrze, jeśli ten serwer stanie się niedostępny.
- Pacemaker nie pozwala na fencing, jeśli masz tylko dwa węzły, a jeden z nich jest niedostępny.
- Docelowe serwery iSCSI muszą znajdować się w tym samym regionie co Twoje klastry.
- Trasowanie sieci między klastrami a serwerami iSCSI nie może przechodzić przez żadne urządzenia sieciowe nieredundantne (takie jak Wirtualne Urządzenie Sieciowe).
- Zdarzenia konserwacyjne i inne problemy z urządzeniami sieciowymi mogą negatywnie wpływać na stabilność i niezawodność całej konfiguracji klastra.
Korzystanie z agenta ogrodzenia Azure
Korzystając z agenta Azure Fence, klaster może ogrodzić węzły, wywołując bezpośrednio API Azure, aby ponownie uruchomić uszkodzone węzły.
Benefits
- Nie potrzeba dodatkowych zasobów.
- Tożsamości zarządzane eliminują konieczność zarządzania poświadczeniami.
Istotne zagadnienia
- Do uwierzytelniania używaj Managed Identities. Jeśli obecnie korzystasz z service principal, zaktualizuj agenta Azure Fence z SPN na MSI.
- Agent Azure fence wymaga łączności wychodzącej do publicznych punktów końcowych Azure. Aby uzyskać więcej informacji wraz z możliwymi rozwiązaniami, zobacz Łączność z publicznym punktem końcowym dla maszyn wirtualnych korzystających ze standardowego modułu równoważenia obciążenia.
- Operacje monitorowania i ogrodzenia są deserializowane. W związku z tym, jeśli istnieje już uruchomiona operacja monitorowania i jednoczesne zdarzenie zabezpieczenia, nie ma opóźnienia w przełączaniu awaryjnym klastra, ponieważ operacja monitorowania jest już uruchomiona.
Wdróż dysk współdzielony platformy Azure dla mechanizmu SBD
Aby utworzyć i dołączyć współdzielony dysk Azure za pomocą PowerShell, wykonaj następujące polecenia. Jeśli chcesz wdrażać zasoby za pomocą Azure CLI lub portalu Azure, zobacz Deploy a ZRS disk.
$ResourceGroup = "<ResourceGroupName>"
$DiskSizeInGB = 4
$DiskName = "<SBDDiskName>"
# Must be Equal to or greater than the Number of Nodes in the Cluster
$ShareNodes = 2
# Options are "Premium_LRS" or "Premium_ZRS"
$SKUName = "<DiskSKU>"
# VMs to attach the disk to
$vmNames = @("sap-cl1", "sap-cl2")
# Lun to attach the disk to. You should use the same lun on all servers in the cluster.
$lunNumber = <lunNumber>
$diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
# Attach SBD disk to cluster VMs
foreach ($vmName in $vmNames)
{
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun $lunNumber
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}
Użyj obiektów docelowych iSCSI
Skonfiguruj serwery hosta docelowego iSCSI
Wdroż trzy maszyny wirtualne działające na obsługiwanej wersji systemu operacyjnego SLES. Maszyny wirtualne nie muszą być duże. Rozmiary maszyn wirtualnych, takie jak Standard_E2s czy Standard_D2s, są wystarczające.
Uwaga
Nie musisz używać obrazu systemu operacyjnego SLES for SAP Applications dla serwera docelowego iSCSI. Możesz użyć standardowego obrazu systemu operacyjnego SLES. Jednak cykl życia wsparcia różni się między różnymi wersjami produktów systemu operacyjnego.
Zainstaluj najnowsze aktualizacje i zrestartuj komputer, jeśli trzeba.
sudo zypper -n updateZainstaluj pakiet docelowy iSCSI.
sudo zypper -n install targetcli-fbWłącz i uruchom usługę iSCSI.
sudo systemctl start targetcli sudo systemctl enable targetcli
Tworzenie celów iSCSI
Dla każdego klastra musisz przydzielić dysk iSCSI na każdym serwerze iSCSI, a następnie przyzwolić każdemu węzłowi klastra dostęp do tego dysku. W tym przykładzie tworzysz dyski dla dwóch różnych klastrów:
- ascsnw1: Klaster ASCS/ERS dla NW1
- hdbnw1: Klaster baz danych HANA dla NW1
- sap-cl1 i sap-cl2: Nazwy hostów dla węzłów klastrowych NW1 ASCS/ERS
- sap-db1 i sap-db2: Nazwy hostów dla węzłów klastrowych NW1 HANA
- Utwórz folder główny dla wszystkich urządzeń SBD.
sudo mkdir /sbd - Utwórz urządzenie SBD dla pierwszego klastra (ascsnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 # Grant Cluster Node 1 (sap-cl1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl1.local:sap-cl1 # Grant Cluster Node 2 (sap-cl2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl2.local:sap-cl2 - Utwórz urządzenie SBD dla drugiego klastra (hdbnw1).
# Create Storage Object sudo targetcli backstores/fileio create sbdhdbnw1 /sbd/sbdhdbnw1 50M write_back=false # Create iSCSI Target sudo targetcli iscsi/ create iqn.2006-04.hdbnw1.local:hdbnw1 # Creates the LUN and attaches it to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/luns/ create /backstores/fileio/sbdhdbnw1 # Grant Cluster Node 1 (sap-db1) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db1.local:sap-db1 # Grant Cluster Node 2 (sap-db2) access to the iSCSI Target sudo targetcli iscsi/iqn.2006-04.hdbnw1.local:hdbnw1/tpg1/acls/ create iqn.2006-04.sap-db2.local:sap-db2 - Zapisz konfigurację.
sudo targetcli saveconfig - Sprawdź konfigurację.
sudo targetcli ls o- / ............................................................................................... [...] o- backstores .................................................................................... [...] | o- block ........................................................................ [Storage Objects: 0] | o- fileio ....................................................................... [Storage Objects: 2] | | o- sbdascsnw1 ..................................... [/sbd/sbdascsnw1 (50.0MiB) write-thru activated] | | | o- alua ......................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | | o- sbdhdbnw1 ....................................... [/sbd/sbdhdbnw1 (50.0MiB) write-thru activated] | | o- alua ......................................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ............................................. [ALUA state: Active/optimized] | o- pscsi ........................................................................ [Storage Objects: 0] | o- ramdisk ...................................................................... [Storage Objects: 0] o- iscsi .................................................................................. [Targets: 2] | o- iqn.2006-04.hdbnw1.local:hdbnw1 ......................................................... [TPGs: 1] | | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | | o- acls ................................................................................ [ACLs: 2] | | | o- iqn.2006-04.sap-db1.local:sap-db1 .......................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | | o- iqn.2006-04.sap-db2.local:sap-db2 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ..................................................... [lun0 fileio/sbdhdb (rw)] | | o- luns ................................................................................ [LUNs: 1] | | | o- lun0 ................................. [fileio/sbdhdbnw1 (/sbd/sbdhdbnw1) (default_tg_pt_gp)] | | o- portals .......................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ........................................................................... [OK] | o- iqn.2006-04.ascsnw1.local:ascsnw1 ....................................................... [TPGs: 1] | o- tpg1 ..................................................................... [no-gen-acls, no-auth] | o- acls ................................................................................ [ACLs: 2] | | o- iqn.2006-04.sap-cl1.local:sap-cl1 .......................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | | o- iqn.2006-04.sap-cl2.local:sap-cl2 .......................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................. [lun0 fileio/sbdascsnw1 (rw)] | o- luns ................................................................................ [LUNs: 1] | | o- lun0 ............................... [fileio/sbdascsnw1 (/sbd/sbdascsnw1) (default_tg_pt_gp)] | o- portals .......................................................................... [Portals: 1] | o- 0.0.0.0:3260 ........................................................................... [OK] o- loopback ............................................................................... [Targets: 0]
Skonfiguruj agenta Fence dla platformy Azure
Tworzenie tożsamości
Aby utworzyć zarządzaną tożsamość (MSI), należy utworzyć systemowo przypisaną zarządzaną tożsamość dla każdej maszyny wirtualnej w klastrze. Obecnie nie są obsługiwane tożsamości zarządzane przypisane przez użytkownika.
Stwórz niestandardową rolę.
Twoja tożsamość potrzebuje uprawnień w usłudze Azure RBAC, aby wykonywać operacje odgradzania względem Twoich maszyn wirtualnych. Aby spełnić wymagania Modelu Bezpieczeństwa Najmniej Uprzywilejowanego Dostępu (LPA), stwórz niestandardową rolę RBAC.
Użyj poniższej definicji swojej roli, zastępując identyfikator(y) subskrypcji tam, gdzie jest to potrzebne:
{ "Name": "Linux Fence Agent", "description": "Allowed to power-off and start virtual machines", "assignableScopes": [ "/subscriptions/<Subscription 1 ID (GUID)>", "/subscriptions/<Subscription N ID (GUID)>" ], "actions": [ "Microsoft.Compute/*/read", "Microsoft.Compute/virtualMachines/powerOff/action", "Microsoft.Compute/virtualMachines/start/action" ], "notActions": [], "dataActions": [], "notDataActions": [] }Przypisz własną rolę do swoich tożsamości.
Dla każdej maszyny wirtualnej w klastrze przypisz jej zarządzaną tożsamość do niestandardowej roli "Linux Fence Agent" dla każdej maszyny wirtualnej w klastrze, w tym dla niej samej. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie dostępu tożsamości zarządzanej do zasobu przy użyciu witryny Azure Portal.
Ważne
Pamiętaj, że przydzielenie i usunięcie autoryzacji z tożsamościami zarządzanymi może zostać opóźnione do momentu wejścia w życie.
Utwórz i skonfiguruj klaster
[A] Zaktualizuj system operacyjny i zrestartuj, jeśli zajdzie taka potrzeba.
sudo zypper -n update[A] Instalacja wymaganych pakietów klastrowych.
sudo zypper -n install socat pacemaker resource-agents[A] Instalacja wymaganych pakietów ogrodzeń.
sudo zypper -n install sbdsudo zypper -n install sbd open-iscsisudo zypper -n install fence-agents-azure-arm[A] Skonfiguruj DNS.
Można użyć serwera DNS lub zmodyfikować
/etc/hostsna wszystkich węzłach. Ten przykład pokazuje, jak używać pliku/etc/hosts.Zaktualizuj wpisy, aby pasowały do Twoich adresów IP i nazw hostów.
sudo vi /etc/hosts [...] # IP address of cluster node 1 10.27.0.6 sap-cl1 # IP address of cluster node 2 10.27.0.7 sap-cl2sudo vi /etc/hosts [...] # IP address of cluster node 1 10.0.0.6 sap-cl1 # IP address of cluster node 2 10.0.0.7 sap-cl2 # IP address of iSCSI Target Host Server 1 10.0.0.17 sbd-iscsi1 # IP address of iSCSI Target Host Server 1 10.0.0.18 sbd-iscsi2 # IP address of iSCSI Target Host Server 1 10.0.0.19 sbd-iscsi3[A] Wymień klucze SSH użytkownika root między węzłami.
sudo ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519 sudo cat /root/.ssh/id_ed25519.pub sudo vi /root/.ssh/authorized_keys [...] <Contents from cat command on other server>[A] Skonfiguruj system operacyjny.
- Dostosuj brudną pamięć podręczną dla klientów NFS na systemach o wysokiej pamięci. Zobacz ten artykuł, aby uzyskać więcej informacji.
sudoedit /etc/sysctl.d/30-nfs.conf && sudo sysctl --systemvm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800 - Upewnij się, że
vm.swappinessjest ustawione na 10, aby zmniejszyć zużycie swapu i faworyzować pamięć.sudoedit /etc/sysctl.d/31-memswap.conf && sudo sysctl --systemvm.swappiness = 10 -
Tylko SLES 12 SP 5: Pacemaker sporadycznie tworzy wiele procesów, co może spowodować wyczerpanie dozwolonego limitu. 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. Zwiększ maksymalną liczbę dozwolonych procesów, ustawiając następujący parametr:
# Edit the configuration file sudo vi /etc/systemd/system.conf [...] DefaultTasksMax=4096 [...] # Activate this setting sudo systemctl daemon-reload # Test to ensure that the change was successful sudo systemctl --no-pager show | grep DefaultTasksMax
- Dostosuj brudną pamięć podręczną dla klientów NFS na systemach o wysokiej pamięci. Zobacz ten artykuł, aby uzyskać więcej informacji.
[1] Stwórz klaster.
sudo crm cluster init --yes --name ascsnw1 --node sap-cl1 --node sap-cl2[1] Konfiguruj ustawienia klastra.
sudo crm corosync set totem.token 30000 sudo csync2 -xv sudo crm cluster run "corosync-cfgtool -R"Skonfiguruj opóźnienie uruchamiania rozrusznika serca.
Uruchomienie Pacemakera natychmiast po rozruchu systemu może spowodować, że węzeł ponownie dołączy do klastra, zanim zakończy się przełączenie awaryjne, uniemożliwiając to przełączenie lub opóźniając odzyskiwanie sprawności. Aby rozwiązać ten problem, użyj usługi timera, która opóźni uruchomienie rozrusznika po restarcie.
-
[A] Konfiguruj usługę timera.
sudo vi /etc/systemd/system/pacemaker.timer[Unit] Description=Delay start of pacemaker.service after boot [Timer] OnBootSec=216 Unit=pacemaker.service [Install] WantedBy=timers.target -
[A] Włącz usługę timera.
sudo systemctl daemon-reload sudo systemctl enable pacemaker.timer -
[1] Wyłącz usługi rozruszników serca.
sudo crm cluster disable --all
-
[A] Konfiguruj usługę timera.
Zweryfikowaj klaster.
-
[1] Zweryfikuj klaster Pacemaker.
sudo crm status Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 2.1.7+20231219.0f7f88312-150600.6.15.1-2.1.7+20231219.0f7f88312) - partition with quorum * Last updated: Tue Aug 4 17:50:24 2026 on sap-cl1 * Last change: Thu Jul 30 19:02:56 2026 by hacluster via hacluster on sap-cl1 * 2 nodes configured * 0 resource instances configured Node List: * Online: [ sap-cl1 sap-cl2 ] Full List of Resources: -
[A] Walidacja usług.
systemctl list-unit-files pacemaker.timer pacemaker.service corosync.serviceUNIT FILE STATE PRESET corosync.service disabled disabled pacemaker.service disabled disabled pacemaker.timer enabled disabled
-
[1] Zweryfikuj klaster Pacemaker.
Konfiguruj ogrodzenie
-
[A] Włącz usługę SBD.
sudo systemctl enable sbd -
[A] Włącz system nadzorujący oprogramowanie.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[A] Odkryj identyfikator urządzenia iSCSI.
- Określ punkt montażu na podstawie numeru LUN
ls -l /dev/disk/azure/scsi1/lun1 lrwxrwxrwx. 1 root root 12 Apr 16 20:22 /dev/disk/azure/scsi1/lun1 -> ../../../sdb - Pobierz identyfikator urządzenia iSCSI z mount.
ls -l /dev/disk/by-id/scsi-3* | grep -i sdb lrwxrwxrwx. 1 root root 9 Apr 16 20:22 /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -> ../../sdb
- Określ punkt montażu na podstawie numeru LUN
-
[1] Tworzenie urządzenia SBD.
sudo sbd -d /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -1 60 -4 120 create
-
[1] Dodaj urządzenie SBD do klastra.
sudo crm cluster init --yes sbd -s /dev/disk/by-id/scsi-360022480055c9f501a24256ea0f87617 -
[1] Zmień ustawienia konfiguracji SBD.
sudo crm configure property stonith-timeout=210 sudo crm configure property stonith-enabled=true # For the below command, 600 is the interval, and 120 is the timeout sudo crm configure monitor stonith-sbd 600:120 sudo crm configure set stonith-sbd.pcmk_delay_max 15 -
[A] Zweryfikowaj plik konfiguracyjny SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
-
[A] Włącz wymagane usługi.
sudo systemctl enable sbd iscsi iscsid -
[A] Włącz system nadzorujący oprogramowanie.
echo softdog | sudo tee /etc/modules-load.d/softdog.conf sudo modprobe softdog -
[1] Zaktualizuj
InitiatorNamedla węzła 1.sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1 -
[2] Zaktualizuj
InitiatorNamedla węzła 2.# Node 2 sudo vi /etc/iscsi/initiatorname.iscsi [...] InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2 -
[A] Zrestartuj usługi iSCSI.
sudo systemctl restart iscsi iscsid -
[A] Zamontuj cele iSCSI ze wszystkich serwerów hostów iSCSI.
for hostServer in sbd-iscsi1 sbd-iscsi2 sbd-iscsi3; do iscsiadm -m discovery --type=st --portal=${hostServer}:3260 iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=${hostServer}:3260 iscsiadm -m node --portal=${hostServer}:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic done -
[A] Odkryj identyfikatory urządzeń iSCSI.
- Określ punkty montażowe iSCSI.
lsscsi [0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdb [2:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdc [3:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sdd [4:0:0:0] disk LIO-ORG sbdascsnw1 4.0 /dev/sde - Zdobądź identyfikatory urządzeń iSCSI.
ls -l /dev/disk/by-id/scsi-3* | grep sd[c,d,e] lrwxrwxrwx 1 root root 9 Jul 21 18:02 /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -> ../../sdd lrwxrwxrwx 1 root root 9 Jul 21 17:50 /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -> ../../sdc lrwxrwxrwx 1 root root 9 Jul 21 18:04 /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -> ../../sde
- Określ punkty montażowe iSCSI.
-
[1] Stwórz urządzenia SBD.
sudo sbd -d /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -1 60 -4 120 create
-
[1] Dodaj urządzenia SBD do klastra.
sudo crm cluster init --yes sbd \ -s /dev/disk/by-id/scsi-3600140537cf4c6d604a4ae4b58f1a528 \ -s /dev/disk/by-id/scsi-360014056e4d07b80e1148ac973330dff \ -s /dev/disk/by-id/scsi-360014059f135275c24647d49268123e5 -
[1] Zmień ustawienia konfiguracji SBD.
sudo crm configure property stonith-timeout=210 sudo crm configure property stonith-enabled=true # For the below command, 600 is the interval, and 120 is the timeout sudo crm configure monitor stonith-sbd 600:120 sudo crm configure set stonith-sbd.pcmk_delay_max 15 -
[A] Zweryfikowaj plik konfiguracyjny SBD.
sudo vi /etc/sysconfig/sbd[...] SBD_DELAY_START=no [...] SBD_PACEMAKER=yes [...] SBD_STARTMODE=always [...]
[1] Configure Azure Fence Agent.
Uwaga
Podczas korzystania z chmury Azure Government należy określić opcję
cloud=podczas konfigurowania agenta Azure Fence Agent. Na przykładcloud=usgovdla chmury Azure dla instytucji rządowych USA.sudo crm configure primitive rsc_st_azure stonith:fence_azure_arm params msi=true \ resourceGroup="<ResourceGroupName>" subscriptionId="<SubscriptionID>" \ pcmk_host_map="sap-cl1:<AzureVMNameCL1>;sap-cl2:<AzureVMNameCL2>" \ power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 \ pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \ meta failure-timeout=120s op monitor interval=3600 timeout=120[1] Skonfiguruj klaster dla agenta ogrodzenia platformy Azure.
sudo crm configure property stonith-enabled=true sudo crm configure property stonith-timeout=900
Tworzenie klastra Pacemaker składającego się z więcej niż dwóch węzłów
Jeśli budujesz większy klaster, miej na uwadze następujące kwestie:
[1] Dostosuj konfigurację gromady.
Wartości
quorum.expected_votesiquorum.two_nodesą automatycznie aktualizowane, gdy dodasz trzeci węzeł lub kolejne. Upewnij się, żequorum.two_nodema wartość0, aquorum.expected_votesjest równe liczbie węzłów w klastrze.sudo crm corosync get quorum.two_node sudo crm corosync get quorum.expected_votesDostosuj konfigurację ogrodzenia.
sudo crm resource param stonith-sbd delete pcmk_delay_max sudo crm resource param stonith-sbd set pcmk_action_limit -1sudo crm resource param rsc_st_azure delete pcmk_delay_max sudo crm resource param rsc_st_azure pcmk_action_limit -1
Konfigurowanie programu Pacemaker dla zaplanowanych zdarzeń platformy Azure
Scheduled Events to usługa metadanych Azure, która daje Twojej aplikacji czas na przygotowanie się do konserwacji maszyny wirtualnej. Dostarcza informacji o nadchodzących wydarzeniach konserwacyjnych, takich jak restart, aby aplikacja mogła się na nie przygotować i ograniczyć zakłócenia.
Agent zasobów azure-events-az monitoruje tę usługę metadanych. Gdy agent wykryje zdarzenia i ustali, że dostępny jest inny węzeł klastra, ustawia atrybut kondycji na poziomie węzła #health-azure na -1000000. Ta wartość powoduje, że klaster uznaje węzeł za niezdrowy i migruje zasoby z dala od dotkniętego węzła. Ograniczenie lokalizacji zapewnia, że zasoby zaczynające się od health- są wykluczone, ponieważ agent azure-events-az nadal musi działać na obu węzłach. Gdy dotknięty węzeł klastra jest wolny od aktywnych zasobów klastra, agent powiadamia usługę metadanych i zaplanowane zdarzenie może być kontynuowane. Po zakończeniu wszystkich zdarzeń agent zasobów przywraca #health-azure atrybut do 0, oznaczając węzeł ponownie jako zdrowy.
Ważne
Wcześniej w tym dokumencie opisano użycie agenta zasobów azure-events. Nowy agent azure-events-az w pełni obsługuje środowiska Azure wdrożone w różnych strefach dostępności. Użyj nowszego agenta azure-events-az dla wszystkich wysoko dostępnych systemów SAP z Pacemakerem.
Tylko dla SLES 12 SP5 Sprawdź wersję pakietu
resource-agentsi zaktualizuj go w razie potrzeby. SLES 15 i wyższe domyślnie zawierają go w swoich wersjach zainstalowanych.zypper info resource-agentsMinimalna wersja to
resource-agents-4.3.018.a7fb5035-3.98.1.[1] Umieść klaster w trybie konserwacji.
sudo crm configure property maintenance-mode=true[1] Ustaw strategię i ograniczenie dla węzła kondycji klastra Pacemaker.
Ważne
Nie definiuj żadnych innych zasobów w klastrze zaczynając od
health-, poza zasobami opisanymi w kolejnych krokach.sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'[1] Ustaw początkową wartość atrybutów klastra.
Uruchom polecenie dla każdego węzła klastra. W środowiskach skalowanych horyzontalnie dołącz maszynę wirtualną majority maker.
# Node 1 sudo crm_attribute --node sap-cl1 --name '#health-azure' --update 0 # Node 2 sudo crm_attribute --node sap-cl2 --name '#health-azure' --update 0 # Node N sudo crm_attribute --node sap-clN --name '#health-azure' --update 0[1] Konfigurowanie zasobów w narzędziu Pacemaker. Zasoby muszą zaczynać się od
health-azure.sudo crm configure primitive health-azure-events ocf:heartbeat:azure-events-az \ meta failure-timeout=120s \ op start start-delay=60s \ op monitor interval=10s sudo crm configure clone health-azure-events-cln health-azure-events \ meta allow-unhealthy-nodes=trueUwaga
Po skonfigurowaniu
health-azure-eventszasobu możesz zignorować następujący komunikat ostrzegawczy.OSTRZEŻENIE: health-azure-events: nieznany atrybut „allow-unhealthy-nodes”.
Wyprowadź klaster Pacemaker z trybu konserwacji i wyczyść wszystkie błędy.
sudo crm configure property maintenance-mode=false sudo crm resource cleanupSprawdź, czy
health-azure-eventsuruchamia się pomyślnie na wszystkich węzłach.crm status Cluster Summary: * Stack: corosync (Pacemaker is running) * Current DC: sap-cl1 (version 3.0.0+20250218.64cd85422c-160000.4.1-3.0.0+20250218.64cd85422c) - partition with quorum * Last updated: Thu Jul 30 19:07:49 2026 on sap-cl1 * Last change: Thu Jul 30 19:06:01 2026 by root via root on sap-cl1 * 2 nodes configured * 3 resource instances configured Node List: * Online: [ z04ascs3 z04ascs4 ] Full List of Resources: * stonith-sbd (stonith:fence_sbd): Started sap-cl1 * Clone Set: health-azure-events-cln [health-azure-events]: * Started: [ sap-cl1 sap-cl2 ]Pierwsze wykonanie zapytania dla zaplanowanych zdarzeń może trwać do 2 minut. Testowanie pacemakera przy zaplanowanych zdarzeniach może obejmować akcje ponownego uruchamiania lub wdrażania dla maszyn wirtualnych klastra. Więcej informacji można znaleźć w zaplanowanych wydarzeniach.
Uwaga
Po skonfigurowaniu zasobów Pacemakera dla agenta azur-events, jeśli włączysz klaster w tryb konserwacji lub go wyłączysz, możesz otrzymać 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_ hostname'
Możesz zignorować te ostrzeżenia.
Następne kroki
- Planowanie i implementacja usługi Azure Virtual Machines dla oprogramowania SAP.
- Wdrażanie usługi Azure Virtual Machines dla oprogramowania SAP.
- Wdrożenie usługi Azure Virtual Machines DBMS dla systemu SAP.
- Wysoka dostępność dla NFS Simple Mount na maszynach wirtualnych Azure na SUSE Linux Enterprise Server.
- 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.