Udostępnij za pośrednictwem


Używanie konsoli szeregowej platformy Azure dla wywołań SysRq i NMI

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Żądanie systemowe (SysRq)

SysRq to sekwencja kluczy rozumiana przez jądro systemu operacyjnego Linux, które może wyzwalać zestaw wstępnie zdefiniowanych akcji. Te polecenia są często używane, gdy nie można wykonać rozwiązywania problemów z maszyną wirtualną lub odzyskiwania za pośrednictwem tradycyjnej administracji (na przykład jeśli maszyna wirtualna nie odpowiada). Użycie funkcji SysRq konsoli szeregowej platformy Azure naśladuje naciśnięcie SysRq i znaków wprowadzonych na klawiaturze fizycznej.

Po dostarczeniu sekwencji SysRq konfiguracja jądra będzie kontrolować sposób reagowania systemu. Aby uzyskać informacje na temat włączania i wyłączania narzędzia SysRq, zobacz znaczników markdown w podręczniku | administratora systemu SysRq.

Konsola szeregowa platformy Azure może służyć do wysyłania sysRq do maszyny wirtualnej platformy Azure przy użyciu ikony klawiatury na pasku poleceń pokazanym poniżej.

Zrzut ekranu przedstawiający konsolę szeregową platformy Azure. Ikona klawiatury jest wyróżniona, a jego menu jest widoczne. To menu zawiera element polecenia Send SysRq.

Wybranie pozycji "Wyślij polecenie SysRq" spowoduje otwarcie okna dialogowego, które zapewni typowe opcje SysRq lub zaakceptuje sekwencję poleceń SysRq wprowadzonych w oknie dialogowym. Dzięki temu seria systemów SysRq może wykonywać operację wysokiego poziomu, taką jak bezpieczny ponowny rozruch przy użyciu: REISUB.

Zrzut ekranu przedstawiający okno dialogowe Wysyłanie polecenia SysRq do gościa po wybraniu opcji wprowadzania klucza, a polecenie REISUB jest wprowadzane do poniższego pola.

Nie można użyć polecenia SysRq na maszynach wirtualnych, które są zatrzymane lub których jądro jest w stanie braku odpowiedzi. (na przykład panika jądra).

Włączanie usługi SysRq

Zgodnie z opisem w przewodniku administratora sysRq powyżej można skonfigurować sysRq tak, aby wszystkie, żadne lub tylko niektóre polecenia są dostępne. Możesz włączyć wszystkie polecenia SysRq, wykonując poniższy krok, ale nie przetrwa ponownego uruchomienia:

echo "1" >/proc/sys/kernel/sysrq

Aby konfiguracja sysReq stała, możesz wykonać następujące czynności, aby włączyć wszystkie polecenia SysRq

  1. Dodawanie tego wiersza do pliku /etc/sysctl.conf
    kernel.sysrq = 1
  2. Ponowne uruchamianie lub aktualizowanie pliku sysctl przez uruchomienie polecenia
    sysctl -p

Klucze poleceń

W powyższym przewodniku administratora sysRq:

