Kernel-panik i virtuella Linux-datorer på Azure

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

Sammanfattning

Den här artikeln beskriver flera villkor som kan leda till en kernel-panik och ger felsökningsvägledning.

I allmänhet är en kernel-panik en situation när kerneln inte kan läsas in korrekt och därför systemet inte kan starta. En annan form av kernel-panik uppstår när kerneln stöter på en situation som den inte vet hur man hanterar och skyddar sig själv genom att stoppa.

Förutsättningar

Kontrollera att seriekonsolen är aktiverad och funktionell på den virtuella Linux-datorn.

Hur identifierar jag en kernel-panik?

Använd Azure-portalen för att visa utdata från seriekonsolloggen för den virtuella datorn på bladet för startdiagnostik, bladet för seriekonsol eller AZ CLI för att identifiera den specifika kärnpaniksträngen.

En kernelpanic liknar utdata nedan och visas i slutet av den seriella konsolloggen.

Probing EDD (edd=off to disable)... ok
Memory KASLR using RDRAND RDTSC...
[  300.206297] Kernel panic - xxxxxxxx
[  300.207216] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G               ------------ T 3.xxx.x86_64 #1

Några av de vanligaste kernel-panikhändelserna:

Panikmeddelande Anledning
Fel: 0000 [#1] SMP " (kontrollera loggen för mer information) Systemet fick panik på grund av att en felaktig adress avrefererades.
SysRq: Utlösa en kraschdumpa Core dump initierades av användaren med sysrq-c eller genom att upprepa c till /proc/sysrq-trigger.
kernel BUG på <pathname/filename>:<line number>! Det här formatet är standard för en misslyckad BUGG-kontroll (som är precis som en ASSERT, men logiken är inverterad). Filnamnet och radnumret anger vilken BUGG-kontroll som misslyckades.
Kernel panic – ingen synkronisering: softlockup: hängande processer Den mjuka låsdetektorn har hittat en PROCESSOR som inte har schemalagt övervakningsaktiviteten inom tröskelvärdet för mjuk låsning.
Kernel panic – inte synkar: Watchdogen upptäckte hårdvarulåsning på cpu 0 Detektorn för hård låsning har hittat en processor som inte har fått några hrtimer-avbrott inom gränsvärdet för hård låsning.
Kernel-panik – synkroniseras inte: hung_task: blockerade uppgifter Den låsta aktivitetsvakten har identifierat minst en aktivitet som har varit i ett avbrottsfritt tillstånd för mer än det blockerade timeout-värdet för aktiviteten.
Kernel panic – inte synkronisering: slut på minne. panic_on_oom är aktiverat Systemet har slut på minne och byte och har tvingats att börja döda processer för att frigöra minne (inte standardbeteende).
Kernel panic – inte synkronisering: Slut på minne och inga dödande processer... Systemet har slut på minne och växlingsutrymme och har avslutat processer för att frigöra minne, men det finns inga fler processer att avsluta.
Kernel panic – inte synkronisering: Ett NMI har inträffat. Mer information finns i den integrerade hanteringsloggen. Watchdog har fångat upp ett NMI (icke-maskerbart avbrott).
Kernel-panik – synkroniseras inte: NMI IOCK-fel: Fortsätter inte Systemet fick en I/O-kontroll-NMI från hårdvaran (inte ett minnesparitetsfel) och kernel.panic_on_io_nmi var inställd (inte standard).
Kernel-panik – synkroniseras inte: NMI: Fortsätter inte Systemet tog emot ett NMI (antingen maskinvaru- eller minnesparitetsfel) och kernel.panic_on_unrecovered_nmi angavs (inte standardvärdet).
Kernel panic – synkroniserar inte: nmi watchdog Systemet fick en NMI och antingen kernel.panic_on_timeout eller kernel.panic_on_oops är inställt (inte standardvärdena).
Kernel-panik – synkroniseras inte: Kontroll av allvarlig dator En maskinkontrollsundantag har rapporterats för ett kritiskt tillstånd.
Kernel panic – ingen synkronisering: Försökte döda init! Init-processen är den första processen som startas och bör aldrig avslutas.
Kernel panic – synkroniseras inte: VFS: Det går inte att montera root fs på unknown-block(0,0) Det förutsätts att kerneln använder en initramfs för att montera rotfarna. Det här felet uppstår när kerneln inte har några initramfs.

Scenario 1: Kernel-panik inträffar vid uppstart

En kernel-panik vid start hindrar den virtuella datorn från att slutföra operativsystemets startprocess. Det händer varje gång den virtuella datorn startas och tillåter inte inloggning.

Den här typen av händelse är ofta relaterad men inte begränsad till:

Lösning för scenario 1

För att hantera den här typen av kernelpanik kan följande metoder användas:

Metod 1: Använda den Azure seriekonsolen

Använd den Azure seriekonsolen för att avbryta startprocessen och välja en tidigare kernelversion, om den är tillgänglig. På så sätt kan den virtuella datorn startas upp igen och sedan kan du använda någon av följande metoder för att åtgärda det specifika problemet med kerneln som inte startar:

Metod 2: Offlinereparation med hjälp av en virtuell räddningsdator

Om den Azure seriekonsolen inte är tillgänglig eller om ingen tidigare kernel är tillgänglig behöver du en virtuell dator för räddning/reparation för att utföra en offlinereparation.

Använd kommandot Reparera virtuell dator för att skapa en reparations-VM som har en kopia av den virtuella måldatorns OS-disk ansluten. Sedan, använd chroot för att montera kopian av OS-filsystemen i reparations-VM:et. Därefter kan du prova följande metoder för att åtgärda kernelproblemen:

Scenario 2: Kernel-panik vid körning

Den här typen av kernel-panik utlöses ofta vid oförutsägbara tidpunkter när operativsystemets startprocess har slutförts och gör att den virtuella datorn slutar svara, vilket hindrar den från att logga in. Det är ofta relaterat men inte begränsat till:

Lösning för scenario 2

För att hantera den här typen av kernelpanik kan följande metoder användas:

  • Granska resursanvändning och övergripande systemprestanda. Kernel-paniken kan bero på en eventuell brist på resurser som kan leda till att en virtuell dator ändrar storlek.
  • Installera om möjligt de senaste uppdateringarna som är tillgängliga i motsvarande Linux-distributionsdatabaser. Kernel-paniken kan vara relaterad till kända buggar i antingen kerneln eller annan programvara.
  • Det finns en möjlighet att kernel-paniken är relaterad till en nyligen genomförd kerneländring, i vilket fall det också är lämpligt att starta över en tidigare kernelversion, enligt beskrivningen i Lösning för scenario 1.
  • Om alternativen ovan inte är tillämpliga kan det vara nödvändigt att konfigurera kdump och generera en kärndump att dela med stöd för ytterligare analys.

Mer specifika kernel-panikscenarier

Vanliga kernel-panikscenarier med specifika anvisningar för felsökning/återställning:

Dokument Scenario
En Azure virtuell Linux-dator på en 3,10-baserad kernel får panik efter en uppgradering av värdnoden I den här artikeln beskrivs ett problem som uppstår när en virtuell Linux-dator i Azure som kör en 3.10-baserad kernel kraschar efter en uppgradering av en värd nod i Azure.
Återställning av en virtuell Azure Linux-dator från kernelrelaterade startproblem Den här artikeln innehåller lösningar på ett problem där en virtuell Linux-dator (VM) inte kan startas om efter att kerneländringar har tillämpats.