Il meccanismo kdump è una funzionalità del kernel Linux, che ti permette di creare dump se il tuo kernel va in crash. Produce una copia esatta della memoria, che può essere analizzata per la causa principale dell'arresto anomalo. Questo è uno script che configura kdump (kernel dump). Kdump fornisce un dump della memoria in un file chiamato vmcore quando il kernel ha un problema critico. Vmcore è spesso necessario per indagare sul problema. Il dump di arresto anomalo viene catturato dal contesto di un kernel appena avviato, non dal contesto del kernel danneggiato. Kdump usa kexec per avviare un secondo kernel ogni volta che il sistema va in crash. Kexec è un meccanismo di avvio rapido che consente di riavviare un nuovo kernel Linux dal contesto di un kernel in esecuzione senza passare attraverso alcun firmware o avvio a caldo.
Questo post spiega i passaggi per risolvere i problemi comuni di kdump.
Verifica della configurazione di kdump
1. Verifica se il pacchetto kexec-tools è installato nel sistema.
# rpm -qa | grep kexec
2. Controlla la riga di comando del kernel nel kernel in esecuzione per il parametro 'crashkernel':
# cat /proc/cmdline
3. Verifica se la memoria è riservata per il crashkernel all'avvio del kernel:
# dmesg | grep Reserving
4. Controlla il percorso del dump:
# grep -v ^# /etc/kdump.conf
5. Verificare lo spazio di archiviazione disponibile sul filesystem specificato nel parametro path nel passaggio precedente:
# df -h
6. Controlla lo stato del servizio kdump:
# service kdump status ### In CentOS/RHEL 6 # systemctl status kdump ### In CentOS/RHEL 7
Quando il servizio kdump non è operativo
1. Verifica la configurazione di kdump seguendo la sezione precedente.
2. Avvia il servizio kdump
# service kdump status ### In CentOS/RHEL 6 # systemctl status kdump ### In CentOS/RHEL 7
3. Verificare l'errore dal terminale.
4. Ulteriori informazioni sull'errore di avvio del servizio kdump possono essere trovate in /var/log/messages .
Quando la configurazione di kdump va bene e lo stato del servizio kdump è operativo ma non viene generato alcun vmcore all'attivazione di un arresto anomalo
1. Modifica il file /etc/kdump.conf e aggiungi la riga seguente per ottenere una shell quando la generazione di vmcore fallisce:
default shell
2. Nella shell, controlla lo spazio di archiviazione disponibile, controlla se il filesystem di destinazione vmcore è montato e quindi prova a copiare manualmente vmcore e trova se fallisce.
# cp /proc/vmcore [destination]
Quando non si ottiene una shell e il crashkernel si blocca durante l'avvio
1. Controlla i messaggi sulla console e cerca i messaggi di avvio del crashkernel. Cerca dove è bloccato.
Crashkernel è lo stesso kernel che viene avviato all'avvio del sistema e quindi si vedrebbero messaggi simili ai normali messaggi di avvio del kernel ma con dispositivi limitati attivati. Es.:Solo 1 CPU è abilitata nel crashkernel. Viene rilevato solo il disco di archiviazione di destinazione.2. Se vengono visualizzati messaggi di errore di allocazione della pagina, è molto probabile che il crashkernel riservato non sia sufficiente e sia necessario aumentare il valore del parametro del kernel "crashkernel".