De Seriële Console van Azure gebruiken voor SysRq- en NMI-aanroepen
Van toepassing op: ✔️ Virtuele Linux-machines
Systeemaanvraag (SysRq)
Een SysRq is een reeks sleutels die worden begrepen door de Linux-besturingssysteemkernel, die een set vooraf gedefinieerde acties kan activeren. Deze opdrachten worden vaak gebruikt wanneer problemen met virtuele machines of herstel niet kunnen worden uitgevoerd via traditioneel beheer (bijvoorbeeld als de virtuele machine niet reageert). Als u de SysRq-functie van de Seriële Console van Azure gebruikt, worden de SysRq-toets en tekens die zijn ingevoerd op een fysiek toetsenbord, nagebootst.
Zodra de SysRq-reeks is geleverd, bepaalt de kernelconfiguratie hoe het systeem reageert. Zie de markdown | van de SysRq-beheerdershandleiding voor informatie over het in- en uitschakelen van SysRq.
De Seriële Console van Azure kan worden gebruikt om een SysRq naar een virtuele Azure-machine te verzenden met behulp van het toetsenbordpictogram in de onderstaande opdrachtbalk.
Als u 'Opdracht SysRq verzenden' kiest, wordt een dialoogvenster geopend dat algemene SysRq-opties biedt 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
.
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-paniek).
SysRq inschakelen
Zoals hierboven beschreven in de SysRq-beheerdershandleiding , 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 het zal niet overleven bij het opnieuw opstarten:
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
- Deze regel toevoegen aan /etc/sysctl.conf
kernel.sysrq = 1
- Sysctl opnieuw opstarten of bijwerken door het uitvoeren van
sysctl -p
Opdrachtsleutels
In de sysRq-beheerdershandleiding hierboven:
Opdracht | Functie |
---|---|
b |
Start het systeem onmiddellijk opnieuw op zonder dat uw schijven worden gesynchroniseerd of ontkoppeld. |
c |
Er wordt een systeemcrash uitgevoerd door een null-aanwijzerdeductie. Er wordt een crashdump genomen als deze is geconfigureerd. |
d |
Geeft alle vergrendelingen weer die zijn vastgehouden. |
e |
Verzend een SIGTERM naar alle processen, met uitzondering van init. |
f |
Zal de oommoordenaar bellen om een geheugen hogproces te doden, maar raak niet in paniek als er niets kan worden gedood. |
g |
Wordt gebruikt door kgdb (kernelfoutopsporingsprogramma) |
h |
Geeft help weer (elke andere sleutel dan de sleutel 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" - bestandssysteem bevroren door de FIFREEZE ioctl. |
k |
Met Secure Access Key (SAK) worden alle programma's in de huidige virtuele console verwijderd. OPMERKING: Zie belangrijke opmerkingen hieronder in de sectie SAK. |
l |
Toont een stack-backtrace voor alle actieve CPU's. |
m |
Hiermee worden de huidige geheugengegevens naar uw console gedumpt. |
n |
Wordt gebruikt om RT-taken mooi te maken |
o |
Het systeem wordt uitgeschakeld (indien geconfigureerd en ondersteund). |
p |
Dumpt de huidige registers en vlaggen naar uw console. |
q |
Dumpen per CPU-lijst van alle gewapende hrtimers (maar NIET regelmatig 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 |
Probeert alle gekoppelde bestandssysteemen te synchroniseren. |
t |
Dumpt een lijst met huidige taken en de bijbehorende gegevens naar uw console. |
u |
Probeert alle gekoppelde bestandssysteemen opnieuw te koppelen met het kenmerk Alleen-lezen. |
v |
Framebuffer-console geforceerd herstellen |
v |
Veroorzaakt ETM-bufferdump [ARM-specifiek] |
w |
Dumpt taken met een niet-onderbreekbare status (geblokkeerd). |
x |
Wordt gebruikt door de xmon-interface op ppc-/powerpc-platforms. Toon globale PMU Registers op sparc64. Dump alle TLB-vermeldingen op MIPS. |
y |
Globale CPU-registers weergeven [SPARC-64 specifiek] |
z |
De ftrace-buffer dumpen |
0 -9 |
Hiermee stelt u het consolelogboekniveau in en bepaalt u welke kernelberichten naar uw console worden afgedrukt. (0 Bijvoorbeeld, zodat alleen noodberichten, zoals PANICs of OOPSes, deze naar uw console brengen.) |
Distributiespecifieke documentatie
Zie de onderstaande koppelingen voor informatie over distributiespecifieke documentatie over SysRq en stappen voor het configureren van Linux om een crashdump te maken wanneer deze een SysRq Crash-opdracht ontvangt:
Ubuntu
Red Hat
- Wat is de SysRq Facility en hoe gebruik ik deze?
- De SysRq-faciliteit gebruiken om informatie te verzamelen van een RHEL-server
SUSE
CoreOS
Niet-maskerbare interrupt (NMI)
Een niet-maskerbare interrupt (NMI) is ontworpen om een signaal te maken dat software op een virtuele machine niet wordt genegeerd. In het verleden zijn NMI's gebruikt om te controleren op hardwareproblemen op systemen waarvoor specifieke reactietijden vereist zijn. Tegenwoordig gebruiken programmeurs en systeembeheerders NMI vaak als mechanisme voor het opsporen of oplossen van problemen met systemen die niet reageren.
De seriële console kan worden gebruikt om een NMI naar een virtuele Machine van Azure te verzenden 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 die het besturingssysteem ontvangt een NMI.
NMI inschakelen
Voor Linux-systemen die sysctl ondersteunen voor het configureren van kernelparameters, kunt u een paniek inschakelen bij het ontvangen van deze NMI met behulp van het volgende:
- Deze regel toevoegen aan /etc/sysctl.conf
kernel.panic_on_unrecovered_nmi=1
- Sysctl opnieuw opstarten of bijwerken door het uitvoeren van
sysctl -p
Zie de documentatie voor /proc/sys/kernel/*voor meer informatie over Linux-kernelconfiguraties, waaronder unknown_nmi_panic
, panic_on_io_nmi
en . panic_on_unrecovered_nmi
Zie de onderstaande koppelingen voor informatie over distributiespecifieke documentatie over NMI en stappen voor het configureren van Linux voor het maken van een crashdump wanneer er een NMI wordt ontvangen:
Ubuntu
Red Hat
- Wat is een NMI en waarvoor kan ik deze gebruiken?
- Hoe kan ik mijn systeem zo configureren dat het vastloopt wanneer de NMI-switch wordt gepusht?
- Beheerdershandleiding voor crashdumps
SUSE
CoreOS
Volgende stappen
- Hier vindt u de hoofdpagina voor de linux-documentatie van de seriële console.
- Seriële console gebruiken om op te starten in GRUB en de modus voor één gebruiker in te voeren
- De seriële console is ook beschikbaar voor Windows-VM's
- Meer informatie over diagnostische gegevens over opstarten
Contact met ons opnemen voor ondersteuning
Als u vragen hebt of hulp nodig hebt, maakt u een ondersteuningsaanvraag of stelt u ondersteuning voor de Azure-community. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.