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.
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
.
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
- Dodawanie tego wiersza do pliku /etc/sysctl.conf
kernel.sysrq = 1
- 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. (0 Na 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
- Co to jest obiekt SysRq i jak go używać?
- Jak używać funkcji SysRq do zbierania informacji z serwera RHEL
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.
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:
- Dodawanie tego wiersza do pliku /etc/sysctl.conf
kernel.panic_on_unrecovered_nmi=1
- 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_nmi
panic_on_io_nmi
unknown_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
- Co to jest NMI i do czego mogę go używać?
- Jak skonfigurować system tak, aby ulegał awarii po wypchnięciu przełącznika NMI?
- Przewodnik administratora zrzutu awaryjnego
SUSE
CoreOS
Następne kroki
- Główna strona dokumentacji konsoli szeregowej systemu Linux znajduje się tutaj.
- Użyj konsoli szeregowej, aby uruchomić program GRUB i wprowadzić tryb pojedynczego użytkownika
- Konsola szeregowa jest również dostępna dla maszyn wirtualnych z systemem Windows
- Dowiedz się więcej o diagnostyce rozruchu
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.