Perché la mia istanza Linux EC2 è irraggiungibile e non supera i controlli di stato?

9 minuti di lettura
0

La mia istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) è irraggiungibile e non supera uno o entrambi i controlli di stato.

Breve descrizione

Amazon EC2 utilizza due controlli per monitorare lo stato delle istanze EC2:

Controllo dello stato del sistema

Il controllo dello stato del sistema rileva problemi con l'hardware sottostante di un'istanza. Se l'hardware sottostante non risponde o è irraggiungibile a causa di problemi di rete, hardware o software, il controllo dello stato del sistema fallisce.

Controllo dello stato dell'istanza

Un errore del controllo dello stato dell'istanza indica che l'istanza non è raggiungibile. I seguenti problemi comuni causano un errore del controllo dello stato dell'istanza:

  • Mancato avvio del sistema operativo (OS)
  • Errato montaggio dei volumi
  • CPU e memoria esaurite
  • Kernel panic
  • Errore di rete

Avvertenza: alcune delle seguenti risoluzioni richiedono l'arresto e l'avvio dell'istanza. Prima di arrestare e avviare l'istanza, prendi nota delle seguenti condizioni:

  • I dati archiviati nei volumi dell'archivio dell'istanza vengono persi quando l'istanza viene interrotta. Prima di interrompere l'istanza, assicurati di eseguire il backup dei dati. A differenza dei volumi supportati da Amazon Elastic Block Store (Amazon EBS), i volumi dell'archivio dell'istanza sono temporanei e non supportano la persistenza dei dati.
  • L'indirizzo IPv4 statico pubblico che Amazon EC2 ha assegnato automaticamente all'istanza al lancio o all'avvio dell'istanza cambia dopo l'arresto e l'avvio. Per conservare un indirizzo IPv4 pubblico immutato se l'istanza viene interrotta, usa un indirizzo IP elastico.

Per ulteriori informazioni consulta la sezione Prerequisiti per arrestare un'istanza.

Risoluzione

Per determinare se il controllo dello stato dell'istanza o il controllo dello stato del sistema non sono riusciti, visualizza le metriche di controllo dello stato dell'istanza.

Se il controllo dello stato del sistema non è riuscito, consulta la sezione La mia istanza Linux EC2 non ha superato il controllo dello stato del sistema. Come posso risolvere questo problema?

Se il controllo dello stato dell'istanza non è riuscito, controlla i log di sistema dell'istanza per determinare la causa dell'errore. Quindi utilizza una delle seguenti soluzioni per risolvere il problema.

Mancato avvio del sistema operativo

Se i log di sistema contengono errori di avvio, consulta la sezione I controlli dello stato delle istanze sulla mia istanza Linux EC2 hanno esito negativo a causa di problemi del sistema operativo. In che modo posso risolvere il problema?

Errato montaggio dei volumi

Un errore nel punto di montaggio potrebbe causare il fallimento del controllo dello stato dell'istanza.

Esempio di errore nel punto di montaggio:

[FAILED] Failed to mount /
See 'systemctl status mnt-nvme0n1p1.mount' for details.
[DEPEND] Dependency failed for Local File Systems.

Per ulteriori informazioni consulta i seguenti articoli dell'AWS Knowledge Center:

Quando si modifica un tipo di istanza da Xen a Nitro, il montaggio del volume potrebbe fallire. L'errore di montaggio si verifica perché i volumi di Amazon EBS sono esposti come dispositivi a blocchi NVMe su istanze basate su Nitro. I nomi dei dispositivi sono /dev/nvme0n1, /dev/nvme1n1 e così via. I nomi dei dispositivi specificati in una mappatura dei dispositivi a blocchi vengono rinominati in nomi di dispositivi NVMe (/dev/nvme[0-26]n1). Il driver del dispositivo a blocchi potrebbe assegnare i nomi dei dispositivi NVMe in un ordine diverso dall'ordine originale specificato nella mappatura dei dispositivi a blocchi. Per evitare errori di montaggio sulle istanze basate su Nitro è consigliabile utilizzare un'etichetta o un UUID per i nomi dei dispositivi. Per ulteriori informazioni consulta la sezione Rendere un volume Amazon EBS disponibile per l'utilizzo in Linux.

CPU e memoria esaurite

Utilizzo elevato della CPU

Se la metrica di utilizzo della CPU è pari o vicina al 100%, l'istanza potrebbe non avere una capacità di calcolo sufficiente per eseguire il kernel.

Per le istanze T2 o T3, controlla i parametri di credito della CPU di Amazon CloudWatch per determinare se i crediti UPC sono pari o vicini allo zero. Se i crediti CPU sono pari a zero, il parametro CPUUtilization mostrerà un plateau di saturazione al livello delle prestazioni di base dell'istanza. Le prestazioni di base potrebbero essere del 20%, del 40% o così via, a seconda del tipo di istanza.

L'utilizzo della CPU pari o vicino al 100% o a un plateau di saturazione per le istanze T2 o T3 indica che il controllo dello stato non è riuscito a causa dell'eccessivo utilizzo delle risorse. Per risolvere questo problema, consulta la sezione La mia istanza Linux EC2 non ha superato la verifica dello stato dell'istanza a causa dell'eccessivo utilizzo delle sue risorse. Come faccio a risolvere questo problema?

Gli errori dei dispositivi a blocchi, i bug del software o il kernel panic potrebbero causare un insolito picco di utilizzo della CPU. Se l'utilizzo della CPU è al 100%, controlla i log di sistema per individuare eventuali errori dei dispositivi a blocchi o della memoria oppure altri errori insoliti del sistema. Quindi riavvia oppure arresta e avvia l'istanza.

Memoria esaurita

L'elevata pressione della memoria potrebbe causare un errore nel controllo dello stato dell'istanza. Nell'esempio seguente, la voce di registro indica che la memoria del sistema operativo è esaurita. Per risolvere questo errore, interrompi il processo che consuma più memoria.

[115879.769795] Out of memory: kill process 20273 (httpd) score 1285879 or a child
[115879.769795] Killed process 1917 (php-cgi) vsz:467184kB, anon-rss:101196kB, file-rss:204kB

Per impostazione predefinita, i parametri del disco e della memoria delle istanze EC2 non vengono inviati ad Amazon CloudWatch. Tuttavia, puoi utilizzare l'agente CloudWatch per raccogliere e monitorare metriche aggiuntive.

Per risolvere il problema dell'esaurimento della memoria, aggiorna l'istanza a un tipo di istanza più grande. In alternativa, aggiungi lo spazio di swap all'istanza per ridurre la pressione della memoria. Per ulteriori informazioni consulta i seguenti articoli dell'AWS Knowledge Center:

Errori di disco pieno

Se i log di sistema contengono errori di disco pieno, l'istanza sarà entrata in modalità di emergenza a causa di un dispositivo root pieno.

Esempio di registro di sistema:

$: service apache2 restart
Error: No space left on device

$: /etc/init.d/mysql restart
[....] Restarting mysql (via systemctl): mysql.serviceError: No space left on device


root@example:~# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.7G  7.7G     0 100% /

Per istruzioni dettagliate su come affrontare e risolvere gli errori relativi al disco pieno, consulta i seguenti articoli dell'AWS Knowledge Center:

Kernel panic

Il kernel panic si verifica quando il kernel rileva un errore interno irreversibile durante il funzionamento. Se l'errore si verifica durante l'avvio del sistema operativo, il kernel potrebbe non caricarsi correttamente. Ciò causa un errore di avvio del sistema operativo.

Esempio di messaggio di errore kernel panic:

Linux version
2.6.16-xenU (builder@xenbat.amazonsa) (gcc version 4.0.1 20050727 (Red Hat4.0.1-5)) #1 SMP Mon May 28 03:41:49 SAST 2007
Kernel command
line:  root=/dev/sda1 ro 4
Registering block device major 8
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)

Per informazioni su come affrontare e risolvere un errore di kernel panic, consulta i seguenti articoli dell'AWS Knowledge Center:

Errore di rete

I seguenti motivi comuni potrebbero causare il malfunzionamento della rete.

Il pacchetto cloud-init non è installato sull'istanza

Il pacchetto cloud-init viene utilizzato per aggiornare le configurazioni di rete all'avvio.

Per correggere questo errore, esegui il comando seguente per installare il pacchetto cloud-init sulla tua istanza:

$ sudo yum install cloud-init

L'indirizzo MAC è codificato in un file di configurazione

Gli indirizzi MAC hardcoded si trovano nei file di configurazione di Linux e nei file di configurazione udev. Questi file si trovano generalmente nelle seguenti posizioni:

  • /etc/udev/rules.d/
  • /etc/udev/rules.d/70-persistent-net.rules
  • /etc/udev/rules.d/80-net-name-slot.rules

Per risolvere i problemi di rete causati da un indirizzo MAC hardcoded, rimuovi le voci o i file di configurazione. Ad esempio, esegui il comando seguente:

mv /etc/udev/rules.d/70-persistent-net.rules/root/

L'indirizzo IP è codificato in un file di configurazione

Quando crei un'Amazon Machine Image (AMI) da un'istanza con un indirizzo IP configurato staticamente, il file di configurazione potrebbe contenere un indirizzo IP hardcoded. 

Per correggere questo errore, imposta l'interfaccia di rete in modo che utilizzi il protocollo DHCP.

Nota: non puoi aggiornare le AMI esistenti. Prima di creare una nuova AMI è necessario impostare l'interfaccia di rete in modo che utilizzi il protocollo DHCP.

Mancano i driver di rete con tecnologia ENA o Intel

Per ulteriori informazioni sugli adattatori elastici di rete (ENA) o sui driver di rete Intel avanzati mancanti, consulta la sezione Abilitazione delle reti avanzate su Linux.

L'interfaccia di rete viene rinominata all'avvio

Per risolvere questo problema, aggiungi net.ifnames=0 alla riga di comando del kernel per disattivare i nomi prevedibili delle interfacce di rete. Per eseguire la variabile è necessario attivare una rete avanzata con l'ENA.

Per ulteriori informazioni sui problemi di rete, consulta la sezione Best practice per la configurazione delle interfacce di rete.

Informazioni correlate

Risoluzione dei problemi relativi alle istanze con esito negativo delle verifiche dello stato

Why is my EC2 Windows instance down with a system status check failure or status check 0/2?

Why is my EC2 Windows instance down with an instance status check failure?

Tipi di verifica dello stato

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa