Usare la console seriale di Azure per le chiamate SysRq e NMI
Si applica a: ✔️ macchine virtuali Linux
Richiesta di sistema (SysRq)
Un SysRq è una sequenza di chiavi compresa dal kernel del sistema operativo Linux, che può attivare una serie di azioni predefinite. Questi comandi vengono spesso usati quando non è possibile eseguire la risoluzione dei problemi o il ripristino della macchina virtuale tramite l'amministrazione tradizionale (ad esempio, se la macchina virtuale non risponde). L'uso della funzionalità SysRq della console seriale di Azure imiterà la pressione del tasto SysRq e i caratteri immessi su una tastiera fisica.
Una volta consegnata la sequenza SysRq, la configurazione del kernel controllerà la risposta del sistema. Per informazioni sull'abilitazione e la disabilitazione di SysRq, vedere il testo | di SysRq Admin Guide markdown ( Guida all'amministratore SysRq).
La console seriale di Azure può essere usata per inviare un SysRq a una macchina virtuale di Azure usando l'icona della tastiera nella barra dei comandi mostrata di seguito.
Scegliendo "Invia comando SysRq" si aprirà una finestra di dialogo, che fornirà opzioni SysRq comuni o accetterà una sequenza di comandi SysRq immessi nella finestra di dialogo. Ciò consente a una serie di SysRq di eseguire un'operazione di alto livello come un riavvio sicuro utilizzando: REISUB
.
Il comando SysRq non può essere usato su macchine virtuali arrestate o il cui kernel è in uno stato di non risposta. (ad esempio un kernel panic).
Abilita SysRq
Come descritto nella Guida di amministrazione SysRq in precedenza, SysRq può essere configurato in modo che siano disponibili tutti, nessuno o solo alcuni comandi. Puoi abilitare tutti i comandi SysRq utilizzando il passaggio seguente, ma non sopravviverà a un riavvio:
echo "1" >/proc/sys/kernel/sysrq
Per rendere persistente la configurazione SysReq, puoi eseguire le seguenti operazioni per abilitare tutti i comandi SysRq
- Aggiunta di questa riga a /etc/sysctl.conf
kernel.sysrq = 1
- Riavvio o aggiornamento di sysctl eseguendo
sysctl -p
Tasti di comando
Dalla Guida all'amministrazione di SysRq sopra:
Comando | Funzione |
---|---|
b |
Riavvierà immediatamente il sistema senza sincronizzare o smontare i dischi. |
c |
Eseguirà un arresto anomalo del sistema tramite una dereferenziazione del puntatore NULL. Se configurato, verrà eseguito un crashdump. |
d |
Mostra tutti i blocchi mantenuti. |
e |
Invia un SIGTERM a tutti i processi, ad eccezione di init. |
f |
Chiamerà l'oom killer per terminare un processo hog della memoria, senza farsi prendere dal panico se non si può terminare qualcosa. |
g |
Utilizzato da kgdb (debug del kernel) |
h |
Verrà visualizzata la guida (anche qualsiasi tasto diverso da quelli elencati farà visualizzare la guida, ma h è più facile da ricordare. |
i |
Invia un SIGKILL a tutti i processi, ad eccezione di init. |
j |
Forzatamente "Basta scongelarlo" - filesystem congelati da FIFREEZE ioctl. |
k |
La Chiave di accesso sicuro (SAK) termina tutti i programmi sulla console virtuale corrente. NOTA: vedere i commenti importanti di seguito nella sezione SAK. |
l |
Mostra un backtrace dello stack per tutte le CPU attive. |
m |
Scaricherà le informazioni sulla memoria corrente sulla tua console. |
n |
Utilizzato per rendere le attività RT piacevoli |
o |
Spegnerà il sistema (se configurato e supportato). |
p |
Scaricherà i registri e i flag correnti sulla tua console. |
q |
Scaricherà gli elenchi per CPU di tutti i timer armati (ma NON i timer timer_list regolari) e le informazioni dettagliate su tutti i dispositivi clockevent. |
r |
Disattiva la modalità RAW della tastiera e la imposta su XLATE. |
s |
Tenterà di sincronizzare tutti i file system montati. |
t |
Scaricherà un elenco di attività correnti e le relative informazioni sulla tua console. |
u |
Tenterà di rimontare tutti i file system montati in sola lettura. |
v |
Ripristina forzatamente la console framebuffer |
v |
Causa il dump del buffer ETM [specifico per ARM] |
w |
Scarica le attività che si trovano in uno stato non interrompibile (bloccato). |
x |
Utilizzato dall'interfaccia xmon su piattaforme ppc/powerpc. Mostra i registri PMU globali su sparc64. Scarica tutte le voci TLB su MIPS. |
y |
Mostra registri CPU globali [specifici SPARC-64] |
z |
Esegue il dump del buffer ftrace |
0 -9 |
Imposta il livello di log della console, controllando quali messaggi del kernel verranno stampati sulla tua console. (0 , ad esempio, farebbe in modo che solo i messaggi di emergenza come PANIC o OOPS arrivino alla tua console.) |
Documentazione specifica per la distribuzione
Per la documentazione specifica della distribuzione su SysRq e i passaggi per configurare Linux per creare un crash dump quando riceve un comando SysRq "Crash", vedere i collegamenti seguenti:
Ubuntu
Red Hat
- Che cos'è la struttura SysRq e come si utilizza?
- Come utilizzare la struttura SysRq per raccogliere informazioni da un server RHEL
SUSE
CoreOS
Interrupt non mascherabile (NMI)
Un interrupt non mascherabile (NMI) è progettato per creare un segnale che il software su una macchina virtuale non ignorerà. Storicamente, gli NMI sono stati utilizzati per monitorare problemi hardware su sistemi che richiedevano tempi di risposta specifici. Oggi, i programmatori e gli amministratori di sistema utilizzano spesso NMI come meccanismo per eseguire il debug o risolvere i problemi dei sistemi che non rispondono.
La console seriale può essere usata per inviare un NMI a una macchina virtuale di Azure usando l'icona della tastiera nella barra dei comandi mostrata di seguito. Una volta consegnato l'NMI, la configurazione della macchina virtuale controllerà la risposta del sistema. I sistemi operativi Linux possono essere configurati per arrestarsi in modo anomalo e creare un dump della memoria il sistema operativo riceve un NMI.
Abilita NMI
Per i sistemi Linux che supportano sysctl per la configurazione dei parametri del kernel, è possibile abilitare un panic quando si riceve questo NMI effettuando quanto segue:
- Aggiunta di questa riga a /etc/sysctl.conf
kernel.panic_on_unrecovered_nmi=1
- Riavvio o aggiornamento di sysctl eseguendo
sysctl -p
Per ulteriori informazioni sulle configurazioni del kernel Linux, inclusi unknown_nmi_panic
, panic_on_io_nmi
e panic_on_unrecovered_nmi
, consultare: Documentazione per /proc/sys/kernel/*. Per la documentazione specifica della distribuzione su NMI e i passaggi per configurare Linux per creare un dump di arresto anomalo quando riceve un NMI, vedere i collegamenti seguenti:
Ubuntu
Red Hat
- Cos'è un NMI e per cosa posso usarlo?
- Come posso configurare il mio sistema in modo che si arresti in modo anomalo quando viene premuto l'interruttore NMI?
- Guida all'amministrazione del crash dump
SUSE
CoreOS
Passaggi successivi
- La pagina principale della documentazione di Serial Console Linux si trova qui.
- Usa la console seriale per avviare GRUB e accedere alla modalità utente singolo
- La console seriale è disponibile anche per le VM Windows
- Ulteriori informazioni sulla diagnostica di avvio
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.