Udostępnij przez


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 komendy są często używane, kiedy tradycyjna administracja nie pozwala na rozwiązywanie problemów maszyny wirtualnej lub jej odzyskiwanie. Jeśli na przykład maszyna wirtualna nie odpowiada. Użycie funkcji SysRq w konsoli szeregowej platformy Azure naśladuje naciśnięcie klawisza SysRq oraz wprowadzanie znaków na klawiaturze fizycznej.

Po dostarczeniu sekwencji SysRq konfiguracja jądra kontroluje sposób reagowania systemu. Aby uzyskać informacje na temat włączania i wyłączania narzędzia SysRq, zobacz znaczników markdown w podręczniku 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 poniższym pasku poleceń.

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" powoduje otwarcie okna dialogowego zawierającego typowe opcje SysRq lub zaakceptowanie sekwencji poleceń SysRq wprowadzonych w oknie dialogowym. To polecenie „Wyślij polecenie SysRq” umożliwia serię poleceń SysRq do przeprowadzenia operacji na wysokim poziomie, takich jak bezpieczny ponowny rozruch przy użyciu: REISUB.

Zrzut ekranu okna dialogowego „Wysyłanie polecenia SysRq do gościa” z wybraną opcją wprowadzenia klucza i wpisanym poleceniem REISUB w następnym polu.

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 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 następujące kroki, 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 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 obciążający pamięć, ale nie panikować, jeśli nic nie może zostać zabite.
g Używane przez kgdb (debuger jądra)
h Wyświetli pomoc (dowolny inny klawisz niż wymienione tutaj również wyświetla 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 w poniższej 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 są 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 danej dystrybucji SysRq i kroki konfiguracji systemu Linux do utworzenia zrzutu awarii w momencie odebrania polecenia SysRq "Crash", zapoznaj się z następującymi linkami:

Ubuntu

Red Hat

SUSE

CoreOS

Przerwanie niemaskowalne (NMI)

Przerwanie niemaskowalne (NMI) generuje sygnał, którego oprogramowanie działające na maszynie wirtualnej nie ignoruje. W przeszłości elementy NMI są 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ą 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 poniższym pasku poleceń. Po dostarczeniu NMI konfiguracja maszyny wirtualnej kontroluje 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 obsługujących bibliotekę sysctl do konfigurowania parametrów jądra można włączyć panikę podczas odbierania tego NMI przy użyciu następujących poleceń:

  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: unknown_nmi_panic.panic_on_io_nmipanic_on_unrecovered_nmi Aby uzyskać dokumentację specyficzną dla dystrybucji dotyczącą NMI i kroki konfigurowania systemu Linux w celu utworzenia zrzutu awaryjnego po odebraniu NMI, zobacz poniższe odnośniki:

Ubuntu

Red Hat

SUSE

CoreOS

Następne kroki

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania, możesz zadać pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.