Używanie konsoli szeregowej platformy Azure dla wywołań SysRq i NMI
Żądanie systemowe (SysRq)
SysRq to sekwencja kluczy zrozumiała dla jądra systemu operacyjnego Linux, która może wyzwolić zestaw wstępnie zdefiniowanych akcji. Te polecenia są często używane, gdy rozwiązywanie problemów lub odzyskiwanie maszyn wirtualnych nie może być wykonywane za pośrednictwem tradycyjnej administracji (na przykład jeśli maszyna wirtualna nie odpowiada). Użycie funkcji SysRq konsoli szeregowej platformy Azure będzie naśladować naciśnięcie klawisza SysRq i znaków wprowadzonych na klawiaturze fizycznej.
Po dostarczeniu sekwencji SysRq konfiguracja jądra będzie kontrolować reakcję systemu. Aby uzyskać informacje na temat włączania i wyłączania usługi SysRq, zobacz znacznikmarkdowntekstu | SysRq Administracja Guide.
Konsola szeregowa platformy Azure może służyć do wysyłania pliku SysRq do maszyny wirtualnej platformy Azure przy użyciu ikony klawiatury na pasku poleceń pokazanym poniżej.
Wybranie opcji "Wyślij polecenie SysRq" spowoduje otwarcie okna dialogowego, które zapewni typowe opcje SysRq lub zaakceptuje sekwencję poleceń SysRq wprowadzonych w oknie dialogowym. Umożliwia to serii SysRq wykonywanie operacji wysokiego poziomu, takich jak bezpieczny ponowny rozruch przy użyciu: REISUB
.
Nie można użyć polecenia SysRq na maszynach wirtualnych, które zostały 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 powyższym przewodniku SysRq Administracja, można skonfigurować usługę SysRq w taki sposób, aby były dostępne wszystkie, żadne lub tylko niektóre polecenia. Możesz włączyć wszystkie polecenia SysRq, wykonując poniższy krok, ale nie przetrwa on ponownego uruchomienia:
echo "1" >/proc/sys/kernel/sysrq
Aby ustawić konfigurację SysReq jako trwałą, można 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 programu sysctl przez uruchomienie
sysctl -p
Klucze poleceń
Z przewodnika Administracja SysRq powyżej:
Polecenia | Funkcja |
---|---|
b |
Natychmiast uruchomi ponownie system bez synchronizowania lub odinstalowywania dysków. |
c |
Spowoduje to awarię systemu przez wyłudczenie wskaźnika NULL. W przypadku skonfigurowania zostanie podjęta awaria. |
d |
Pokazuje wszystkie blokady, które są przechowywane. |
e |
Wyślij sigterm do wszystkich procesów, z wyjątkiem init. |
f |
Będzie nazywać zabójcę oom zabić proces wieprz pamięci, ale nie panikuj, jeśli nic nie może być zabity. |
g |
Używane przez kgdb (debuger jądra) |
h |
Zostanie wyświetlona pomoc (każdy inny klucz niż ten wymieniony tutaj również wyświetli pomoc, ale h jest łatwy do zapamiętania :-) |
i |
Wyślij sigkill do wszystkich procesów, z wyjątkiem init. |
j |
Forcibly "Just thaw it" - filesystems frozen by the FIFREEZE ioctl. |
k |
Bezpieczny klucz dostępu (SAK) zabija wszystkie programy w bieżącej konsoli wirtualnej. UWAGA: Zobacz ważne komentarze poniżej w sekcji SAK. |
l |
Przedstawia śledzenie wsteczne stosu dla wszystkich aktywnych procesorów CPU. |
m |
Spowoduje zrzucenie bieżących informacji o pamięci do konsoli. |
n |
Służy do wykonywania zadań RT z dobrą obsługą |
o |
Spowoduje wyłączenie systemu (jeśli jest skonfigurowany i obsługiwany). |
p |
Spowoduje zrzucenie bieżących rejestrów i flag do konsoli. |
q |
Spowoduje zrzut list procesora CPU wszystkich uzbrojonych hrtimerów (ale NIE zwykłych czasomierzy timer_list) i szczegółowych informacji o wszystkich urządzeniach zegarowentowych. |
r |
Wyłącza tryb nieprzetworzony klawiatury i ustawia go na XLATE. |
s |
Spróbuje zsynchronizować wszystkie zainstalowane systemy plików. |
t |
Spowoduje zrzucenie listy bieżących zadań i ich informacji do konsoli programu . |
u |
Spróbuje ponownie zainstalować wszystkie zainstalowane systemy plików tylko do odczytu. |
v |
Zdecydowanie przywraca konsolę framebuffer |
v |
Powoduje zrzut buforu ETM [specyficzny dla usługi ARM] |
w |
Zrzuty zadań, które są w stanie nieinterruptible (zablokowane). |
x |
Używany przez interfejs xmon na platformach ppc/powerpc. Pokaż globalne rejestry PMU na sparc64. Zrzuć wszystkie wpisy modułu TLB w programie 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 spowoduje to, że tylko komunikaty alarmowe, takie jak PANICs lub OOPSes, zostaną wysłane do konsoli użytkownika). |
Dokumentacja specyficzna dla dystrybucji
Aby zapoznać się z dokumentacją dotyczącą dystrybucji programu SysRq i instrukcjami konfigurowania systemu Linux w celu utworzenia zrzutu awaryjnego po otrzymaniu polecenia "Crash" SysRq, zobacz poniższe linki:
Ubuntu
Czerwony kapelusz
- Co to jest obiekt SysRq i jak z niego korzystać?
- Jak używać obiektu SysRq do zbierania informacji z serwera RHEL
SUSE
CoreOS
Niemaskowalne przerwanie (NMI)
Niemaskowalne przerwanie (NMI) jest przeznaczone do tworzenia sygnału, że oprogramowanie na maszynie wirtualnej nie będzie ignorować. W przeszłości interfejsy NMI były używane do monitorowania problemów sprzętowych w systemach, które wymagały określonego czasu odpowiedzi. Obecnie programiści i administratorzy systemu często używają NMI jako mechanizmu do 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ć reakcję systemu. Systemy operacyjne Linux można skonfigurować do awarii i utworzyć zrzut pamięci system operacyjny odbiera NMI.
Włączanie usługi NMI
W przypadku systemów z systemem Linux, które obsługują funkcję sysctl na potrzeby konfigurowania parametrów jądra, można włączyć panikę podczas odbierania tej usługi 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 programu sysctl przez uruchomienie
sysctl -p
Aby uzyskać więcej informacji na temat konfiguracji jądra systemu Linux, w tym unknown_nmi_panic
, panic_on_io_nmi
i panic_on_unrecovered_nmi
, zobacz: Dokumentacja /proc/sys/kernel/*. Aby zapoznać się z dokumentacją dotyczącą dystrybucji usługi NMI i instrukcjami konfigurowania systemu Linux w celu utworzenia zrzutu awaryjnego po odebraniu NMI, zobacz poniższe linki:
Ubuntu
Czerwony kapelusz
- Do czego służy usługa NMI?
- Jak skonfigurować system do awarii po wypchnięciu przełącznika NMI?
- Przewodnik po Administracja zrzutu awaryjnego
SUSE
CoreOS
Następne kroki
- Główna strona dokumentacji konsoli szeregowej systemu Linux znajduje się tutaj.
- Używanie konsoli szeregowej do rozruchu w programie GRUB i wprowadzania trybu pojedynczego użytkownika
- Konsola szeregowa jest również dostępna dla maszyn wirtualnych z systemem Windows
- Dowiedz się więcej na temat diagnostyki 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 platformy Azure.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla