Delen via


De seriële console van Azure gebruiken voor SysRq- en NMI-aanroepen

Systeemaanvraag (SysRq)

Een SysRq is een reeks sleutels die worden begrepen door de Linux-besturingssysteemkernel, waarmee een set vooraf gedefinieerde acties kan worden geactiveerd. Deze opdrachten worden vaak gebruikt wanneer het oplossen of herstellen van virtuele machines niet kan worden uitgevoerd via traditioneel beheer (bijvoorbeeld als de VM niet reageert). Als u de SysRq-functie van azure Serial Console gebruikt, wordt het indrukken van de SysRq-toets en de tekens die op een fysiek toetsenbord zijn ingevoerd, nagebootst.

Zodra de SysRq-reeks is geleverd, bepaalt de kernelconfiguratie hoe het systeem reageert. Zie de markdown | van de SysRq Beheer Guide voor meer informatie over het in- en uitschakelen van SysRq.

De seriële Azure-console kan worden gebruikt om een SysRq te verzenden naar een virtuele Azure-machine met behulp van het toetsenbordpictogram in de onderstaande opdrachtbalk.

Schermopname van de seriële Console van Azure. Het toetsenbordpictogram is gemarkeerd en het menu is zichtbaar. Dat menu bevat het opdracht-item SysRq verzenden.

Als u 'SysRq-opdracht verzenden' kiest, wordt een dialoogvenster geopend dat algemene SysRq-opties bevat of een reeks SysRq-opdrachten accepteert die in het dialoogvenster zijn ingevoerd. Hierdoor kunnen reeksen SysRq's een bewerking op hoog niveau uitvoeren, zoals een veilig opnieuw opstarten met behulp van: REISUB.

Schermopname van het dialoogvenster SysRq-opdracht verzenden naar gast wanneer de optie invoersleutel is geselecteerd en REISUB wordt ingevoerd in het onderstaande veld.

De SysRq-opdracht kan niet worden gebruikt op virtuele machines die zijn gestopt of waarvan de kernel een niet-responsieve status heeft. (bijvoorbeeld een kernel panic).

SysRq inschakelen

Zoals beschreven in de SysRq Beheer guide hierboven, kan SysRq zodanig worden geconfigureerd dat alle, geen of alleen bepaalde opdrachten beschikbaar zijn. U kunt alle SysRq-opdrachten inschakelen met behulp van de onderstaande stap, maar dit overleeft opnieuw opstarten niet:

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

Als u de SysReq-configuratie permanent wilt maken, kunt u het volgende doen om alle SysRq-opdrachten in te schakelen

  1. Deze regel toevoegen aan /etc/sysctl.conf
    kernel.sysrq = 1
  2. Sysctl opnieuw opstarten of bijwerken door uit te voeren
    sysctl -p

Opdrachttoetsen

In de SysRq Beheer handleiding hierboven:

Opdracht Functie
b Het systeem wordt onmiddellijk opnieuw opgestart zonder uw schijven te synchroniseren of los te koppelen.
c Er wordt een systeemcrash uitgevoerd door een NULL-aanwijzer-dereference. Er wordt een crashdump uitgevoerd als deze is geconfigureerd.
d Toont alle vergrendelingen die worden vastgehouden.
e Verzend een SIGTERM naar alle processen, met uitzondering van init.
f Zal de oommoordenaar bellen om een geheugenzweegproces te doden, maar raak niet in paniek als er niets kan worden gedood.
g Gebruikt door kgdb (kerneldebugger)
h Geeft help weer (elke andere sleutel dan die hier wordt vermeld, geeft ook help weer, maar h is gemakkelijk te onthouden :-)
i Verzend een SIGKILL naar alle processen, met uitzondering van init.
j Geforceerd "Dooi het gewoon" - bestandssystemen geblokkeerd door de FIFREEZE ioctl.
k Met SAK (Secure Access Key) worden alle programma's op de huidige virtuele console beëindigd. OPMERKING: Zie belangrijke opmerkingen hieronder in de sectie SAK.
l Toont een stack-backtrace voor alle actieve CPU's.
m Dumpt de huidige geheugengegevens naar uw console.
n Wordt gebruikt om RT-taken mooi te maken
o Hiermee wordt uw systeem uitgeschakeld (indien geconfigureerd en ondersteund).
p Dumpt de huidige registers en vlaggen naar uw console.
q Dumpt per CPU-lijsten van alle bewapende hrtimers (maar GEEN gewone timer_list timers) en gedetailleerde informatie over alle clockevent-apparaten.
r Hiermee schakelt u de onbewerkte modus van het toetsenbord uit en stelt u deze in op XLATE.
s Alle gekoppelde bestandssystemen worden gesynchroniseerd.
t Dumpt een lijst met huidige taken en hun gegevens naar uw console.
u Hiermee wordt geprobeerd alle gekoppelde bestandssystemen opnieuw te koppelen met het kenmerk Alleen-lezen.
v Framebuffer-console geforceerd herstellen
v Veroorzaakt ETM-bufferdump [ARM-specifiek]
w Dumpt taken die de status Niet-onderbreekbaar (geblokkeerd) hebben.
x Wordt gebruikt door de xmon-interface op ppc-/powerpc-platforms. Globale PMU-registers weergeven op sparc64. Dump alle TLB-vermeldingen op MIPS.
y Globale CPU-registers weergeven [specifiek voor SPARC-64]
z De ftrace-buffer dumpen
0-9 Hiermee stelt u het niveau van het consolelogboek in en bepaalt u welke kernelberichten naar uw console worden afgedrukt. (0zou het bijvoorbeeld zo maken dat alleen noodberichten, zoals PANICs of OOPSes, naar uw console komen.)

Distributiespecifieke documentatie

Zie de onderstaande koppelingen voor distributiespecifieke documentatie over SysRq en stappen voor het configureren van Linux om een crashdump te maken wanneer deze een SysRq-opdracht 'Crash' ontvangt:

Ubuntu

Red Hat

SUSE

CoreOS

Niet-maskerbare interrupt (NMI)

Een niet-maskerbare interrupt (NMI) is ontworpen om een signaal te creëren dat software op een virtuele machine niet zal negeren. In het verleden werden NMIs gebruikt om te controleren op hardwareproblemen op systemen waarvoor specifieke reactietijden vereist waren. Tegenwoordig gebruiken programmeurs en systeembeheerders vaak NMI als mechanisme om fouten op te sporen of problemen op te lossen met systemen die niet reageren.

De seriële console kan worden gebruikt om een NMI te verzenden naar een virtuele Azure-machine met behulp van het toetsenbordpictogram in de onderstaande opdrachtbalk. Zodra de NMI is geleverd, bepaalt de configuratie van de virtuele machine hoe het systeem reageert. Linux-besturingssystemen kunnen worden geconfigureerd om vast te lopen en een geheugendump te maken. Het besturingssysteem ontvangt een NMI.

Schermopname van de seriële console. Het toetsenbordpictogram is gemarkeerd en het menu is zichtbaar. Dat menu bevat het item Niet-maskerbare interrupt verzenden.

NMI inschakelen

Voor Linux-systemen die sysctl ondersteunen voor het configureren van kernelparameters, kunt u een paniek bij het ontvangen van deze NMI inschakelen met behulp van het volgende:

  1. Deze regel toevoegen aan /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. Sysctl opnieuw opstarten of bijwerken door uit te voeren
    sysctl -p

Zie documentatie voor /proc/sys/kernel/*voor meer informatie over Linux-kernelconfiguraties, waaronder unknown_nmi_panicpanic_on_io_nmi, enpanic_on_unrecovered_nmi. Zie de onderstaande koppelingen voor distributiespecifieke documentatie over NMI en stappen voor het configureren van Linux om een crashdump te maken wanneer deze een NMI ontvangt:

Ubuntu

Red Hat

SUSE

CoreOS

Volgende stappen

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.