Dela via


Använda Azure-seriekonsolen för SysRq- och NMI-anrop

Gäller för: ✔️ Virtuella Linux-datorer

Systembegäran (SysRq)

En SysRq är en sekvens med nycklar som tolkas av Linux-åtgärdssystemets kernel, vilket kan utlösa en uppsättning fördefinierade åtgärder. Dessa kommandon används ofta när felsökning eller återställning av virtuella datorer inte kan utföras via traditionell administration (till exempel om den virtuella datorn inte svarar). Om du använder SysRq-funktionen i Azure-seriekonsolen efterliknas tryckning av SysRq-tangenten och tecken som anges på ett fysiskt tangentbord.

När SysRq-sekvensen har levererats styr kernelkonfigurationen hur systemet svarar. Information om hur du aktiverar och inaktiverar SysRq finns i textmarkeringen | SysRq Admin Guide.

Azure-seriekonsolen kan användas för att skicka en SysRq till en virtuell Azure-dator med hjälp av tangentbordsikonen i kommandofältet som visas nedan.

Skärmbild av Azure-seriekonsolen. Tangentbordsikonen är markerad och menyn är synlig. Den menyn innehåller kommandoobjektet Skicka SysRq.

Om du väljer "Skicka SysRq-kommando" öppnas en dialogruta som ger vanliga SysRq-alternativ eller accepterar en sekvens med SysRq-kommandon som anges i dialogrutan. På så sätt kan serier av SysRq utföra en högnivååtgärd, till exempel en säker omstart med hjälp av: REISUB.

Skärmbild av dialogrutan Skicka SysRq-kommando till gäst när alternativet ange nyckel är markerat och REISUB matas in i fältet nedan.

SysRq-kommandot kan inte användas på virtuella datorer som stoppas eller vars kernel är i ett icke-dynamiskt tillstånd. (till exempel en kernel-panik).

Aktivera SysRq

Enligt beskrivningen i Administratörsguiden för SysRq ovan kan SysRq konfigureras så att alla, inga eller endast vissa kommandon är tillgängliga. Du kan aktivera alla SysRq-kommandon med hjälp av steget nedan, men det kommer inte att överleva en omstart:

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

Om du vill göra SysReq-konfigurationen beständig kan du göra följande för att aktivera alla SysRq-kommandon

  1. Lägga till den här raden i /etc/sysctl.conf
    kernel.sysrq = 1
  2. Starta om eller uppdatera sysctl genom att köra
    sysctl -p

Kommandonycklar

I administratörsguiden för SysRq ovan:

Command Funktion
b Startar omedelbart om systemet utan att synkronisera eller demontera diskarna.
c Utför en systemkrasch med en NULL-pekaravreference. En kraschdumpa tas om den konfigureras.
d Visar alla lås som hålls.
e Skicka en SIGTERM till alla processer, förutom init.
f Kommer att kalla oom mördaren att döda en minnessvin process, men inte panik om ingenting kan dödas.
g Används av kgdb (kernelbugger)
h Visar hjälp (någon annan nyckel än de som anges här visar också hjälp, men h är lätt att komma ihåg :-)
i Skicka en SIGKILL till alla processer, förutom init.
j Med två skäl "Just thaw it" – filsystem som frysts av FIFREEZE ioctl.
k Säker åtkomstnyckel (SAK) stoppar alla program i den aktuella virtuella konsolen. Obs! Se viktiga kommentarer nedan i AVSNITTET SAK.
l Visar en stack-backtrace för alla aktiva processorer.
m Dumpar aktuell minnesinformation till konsolen.
n Används för att göra RT-uppgifter snygga
o Stänger av systemet (om det är konfigurerat och stöds).
p Dumpar aktuella register och flaggor till konsolen.
q Dumpar per CPU-listor över alla beväpnade hrtimers (men INTE vanliga timer_list timers) och detaljerad information om alla clockevent-enheter.
r Inaktiverar tangentbords raw-läge och ställer in det på XLATE.
s Försöker synkronisera alla monterade filsystem.
t Dumpar en lista över aktuella uppgifter och deras information till konsolen.
u Försöker återmontera alla monterade filsystem med skrivskydd.
v Återställer framebuffer-konsolen kraftfullt
v Orsakar ETM-buffertdump [ARM-specifik]
w Dumpar uppgifter som är i avbrottsfritt (blockerat) tillstånd.
x Används av xmon-gränssnittet på ppc/powerpc-plattformar. Visa globala PMU-register på sparc64. Dumpa alla TLB-poster på MIPS.
y Visa globala CPU-register [SPARC-64 specific]
z Dumpa ftrace-bufferten
0-9 Anger konsolens loggnivå och styr vilka kernelmeddelanden som ska skrivas ut till konsolen. (0skulle till exempel göra det så att endast nödmeddelanden som PANIC eller OOPSes skulle ta sig till konsolen.)

Distributionsspecifik dokumentation

Information om distributionsspecifik dokumentation om SysRq och steg för att konfigurera Linux för att skapa en kraschdump när det tar emot ett SysRq-kommando för "Krasch" finns i länkarna nedan:

Ubuntu

Red Hat

SUSE

CoreOS

Ej maskerbart avbrott (NMI)

Ett icke-maskerbart avbrott (NMI) är utformat för att skapa en signal som programvara på en virtuell dator inte ignorerar. Tidigare har NMI:er använts för att övervaka maskinvaruproblem på system som kräver specifika svarstider. I dag använder programmerare och systemadministratörer ofta NMI som en mekanism för att felsöka system som inte svarar.

Seriekonsolen kan användas för att skicka ett NMI till en virtuell Azure-dator med hjälp av tangentbordsikonen i kommandofältet som visas nedan. När NMI har levererats styr konfigurationen av den virtuella datorn hur systemet svarar. Linux-operativsystem kan konfigureras för att krascha och skapa en minnesdump som operativsystemet tar emot ett NMI.

Skärmbild av seriekonsolen. Tangentbordsikonen är markerad och menyn är synlig. Den menyn innehåller objektet Skicka icke-maskerbart avbrott.

Aktivera NMI

För Linux-system som stöder sysctl för att konfigurera kernelparametrar kan du aktivera panik när du tar emot detta NMI med hjälp av följande:

  1. Lägga till den här raden i /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. Starta om eller uppdatera sysctl genom att köra
    sysctl -p

Mer information om Linux-kernelkonfigurationer, inklusive unknown_nmi_panic, panic_on_io_nmioch panic_on_unrecovered_nmi, finns i: Dokumentation för /proc/sys/kernel/*. Information om distributionsspecifik dokumentation om NMI och steg för att konfigurera Linux för att skapa en kraschdump när den tar emot ett NMI finns i länkarna nedan:

Ubuntu

Red Hat

SUSE

CoreOS

Nästa steg

Kontakta oss om du behöver hjälp

Om du har frågor eller behöver hjälp skapar du en supportbegäran eller frågar Azure Community-support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.