Wysoka dostępność systemu plików NFS na maszynach wirtualnych platformy Azure na serwerze SUSE Linux Enterprise Server
Uwaga
Zalecamy wdrożenie jednej z usług NFS platformy Azure: NFS w usłudze Azure Files lub woluminach ANF NFS do przechowywania udostępnionych danych w systemie SAP o wysokiej dostępności. Należy pamiętać, że wyróżniamy architektury referencyjne sap, korzystając z klastrów NFS.
W tym artykule opisano sposób wdrażania maszyn wirtualnych, konfigurowania maszyn wirtualnych, instalowania struktury klastra i instalowania serwera NFS o wysokiej dostępności, który może służyć do przechowywania udostępnionych danych systemu SAP o wysokiej dostępności. W tym przewodniku opisano sposób konfigurowania serwera NFS o wysokiej dostępności, który jest używany przez dwa systemy SAP, NW1 i NW2. Nazwy zasobów (na przykład maszyn wirtualnych, sieci wirtualnych) w przykładzie zakładają, że użyto szablonu serwera plików SAP z prefiksem zasobów.
Uwaga
Ten artykuł zawiera odwołania do terminów, których firma Microsoft już nie używa. Po usunięciu warunków z oprogramowania usuniemy je z tego artykułu.
Najpierw przeczytaj następujące notatki i dokumenty SAP
1928533 sap Note, które mają następujące elementy:
- Lista rozmiarów maszyn wirtualnych platformy Azure obsługiwanych na potrzeby wdrażania oprogramowania SAP
- Ważne informacje o pojemności dla rozmiarów maszyn wirtualnych platformy Azure
- Obsługiwane kombinacje oprogramowania SAP i systemu operacyjnego (OS) i bazy danych
- Wymagana wersja jądra SAP dla systemów Windows i Linux na platformie Microsoft Azure
Program SAP Note 2015553 zawiera listę wymagań wstępnych dotyczących wdrożeń oprogramowania SAP obsługiwanych przez oprogramowanie SAP na platformie Azure.
Program SAP Note 2205917 ma zalecane ustawienia systemu operacyjnego dla systemu SUSE Linux Enterprise Server dla aplikacji SAP
Oprogramowanie SAP Note 1944799 zawiera wytyczne dotyczące oprogramowania SAP HANA dla systemu SUSE Linux Enterprise Server dla aplikacji SAP
Program SAP Note 2178632 zawiera szczegółowe informacje o wszystkich metrykach monitorowania zgłoszonych dla oprogramowania SAP na platformie Azure.
Program SAP Note 2191498 ma wymaganą wersję agenta hosta SAP dla systemu Linux na platformie Azure.
Program SAP Note 2243692 zawiera informacje o licencjonowaniu oprogramowania SAP w systemie Linux na platformie Azure.
Program SAP Note 1984787 zawiera ogólne informacje o systemie SUSE Linux Enterprise Server 12.
Program SAP Note 1999351 zawiera dodatkowe informacje dotyczące rozwiązywania problemów dla rozszerzenia rozszerzonego monitorowania platformy Azure dla oprogramowania SAP.
Witryna WIKI sap Community zawiera wszystkie wymagane uwagi SAP dla systemu Linux.
Planowanie i implementacja usługi Azure Virtual Machines dla oprogramowania SAP w systemie Linux
Wdrażanie usługi Azure Virtual Machines dla oprogramowania SAP w systemie Linux (ten artykuł)
Wdrażanie systemu SAP w systemie Linux w usłudze Azure Virtual Machines DBMS
SusE Linux Enterprise Server for SAP Applications 12 SP5 — informacje o wersji
Omówienie
Aby zapewnić wysoką dostępność, oprogramowanie SAP NetWeaver wymaga serwera NFS. Serwer NFS jest skonfigurowany w osobnym klastrze i może być używany przez wiele systemów SAP.
Serwer NFS używa dedykowanej wirtualnej nazwy hosta i wirtualnych adresów IP dla każdego systemu SAP, który używa tego serwera NFS. Na platformie Azure moduł równoważenia obciążenia jest wymagany do korzystania z wirtualnego adresu IP. Przedstawiona konfiguracja przedstawia moduł równoważenia obciążenia z:
- Adres IP frontonu 10.0.0.4 dla NW1
- Adres IP frontonu 10.0.0.5 dla NW2
- Port sondy 61000 dla NW1
- Port sondy 61001 dla NW2
Konfigurowanie serwera NFS o wysokiej dostępności
Ręczne wdrażanie systemu Linux za pośrednictwem witryny Azure Portal
W tym dokumencie przyjęto założenie, że grupa zasobów, usługa Azure Virtual Network i podsieć zostały już wdrożone.
Wdróż dwie maszyny wirtualne dla serwerów NFS. Wybierz odpowiedni obraz SLES obsługiwany przez system SAP. Maszynę wirtualną można wdrożyć w dowolnej z opcji dostępności — zestawu skalowania, strefy dostępności lub zestawu dostępności.
Konfigurowanie modułu równoważenia obciążenia platformy Azure
Postępuj zgodnie z przewodnikiem tworzenia modułu równoważenia obciążenia, aby skonfigurować moduł równoważenia obciążenia w warstwie Standardowa na potrzeby wysokiej dostępności serwera NFS. Podczas konfigurowania modułu równoważenia obciążenia rozważ następujące kwestie.
- Konfiguracja adresu IP frontonu: utwórz dwa adresy IP frontonu. Wybierz tę samą sieć wirtualną i podsieć co serwer NFS.
- Pula zaplecza: utwórz pulę zaplecza i dodaj maszyny wirtualne serwera NFS.
- Reguły ruchu przychodzącego: utwórz dwie reguły równoważenia obciążenia, jedną dla NW1 i drugą dla NW2. Wykonaj te same kroki dla obu reguł równoważenia obciążenia.
- Adres IP frontonu: wybierz adres IP frontonu
- Pula zaplecza: wybierz pulę zaplecza
- Sprawdź "Porty wysokiej dostępności"
- Protokół: TCP
- Sonda kondycji: utwórz sondę kondycji z poniższymi szczegółami (dotyczy zarówno NW1, jak i NW2)
- Protokół: TCP
- Port: [na przykład: 61000 dla NW1, 61001 dla NW2]
- Interwał: 5
- Próg sondy: 2
- Limit czasu bezczynności (minuty): 30
- Sprawdź pozycję "Włącz pływający adres IP"
Uwaga
Właściwość konfiguracji sondy kondycji NumberOfProbes, inaczej znana jako "Próg złej kondycji" w portalu, nie jest uwzględniana. Aby więc kontrolować liczbę pomyślnych lub zakończonych niepowodzeniem kolejnych sond, ustaw właściwość "probeThreshold" na 2. Obecnie nie można ustawić tej właściwości przy użyciu witryny Azure Portal, dlatego użyj polecenia interfejsu wiersza polecenia platformy Azure lub programu PowerShell .
Uwaga
Jeśli maszyny wirtualne bez publicznych adresów IP są umieszczane w puli zaplecza wewnętrznego (bez publicznego adresu IP) standardowego modułu równoważenia obciążenia platformy Azure, nie będzie żadnych wychodzących połączeń internetowych, chyba że zostanie wykonana dodatkowa konfiguracja umożliwiająca routing do publicznych punktów końcowych. Aby uzyskać szczegółowe informacje na temat sposobu uzyskiwania łączności wychodzącej, zobacz Publiczna łączność punktu końcowego dla maszyn wirtualnych przy użyciu usługi Azure usługa Load Balancer w warstwie Standardowa w scenariuszach wysokiej dostępności oprogramowania SAP.
Ważne
- Nie włączaj sygnatur czasowych TCP na maszynach wirtualnych platformy Azure umieszczonych za usługą Azure Load Balancer. Włączenie sygnatur czasowych protokołu TCP spowoduje niepowodzenie sond kondycji.
net.ipv4.tcp_timestamps
Ustaw parametr na0
. Aby uzyskać szczegółowe informacje, zobacz Load Balancer health probes (Sondy kondycji modułu równoważenia obciążenia). - Aby zapobiec zmianie ręcznie ustawionej
net.ipv4.tcp_timestamps
wartości z0
powrotem na1
, należy zaktualizować program saptune do wersji 3.1.1 lub nowszej. Aby uzyskać więcej informacji, zobacz saptune 3.1.1 — Czy muszę zaktualizować?.
Tworzenie klastra Pacemaker
Wykonaj kroki opisane w temacie Konfigurowanie programu Pacemaker na serwerze SUSE Linux Enterprise Server na platformie Azure , aby utworzyć podstawowy klaster Pacemaker dla tego serwera NFS.
Konfigurowanie serwera NFS
Następujące elementy mają prefiks [A] — dotyczy wszystkich węzłów [1] — dotyczy tylko węzła 1 lub [2] — dotyczy tylko węzła 2.
[A] Konfigurowanie rozpoznawania nazw hosta
Można użyć serwera DNS lub zmodyfikować /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
sudo vi /etc/hosts
Wstaw następujące wiersze do /etc/hosts. Zmień adres IP i nazwę hosta tak, aby był zgodny ze środowiskiem
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] Włączanie serwera NFS
Tworzenie głównego wpisu eksportu NFS
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] Instalowanie składników drbd
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] Tworzenie partycji dla urządzeń drbd
Wyświetlanie listy wszystkich dostępnych dysków danych
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
Tworzenie partycji dla każdego dysku danych
sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun0' sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun1'
[A] Tworzenie konfiguracji LVM
Wyświetlanie listy wszystkich dostępnych partycji
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
Tworzenie woluminów LVM dla każdej partycji
sudo pvcreate /dev/disk/azure/scsi1/lun0-part1 sudo vgcreate vg-NW1-NFS /dev/disk/azure/scsi1/lun0-part1 sudo lvcreate -l 100%FREE -n NW1 vg-NW1-NFS sudo pvcreate /dev/disk/azure/scsi1/lun1-part1 sudo vgcreate vg-NW2-NFS /dev/disk/azure/scsi1/lun1-part1 sudo lvcreate -l 100%FREE -n NW2 vg-NW2-NFS
[A] Konfigurowanie narzędzia drbd
sudo vi /etc/drbd.conf
Upewnij się, że plik drbd.conf zawiera następujące dwa wiersze
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
Zmienianie globalnej konfiguracji drbd
sudo vi /etc/drbd.d/global_common.conf
Dodaj następujące wpisy do procedury obsługi i sekcji net.
global { usage-count no; } common { handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh"; split-brain "/usr/lib/drbd/notify-split-brain.sh root"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; } startup { wfc-timeout 0; } options { } disk { md-flushes yes; disk-flushes yes; c-plan-ahead 1; c-min-rate 100M; c-fill-target 20M; c-max-rate 4G; } net { after-sb-0pri discard-younger-primary; after-sb-1pri discard-secondary; after-sb-2pri call-pri-lost-after-sb; protocol C; tcp-cork yes; max-buffers 20000; max-epoch-size 20000; sndbuf-size 0; rcvbuf-size 0; } }
[A] Tworzenie urządzeń drbd systemu plików NFS
sudo vi /etc/drbd.d/NW1-nfs.res
Wstaw konfigurację nowego urządzenia drbd i zamknij
resource NW1-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } }
sudo vi /etc/drbd.d/NW2-nfs.res
Wstaw konfigurację nowego urządzenia drbd i zamknij
resource NW2-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } }
Tworzenie urządzenia drbd i uruchamianie go
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] Pomiń synchronizację początkową
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] Ustawianie węzła podstawowego
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] Poczekaj na zsynchronizowanie nowych urządzeń drbd
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] Tworzenie systemów plików na urządzeniach drbd
sudo mkfs.xfs /dev/drbd0 sudo mkdir /srv/nfs/NW1 sudo chattr +i /srv/nfs/NW1 sudo mount -t xfs /dev/drbd0 /srv/nfs/NW1 sudo mkdir /srv/nfs/NW1/sidsys sudo mkdir /srv/nfs/NW1/sapmntsid sudo mkdir /srv/nfs/NW1/trans sudo mkdir /srv/nfs/NW1/ASCS sudo mkdir /srv/nfs/NW1/ASCSERS sudo mkdir /srv/nfs/NW1/SCS sudo mkdir /srv/nfs/NW1/SCSERS sudo umount /srv/nfs/NW1 sudo mkfs.xfs /dev/drbd1 sudo mkdir /srv/nfs/NW2 sudo chattr +i /srv/nfs/NW2 sudo mount -t xfs /dev/drbd1 /srv/nfs/NW2 sudo mkdir /srv/nfs/NW2/sidsys sudo mkdir /srv/nfs/NW2/sapmntsid sudo mkdir /srv/nfs/NW2/trans sudo mkdir /srv/nfs/NW2/ASCS sudo mkdir /srv/nfs/NW2/ASCSERS sudo mkdir /srv/nfs/NW2/SCS sudo mkdir /srv/nfs/NW2/SCSERS sudo umount /srv/nfs/NW2
[A] Konfigurowanie wykrywania podziału mózgu przez drbd
W przypadku korzystania z drbd do synchronizowania danych z jednego hosta do innego może wystąpić tzw podział mózgu. Podzielony mózg jest scenariuszem, w którym oba węzły klastra promowały urządzenie drbd jako podstawowe i wyszło z synchronizacji. Może to być rzadka sytuacja, ale nadal chcesz poradzić sobie i rozwiązać podzielony mózg tak szybko, jak to możliwe. Dlatego ważne jest, aby otrzymywać powiadomienia o wystąpieniu podzielonego mózgu.
Przeczytaj oficjalną dokumentację drbd dotyczącą konfigurowania podzielonego powiadomienia mózgu.
Możliwe jest również automatyczne odzyskanie sprawności po scenariuszu podzielonego mózgu. Aby uzyskać więcej informacji, zapoznaj się z tematem Automatyczne zasady odzyskiwania mózgu podzielonego mózgu
Konfigurowanie struktury klastra
[1] Dodawanie urządzeń drbd NFS dla systemu SAP NW1 do konfiguracji klastra
Ważne
Ostatnie testy wykazały sytuacje, w których netcat przestaje odpowiadać na żądania z powodu listy prac i ograniczenia obsługi tylko jednego połączenia. Zasób netcat przestaje nasłuchiwać żądań modułu równoważenia obciążenia platformy Azure, a pływający adres IP staje się niedostępny.
W przypadku istniejących klastrów Pacemaker zalecamy w przeszłości zastąpienie serwera netcat socat. Obecnie zalecamy użycie agenta zasobów azure-lb, który jest częścią agentów zasobów pakietu z następującymi wymaganiami dotyczącymi wersji pakietu:- W przypadku systemu SLES 12 SP4/SP5 wersja musi być co najmniej resource-agents-4.3.018.a7fb5035-3.30.1.
- W przypadku systemu SLES 15/15 SP1 wersja musi być co najmniej resource-agents-4.3.0184.6ee15eb2-4.13.1.
Należy pamiętać, że zmiana będzie wymagać krótkiego przestoju.
W przypadku istniejących klastrów Pacemaker, jeśli konfiguracja została już zmieniona tak, aby korzystała z serwera socat zgodnie z opisem w temacie Azure Load-Balancer Detection Hardening (Wzmacnianie zabezpieczeń wykrywania modułu równoważenia obciążenia platformy Azure), nie ma potrzeby natychmiastowego przełączania się do agenta zasobów azure-lb.sudo crm configure rsc_defaults resource-stickiness="200" # Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW1_nfs \ ocf:linbit:drbd \ params drbd_resource="NW1-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW1_nfs drbd_NW1_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW1_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd0 \ directory=/srv/nfs/NW1 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive nfsserver systemd:nfs-server \ op monitor interval="30s" sudo crm configure clone cl-nfsserver nfsserver sudo crm configure primitive exportfs_NW1 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW1" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=1 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW1_nfs IPaddr2 \ params ip=10.0.0.4 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW1_nfs azure-lb port=61000 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW1_nfs \ fs_NW1_sapmnt exportfs_NW1 nc_NW1_nfs vip_NW1_nfs sudo crm configure order o-NW1_drbd_before_nfs inf: \ ms-drbd_NW1_nfs:promote g-NW1_nfs:start sudo crm configure colocation col-NW1_nfs_on_drbd inf: \ g-NW1_nfs ms-drbd_NW1_nfs:Master
[1] Dodawanie urządzeń drbd NFS dla systemu SAP NW2 do konfiguracji klastra
# Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW2_nfs \ ocf:linbit:drbd \ params drbd_resource="NW2-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW2_nfs drbd_NW2_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW2_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd1 \ directory=/srv/nfs/NW2 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive exportfs_NW2 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW2" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=2 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW2_nfs IPaddr2 \ params ip=10.0.0.5 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW2_nfs azure-lb port=61001 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW2_nfs \ fs_NW2_sapmnt exportfs_NW2 nc_NW2_nfs vip_NW2_nfs sudo crm configure order o-NW2_drbd_before_nfs inf: \ ms-drbd_NW2_nfs:promote g-NW2_nfs:start sudo crm configure colocation col-NW2_nfs_on_drbd inf: \ g-NW2_nfs ms-drbd_NW2_nfs:Master
Opcja
crossmnt
w zasobach klastraexportfs
znajduje się w naszej dokumentacji dotyczącej zgodności z poprzednimi wersjami systemu SLES.[1] Wyłączanie trybu konserwacji
sudo crm configure property maintenance-mode=false
Następne kroki
- Instalowanie usługi SAP ASCS i bazy danych
- 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
- 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