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.

Attenzione

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.

Suggerimento

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.

Se non si ha familiarità con i criteri, vedere Gestione dei domini di Identity e Criteri comuni. Per il materiale di riferimento sulla scrittura di criteri per istanze, reti cloud o altre risorse API di Core Services, vedere Dettagli per i servizi di base.

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

Nota

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.

Oracle Linux 8
  • 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.
Oracle Linux 7
  • 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.
  1. Connettersi all'istanza.
  2. Installare e configurare il kernel di dump-capture:
    1. Installare kdump e kexec eseguendo il comando seguente:
      sudo yum install kexec-tools
    2. Riservare la memoria sul kernel per salvare il crash dump. Procedere come segue:
      1. Aprire il file etc/default/grub in un editor di testo.
      2. Nella riga che inizia con GRUB_CMDLINE_LINUX_DEFAULT, aggiungere il parametro crashkernel=<memory-to-reserve>. Ad esempio, per riservare 100 MB, aggiungere crashkernel=100M.
      3. Salvare le modifiche e chiudere il file.
      4. Ricreare il file GRUB eseguendo il comando seguente:
        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  3. 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
  4. 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.

  1. Connettersi all'istanza.
  2. Scarica i driver Oracle VirtIO per Microsoft Windows.
  3. 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

  1. Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
  2. Fare clic sull'istanza a cui si è interessati.
  3. 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.
  4. 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.

  5. 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.

  • 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.