Freigeben über


Verwenden der seriellen Azure-Konsole für SysRq- und NMI-Aufrufe

Gilt für: ✔️ Virtuelle Linux-Computer(VMs)

SysRq (System Request, Systemabfrage)

Eine SysRq ist eine Sequenz von Schlüsseln, die vom Linux-Betriebssystemkernel verstanden wird und eine Reihe von vordefinierten Aktionen auslösen kann. Diese Befehle werden häufig verwendet, wenn die Problembehandlung oder Wiederherstellung des virtuellen Computers nicht über die herkömmliche Verwaltung ausgeführt werden kann. Wenn der virtuelle Computer z. B. nicht reagiert. Die Verwendung der SysRq-Funktion der Azure-Serienkonsole entspricht dem Drücken der SysRq-Taste und der Eingabe von Zeichen auf einer physikalischen Tastatur.

Sobald die SysRq-Sequenz bereitgestellt wird, steuert die Kernelkonfiguration, wie das System reagiert. Informationen zum Aktivieren und Deaktivieren von SysRq finden Sie im SysRq-Administratorhandbuch (Text | Markdown).

Die serielle Azure-Konsole kann verwendet werden, um sysRq mithilfe des Tastatursymbols in der folgenden Befehlsleiste an einen virtuellen Azure-Computer zu senden.

Screenshot der seriellen Azure-Konsole. Das Tastatursymbol ist hervorgehoben, und sein Menü ist sichtbar. Dieses Menü enthält ein Element zum Senden von SysRq-Befehlen.

Wenn Sie "SysRq-Befehl senden" auswählen, wird ein Dialogfeld geöffnet, das allgemeine SysRq-Optionen bereitstellt oder eine Sequenz von SysRq-Befehlen akzeptiert, die in das Dialogfeld eingegeben wurden. Dieser Befehl "SysRq senden" ermöglicht eine Reihe von hochrangigen SysRq-Operationen, wie etwa einen sicheren Neustart mit: REISUB.

Screenshot des Dialogfelds

Der SysRq-Befehl kann nicht auf virtuellen Computern verwendet werden, die angehalten wurden oder deren Kernel sich in einem nicht reaktionsfähigen Status befindet Zum Beispiel eine Kernel-Panik.

Aktivieren von SysRq

Wie im SysRq-Administratorhandbuch beschrieben, kann SysRq so konfiguriert werden, dass alle, keine oder nur bestimmte Befehle verfügbar sind. Sie können alle SysRq-Befehle mithilfe des folgenden Schritts aktivieren, aber es überlebt keinen Neustart:

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

Um die SysReq-Konfiguration dauerhaft zu speichern, gehen Sie zum Aktivieren aller SysRq-Befehle wie folgt vor:

  1. Hinzufügen der folgenden Zeile zu /etc/sysctl.conf
    kernel.sysrq = 1
  2. Neustarten oder Aktualisieren von sysctl durch Ausführen
    sysctl -p

Befehlstasten

Aus dem SysRq-Administratorhandbuch:

