GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare kdump in Oracle Enterprise Linux (OEL 5,6)

Quando il meccanismo di crash dump di kdump è abilitato, il sistema viene avviato dal contesto di un altro kernel. Questo secondo kernel riserva una piccola quantità di memoria e il suo unico scopo è catturare l'immagine del core dump in caso di crash del sistema.

Essere in grado di analizzare il core dump in modo significativo aiuta a determinare la causa esatta dell'errore di sistema, quindi si consiglia vivamente di abilitare questa funzione. Questo capitolo spiega come configurare, testare e utilizzare il servizio kdump in Red Hat Enterprise Linux e fornisce una breve panoramica su come analizzare il core dump risultante utilizzando l'utility di debug dei crash.

Installazione del servizio kdump

Per utilizzare il servizio kdump sul tuo sistema, assicurati di avere gli kexec-tools pacchetto installato. Per farlo, digita quanto segue al prompt della shell come root:

# yum install kexec-tools

Configurazione del servizio kdump

Configurazione dell'utilizzo della memoria

Per configurare la quantità di memoria da riservare per il kernel kdump, modifica /boot/grub/grub.conf file e aggiungi crashkernel=[size]M o crashkernel=auto . Nota che l'opzione crashkernel=auto riserva la memoria solo se la memoria fisica del sistema è uguale o maggiore di:

  • 2 GB su architetture x86 a 32 e 64 bit

Un esempio di file /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/sda3 crashkernel=128M
        initrd /initramfs-2.6.32-220.el6.x86_64.img

Configurazione del tipo di destinazione

Quando viene acquisito un arresto anomalo del kernel, il core dump può essere archiviato come file in un file system locale, scritto direttamente su un dispositivo o inviato su una rete utilizzando il protocollo NFS (Network File System) o SSH (Secure Shell). Al momento è possibile impostare solo una di queste opzioni e l'opzione predefinita è memorizzare il file vmcore in /var/crash/ directory del file system locale. Per cambiarlo, come root, apri il file di configurazione /etc/kdump.conf in un editor di testo e modifica le opzioni come descritto di seguito.

Per modificare la directory locale in cui salvare il core dump, rimuovere il segno hash ("#") dall'inizio della #path /var/crash line e sostituire il valore con il percorso della directory desiderato. Facoltativamente, se desideri scrivere il file su una partizione diversa, segui la stessa procedura anche con la riga #ext4 /dev/sda3 e cambia sia il tipo di file system che il dispositivo (un nome dispositivo, un'etichetta di file system, e UUID sono tutti supportati) di conseguenza. Ad esempio:

ext3 /dev/sda4
path /usr/local/cores

Per scrivere il dump direttamente su un dispositivo, rimuovi il segno hash ("#") dall'inizio della riga #raw /dev/sda5 e sostituisci il valore con il nome del dispositivo desiderato. Ad esempio:

raw /dev/sdb1

Per archiviare il dump su una macchina remota utilizzando il protocollo NFS, rimuovere il segno hash ("#") dall'inizio della riga #net my.server.com:/export/tmp e sostituire il valore con un nome host valido e il percorso della directory. Ad esempio:

net penguin.example.com:/export/cores

Per archiviare il dump su una macchina remota utilizzando il protocollo SSH, rimuovere il segno hash ("#") dall'inizio della riga #net [email protected] e sostituire il valore con un nome utente e un nome host validi . Ad esempio:

net [email protected]

Quando si trasferisce un file core a una destinazione remota tramite SSH, il file core deve essere serializzato per il trasferimento. Questo crea un file vmcore.flat nella directory /var/crash/ sul sistema di destinazione, che è illeggibile dall'utilità di arresto anomalo. Per convertire vmcore.flat in un file di dump leggibile in caso di arresto anomalo, esegui il seguente comando come root sul sistema di destinazione:

# /usr/sbin/makedumpfile -R */tmp/vmcore-rearranged* < *vmcore.flat*

Configurazione del Core Collector

Per ridurre la dimensione del file di dump di vmcore, kdump ti consente di specificare un'applicazione esterna (cioè un raccoglitore di core) per comprimere i dati e opzionalmente omettere tutte le informazioni irrilevanti. Attualmente, l'unico core collector completamente supportato è makedumpfile.

Per abilitare il core collector, come root, apri il file di configurazione /etc/kdump.conf in un editor di testo, rimuovi il segno hash ("#") dall'inizio del #core_collector makedumpfile -c --message-level 1 - d 31 e modificare le opzioni della riga di comando come descritto di seguito.

Per abilitare la compressione del file di dump, aggiungere il parametro -c. Ad esempio:

core_collector makedumpfile -c

Per rimuovere sia le pagine zero che quelle libere, utilizza quanto segue:

core_collector makedumpfile -d 17 -c

Fare riferimento alla pagina man di makedumpfile per un elenco completo delle opzioni disponibili.

Modifica dell'azione predefinita

Per impostazione predefinita, quando kdump non riesce a creare un core dump, il file system di root viene montato e /sbin/init viene eseguito. Per modificare questo comportamento, come root, apri il file di configurazione /etc/kdump.conf in un editor di testo, rimuovi il segno cancelletto ("#") dall'inizio della riga della shell #default e sostituisci il valore con un'azione desiderata come descritto di seguito:

Azioni supportate

Opzione Descrizione
riavvia Riavvia il sistema, perdendo il core nel processo.
fermati Arresta il sistema.
spegnimento Spegnere il sistema.
conchiglia Esegui la sessione msh dall'interno di initramfs, consentendo a un utente di registrare il core manualmente.

Ad esempio:

default halt

Abilitazione del Servizio

Per avviare il demone kdump all'avvio, digita quanto segue al prompt della shell come root:

# chkconfig kdump on

Ciò abiliterà il servizio per i runlevel 2, 3, 4 e 5. Allo stesso modo, digitando "chkconfig kdump off" lo disabiliterà per tutti i runlevel. Per avviare il servizio nella sessione corrente, utilizzare il seguente comando come root:

# service kdump start

Test della configurazione

I comandi seguenti causeranno l'arresto anomalo del kernel. Prestare attenzione quando si seguono questi passaggi e non utilizzarli in alcun modo su una macchina di produzione. Per testare la configurazione, riavvia il sistema con kdump abilitato e assicurati che il servizio sia in esecuzione:

# service kdump status
Kdump is operational

Quindi digita i seguenti comandi al prompt della shell:

# echo 1 > /proc/sys/kernel/sysrq
# echo c > /proc/sysrq-trigger

Ciò forzerà il crash del kernel Linux e il file address-YYYY-MM-DD-HH:MM:SS/vmcore verrà copiato nella posizione che hai selezionato nella configurazione (cioè in /var/crash/ da predefinito).


Linux
  1. Come configurare la virtualizzazione su Redhat Linux

  2. Come aumentare il numero di inode del disco in Linux

  3. Come modificare l'ID macchina di un sistema in Oracle Enterprise Linux 7

  4. Come configurare YUM per la connessione a Oracle Public Repository in Oracle Enterprise Linux

  5. Come montare e smontare un file system in Linux

Come installare e configurare Redis su un sistema Linux

Come installare e configurare AnyDesk su sistema Linux

Come installare e configurare Django su sistema Linux

Come installare e configurare PrestaShop su sistema Linux

Come configurare l'indirizzo IP statico su un sistema Linux

Come installare e configurare Elasticsearch su sistema Linux