Invio di un interrupt diagnostico
Puoi inviare un interrupt diagnostico per risolvere i problemi di un'istanza di virtual machine (VM) di computazione che non risponde o non è raggiungibile.
Questa funzionalità è destinata agli utenti esperti. L'invio di un interrupt diagnostico a un sistema attivo può causare il danneggiamento dei dati o il guasto del sistema.
Un interrupt diagnostico causa l'arresto anomalo e il riavvio del sistema operativo dell'istanza. Prima di inviare un interrupt diagnostico, è necessario configurare il sistema operativo per generare un crash dump (denominato anche file di dump della memoria) quando si verifica un arresto anomalo. Il crash dump acquisisce informazioni sullo stato del sistema operativo al momento del crash. Dopo il riavvio del sistema operativo, è possibile analizzare il crash dump per identificare ed eseguire il debug del problema.
Per ulteriori informazioni sulla risoluzione dei problemi mediante i crash dump, vedere: Raccolta dei crash dump mediante la utility Kdump.
Criteri IAM necessari
Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere un membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario se si utilizza la console o l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, verificare con l'amministratore della tenancy il tipo di accesso di cui si dispone e il compartimento in cui funziona l'accesso.
Per gli amministratori: il criterio in Consenti agli utenti di avviare le istanze di computazione include la possibilità di inviare un interrupt diagnostico a un'istanza. Se il gruppo specificato non deve avviare istanze o collegare volumi, è possibile semplificare il criterio in modo che includa solo manage instance-family
e rimuovere le istruzioni che coinvolgono volume-family
e virtual-network-family
.
Informazioni preliminari
- Il sistema operativo dell'istanza deve essere configurato per generare un file di crash dump.
- Lo stato dell'istanza deve essere In esecuzione. Per ulteriori informazioni, vedere Arresto, avvio o riavvio di un'istanza.
- Non sono presenti azioni in corso che influiscono sull'istanza, ad esempio volumi a blocchi o VNIC secondarie, durante il processo di collegamento o scollegamento.
Configurazione del sistema operativo per generare un crash dump
Prima di inviare un interrupt diagnostico a un'istanza, è necessario configurare il sistema operativo in modo che generi un crash dump quando si verifica un arresto anomalo. L'interrupt diagnostico viene ricevuto come interrupt non mascherabile (NMI) nell'istanza di destinazione.
I passaggi dipendono dal sistema operativo.
Linux
Nelle immagini della piattaforma di Oracle Linux, il sistema operativo è completamente configurato o parzialmente configurato per generare un crash dump, a seconda della data di rilascio dell'immagine.
- Immagini rilasciate ad agosto 2020 o versioni successive: l'immagine è completamente configurata per generare un crash dump.
- Immagini precedenti: il kernel di dump-capture è installato e configurato, ma è necessario eseguire gli altri passi di configurazione.
- Immagini rilasciate ad agosto 2020 o versioni successive: l'immagine è completamente configurata per generare un crash dump.
- Immagini precedenti: il kernel di dump-capture è installato e configurato, ma è necessario eseguire gli altri passi di configurazione.
- Connettersi all'istanza.
- Installare e configurare il kernel di dump-capture:
- Installare
kdump
ekexec
eseguendo il comando seguente:sudo yum install kexec-tools
- Riservare la memoria sul kernel per salvare il crash dump. Procedere come segue:
- Aprire il file
etc/default/grub
in un editor di testo. - Nella riga che inizia con
GRUB_CMDLINE_LINUX_DEFAULT
, aggiungere il parametrocrashkernel=<memory-to-reserve>
. Ad esempio, per riservare 100 MB, aggiungerecrashkernel=100M
. - Salvare le modifiche e chiudere il file.
- Ricreare il file GRUB eseguendo il comando seguente:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Aprire il file
- Installare
- Configurare il kernel da arrestare quando riceve un interrupt diagnostico. A tale scopo, aprire il file
/etc/sysctl.conf
in un editor di testo e aggiungere la riga seguente:kernel.unknown_nmi_panic=1
- Applicare le modifiche a
/etc/sysctl.conf
eseguendo il comando seguente:sysctl -p
Windows Server - Immagine della piattaforma
Se si utilizza un'immagine della piattaforma di Windows Server rilasciata ad aprile 2020 o versioni successive, l'immagine è già configurata per generare un crash dump.
Se si utilizza un'immagine rilasciata prima di aprile 2020, effettuare le operazioni riportate di seguito.
- Connettersi all'istanza.
- Scarica i driver Oracle VirtIO per Microsoft Windows.
- Installare i driver, quindi riavviare l'istanza.
Windows Server - Immagine fornita dal cliente
Per ulteriori informazioni, consultare la documentazione di terze parti relativa al sistema operativo.
Invio di un interrupt diagnostico
Dopo aver configurato il sistema operativo dell'istanza per generare un crash dump in caso di arresto anomalo, utilizzare le procedure riportate di seguito per inviare un interrupt diagnostico.
Per inviare un interrupt diagnostico mediante la console
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Fare clic sull'istanza a cui si è interessati.
-
Fare clic su Altre azioni, quindi su Invia interrupt diagnostico.
Attenzione
L'invio di un interrupt diagnostico a un sistema attivo può causare il danneggiamento dei dati o un errore di sistema. -
Rivedere il messaggio di conferma, quindi fare clic su Send diagnostic interrupt.
Lo stato del ciclo di vita visualizzato nella console rimane In esecuzione mentre il sistema operativo dell'istanza si blocca e si riavvia. Non inviare più interrupt diagnostici.
- Attendere alcuni minuti per il riavvio del sistema operativo dell'istanza, quindi connettersi all'istanza. A questo punto è possibile recuperare e analizzare il crash dump.
Per inviare un interrupt diagnostico mediante l'API
Utilizzare l'operazione InstanceAction, passando il valore SENDDIAGNOSTICINTERRUPT
come azione da eseguire.
Analisi di un crash dump
Il crash dump viene salvato localmente nel sistema operativo dell'istanza.
-
Istanze Linux: la posizione predefinita in cui viene salvato il crash dump dipende dal sistema operativo.
- Oracle Linux 8: salvato in
/var/oled/crash
. - Oracle Linux 7: per le immagini della piattaforma rilasciate a marzo 2021 o versioni successive, salvate in
/var/crash
. Per le immagini della piattaforma meno recenti, salvate in/var/oled/crash
. - Altri sistemi operativi Linux e di tipo UNIX: salvato in
/var/crash/
.
Per modificare la posizione, modificare il file
/etc/kdump.conf
. - Oracle Linux 8: salvato in
- Istanze di Windows: il crash dump viene salvato in
%SystemRoot%memory.dmp
. Nella maggior parte dei sistemi Windows, questo èC:\Windows\memory.dmp
.
Per analizzare il crash dump, utilizzare uno strumento di terze parti, ad esempio la utility crash nelle istanze Linux o WinDbg nelle istanze Windows.