Polecenie Function
b Natychmiast uruchomi ponownie system bez synchronizacji lub odinstalowania dysków.
c Wykona awarię systemu przez wyłudczenie wskaźnika NULL. W razie skonfigurowania zostanie podjęta awaria.
d Pokazuje wszystkie blokady, które są przechowywane.
e Wyślij SIGTERM do wszystkich procesów, z wyjątkiem inicjowania.
f Zadzwoni do zabójcy oom, aby zabić proces hog pamięci, ale nie panikować, jeśli nic nie może zostać zabite.
g Używane przez kgdb (debuger jądra)
h Wyświetli pomoc (każdy inny klucz niż wymienione tutaj również wyświetli pomoc, ale h jest łatwy do zapamiętania :-)
i Wyślij SIGKILL do wszystkich procesów, z wyjątkiem inicjowania.
j Przymusowo "Just thaw it" - systemy plików zamrożone przez ioctl FIFREEZE.
k Klucz bezpiecznego dostępu (SAK) zabija wszystkie programy w bieżącej konsoli wirtualnej. UWAGA: Zobacz ważne komentarze poniżej w sekcji SAK.
l Pokazuje stos backtrace dla wszystkich aktywnych procesorów CPU.
m Spowoduje zrzut bieżących informacji o pamięci do konsoli.
n Służy do sprawiania, że zadania RT są w stanie dobrze
o Wyłączy system (jeśli jest skonfigurowany i obsługiwany).
p Spowoduje zrzut bieżących rejestrów i flag do konsoli.
q Zrzuć na listy procesora CPU wszystkich uzbrojonych hrtimerów (ale NIE zwykłych timer_list czasomierzy) i szczegółowych informacji o wszystkich urządzeniach zegarevent.
r Wyłącza tryb nieprzetworzone klawiatury i ustawia go na XLATE.
s Podejmie próbę zsynchronizowania wszystkich zainstalowanych systemów plików.
t Spowoduje zrzut listy bieżących zadań i ich informacji do konsoli.
u Podejmie próbę ponownego zainstalowania wszystkich zainstalowanych systemów plików tylko do odczytu.
v Wymusza przywracanie konsoli framebuffer
v Powoduje zrzut buforu ETM [specyficzne dla usługi ARM]
w Zrzuty zadań, które są w stanie uninterruptible (zablokowane).
x Używany przez interfejs xmon na platformach ppc/powerpc. Pokaż globalne rejestry PMU w sparc64. Zrzuć wszystkie wpisy TLB w usłudze MIPS.
y Pokaż globalne rejestry procesora CPU [SPECYFICZNE DLA SPARC-64]
z Zrzut buforu ftrace
0-9 Ustawia poziom dziennika konsoli, kontrolując, które komunikaty jądra będą drukowane w konsoli. (0Na przykład sprawi, że tylko komunikaty awaryjne, takie jak PANICs lub OOPSes, sprawią, że zostaną wysłane do konsoli).

Dokumentacja specyficzna dla dystrybucji

Aby uzyskać dokumentację specyficzną dla dystrybucji w systemie SysRq i kroki konfigurowania systemu Linux w celu utworzenia zrzutu awaryjnego po odebraniu polecenia SysRq "Crash", zapoznaj się z poniższymi linkami:

Ubuntu

Red Hat

SUSE

CoreOS

Przerwanie niemaskowalne (NMI)

Przerwanie niemaskowalne (NMI) zostało zaprojektowane w celu utworzenia sygnału, że oprogramowanie na maszynie wirtualnej nie będzie ignorowane. W przeszłości elementy NMI były używane do monitorowania problemów sprzętowych w systemach, które wymagały określonych czasów odpowiedzi. Obecnie programiści i administratorzy systemu często używają rozwiązania NMI jako mechanizmu debugowania lub rozwiązywania problemów z systemami, które nie odpowiadają.

Konsola szeregowa może służyć do wysyłania NMI do maszyny wirtualnej platformy Azure przy użyciu ikony klawiatury na pasku poleceń pokazanym poniżej. Po dostarczeniu NMI konfiguracja maszyny wirtualnej będzie kontrolować sposób reagowania systemu. Systemy operacyjne Linux można skonfigurować pod kątem awarii i utworzyć zrzut pamięci, który system operacyjny odbiera NMI.

Zrzut ekranu przedstawiający konsolę szeregową. Ikona klawiatury jest wyróżniona, a jego menu jest widoczne. To menu zawiera element Send Non-Maskable Przerwanie.

Włącz NMI

W przypadku systemów Linux, które obsługują system sysctl do konfigurowania parametrów jądra, można włączyć panikę podczas odbierania tego NMI, korzystając z następujących elementów:

  1. Dodawanie tego wiersza do pliku /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. Ponowne uruchamianie lub aktualizowanie pliku sysctl przez uruchomienie polecenia
    sysctl -p

Aby uzyskać więcej informacji na temat konfiguracji jądra systemu Linux, w tym , i , zobacz: Dokumentacja /proc/sys/kernel/*.panic_on_unrecovered_nmipanic_on_io_nmiunknown_nmi_panic Aby uzyskać dokumentację specyficzną dla dystrybucji w usłudze NMI i kroki konfigurowania systemu Linux w celu utworzenia zrzutu awaryjnego po odebraniu NMI, zobacz poniższe linki:

Ubuntu

Red Hat

SUSE

CoreOS

Następne kroki

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.