Befehl Funktion
b Führt sofort einen Systemneustart ohne Synchronisieren oder Aufheben der Bereitstellung der Datenträger durch.
c Führt einen Systemabsturz durch eine NULL-Zeigerdereferenzierung herbei. Wenn konfiguriert, wird ein Absturzabbild (Crash Dump) erstellt.
d Zeigt alle Sperren, die gehalten werden.
e Sendet ein SIGTERM-Signal an alle Prozesse, mit Ausnahme von „init“.
f Wird den OOM-Killer aufrufen, um einen speicherintensiven Prozess zu töten, aber keine Panik, wenn nichts getötet werden kann.
g Wird von kgdb (Kernel-Debugger) verwendet.
h Zeigt Hilfe an (jede andere Taste als die hier aufgeführten zeigt auch Hilfe an, aber h ist leicht zu merken :-)
i Sendet ein SIGKILL-Signal an alle Prozesse, mit Ausnahme von „init“.
j Zwangsweise „einfach reaktivieren“ – von FIFREEZE ioctl fixierte Dateisysteme.
k Secure Access Key (SAK) beendet alle Programme auf der aktuellen virtuellen Konsole. HINWEIS: Wichtige Kommentare finden Sie im folgenden SAK-Abschnitt.
l Zeigt einen Stack-Backtrace für alle aktiven CPUs.
m Sichert die aktuellen Speicherinformationen in der Konsole.
n Wird verwendet, um RT-Tasks ansprechend zu machen.
o Fährt Ihr System herunter (sofern konfiguriert und unterstützt).
p Sichert die aktuellen Register und Flags in der Konsole.
q Sichert pro CPU Listen aller zurückgesetzten HR-Timer (aber NICHT der regulären Timer aus der timer_list-Struktur) sowie detaillierte Informationen zu allen Clock-Event-Geräten.
r Deaktiviert den Raw-Modus der Tastatur und legt den XLATE-Modus fest.
s Versucht, alle bereitgestellten Dateisysteme zu synchronisieren.
t Sichert eine Liste der aktuellen Tasks und der zugehörigen Informationen in der Konsole.
u Versucht, alle bereitgestellten Dateisysteme schreibgeschützt erneut bereitzustellen.
v Erzwingt die Wiederherstellung der Framebuffer-Konsole.
v Verursacht ein ETM-Pufferspeicherabbild [ARM-spezifisch].
w Sichert Tasks, die sich im unterbrechungsfreien (gesperrten) Zustand befinden.
x Wird von der Xmon-Schnittstelle auf PPC/PowerPC-Plattformen verwendet. Zeigt globale PMU-Register auf SPARC64 an. Sichert alle TLB-Einträge auf MIPS.
y Zeigt die globalen CPU-Register an [SPARC64-spezifisch].
z Sichert den fTRACE-Puffer.
0-9 Legt die Protokollierungsstufe der Konsole fest und steuert, welche Kernelnachrichten in der Konsole gedruckt werden. (0 zum Beispiel würde dafür sorgen, dass nur Notfallmeldungen wie PANIC oder OOPS auf Ihre Konsole gelangen.)

Distributionsspezifische Dokumentation

Verteilungsspezifische Dokumentationen zu SysRq und Schritte zur Konfiguration von Linux zur Erstellung eines Absturzabbilds bei Erhalt eines SysRq-Befehls "Crash" finden Sie in den folgenden Links:

Ubuntu

Roter Hut

SUSE

CoreOS

NMI (Nicht maskierbarer Interrupt)

Ein nicht maskierbarer Interrupt (NMI) erzeugt ein Signal, das Software auf einem virtuellen Computer nicht ignoriert. In der Vergangenheit werden NMIs verwendet, um Hardwareprobleme auf Systemen zu überwachen, die bestimmte Reaktionszeiten erfordern. Heute verwenden Programmierer und Systemadministratoren NMI häufig als Mechanismus zum Debuggen oder Behandeln von Systemen, die nicht reagieren.

Die serielle Konsole kann verwendet werden, um einen NMI mithilfe des Tastatursymbols in der folgenden Befehlsleiste an einen virtuellen Azure-Computer zu senden. Sobald der NMI bereitgestellt wurde, steuert die Konfiguration des virtuellen Computers, wie das System reagiert. Linux-Betriebssysteme können so konfiguriert werden, dass beim Empfang eines NMI ein Absturz erfolgt und ein Speicherabbild erstellt wird.

Screenshot der seriellen Konsole. Das Tastatursymbol ist hervorgehoben, und sein Menü ist sichtbar. Dieses Menü enthält ein Element „Nicht maskierbaren Interrupt senden“.

Aktivieren von NMI

Für Linux-Systeme, die sysctl zum Konfigurieren von Kernelparametern unterstützen, können Sie eine Panik aktivieren, wenn Sie diesen NMI erhalten, indem Sie die folgenden Befehle verwenden:

  1. Hinzufügen der folgenden Zeile zu /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. Neustarten oder Aktualisieren von sysctl durch Ausführen
    sysctl -p

Weitere Informationen zu Linux-Kernelkonfigurationen (einschließlich unknown_nmi_panic, panic_on_io_nmi und panic_on_unrecovered_nmi) finden Sie hier: Dokumentation für /proc/sys/kernel/*. Eine verteilungsspezifische Dokumentation zu NMI und die Schritte zum Konfigurieren von Linux zum Erstellen eines Speicherabbilds beim Empfang eines NMI finden Sie unter den folgenden Links:

Ubuntu

Roter Hut

SUSE

CoreOS

Nächste Schritte

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben, können Sie den Azure-Communitysupport stellen. Sie können auch Produktfeedback an die Azure Feedback Community senden.