segunda-feira, 27 de julho de 2009

Configurando KDUMP no RH 5

KEXEC é um mecamisno de fast boot que permite iniciar um kernel Linux a partir de um kernel já em execução sem passar pela BIOS.

KDUMP é um novo mecanismo de kernel crash dump, capturando o dump utilizando o kexec inicializando em um segundo kernel sempre que o sistema falha, inicializa com pouca memória e captura o dump image.

Instalando KDUMP

# yum install kexec-tools
ou
# rpm -ivh kexec-tools-1.102pre-56.el5_3.2.x86_64.rpm

Para configurar o KUMP, basta editar o arquivo /etc/kdump.conf

Salvando o dump diretamento no device

raw devicename

Salvando o dump em arquivo

ext3 /dev/sda1

Isto fará com que o kdump monte do device /dev/sda1 em /var/crash com file system ext3

Podemos utilizar também um dump pela rede através de um device NFS

net server:/nfs/mount/point

E por último pode ser feito um dump através da rede utilizando o SSH

net user@server

Para esta opção é necessário configurar uma chave pública para o acesso via SSH, utilizando o comando abaixo:

service kdump propagate

Especificando páginas de seleção e compressão

Em sistemas de grande memórias é necessário descartar páginas que não são necessárias e comprimir as páginas restantes, isto é definido no kdump.conf conforme configuração abaixo:

zero pages = 1
cache pages = 2
cache private = 4
user pages = 8
free pages = 16

#core_collector makedumpfile -d 1 # throw out zero pages (containing no data)
#core_collector makedumpfile -d 31 # throw out all trival pages
#core_collector makedumpfile -c # compress all pages, but leave them all
core_collector makedumpfile -d 31 -c # throw out trival pages and compress (recommended)

NOTA: Utilizando as opções -d e -c aumenta o tempo necessário para reunir as cores.

Alterando parâmetros de boot

Faz-se necessário para reservar uma quantidade de memória para captura do kernel.
Para arquiteturas i386 and x86_64 editamos o /etc/grub.conf e adicionamos o parâmetro crashkernel=128M@16M no final da linha do kernel.

Exemplo:


default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Client (2.6.17-1.2519.4.21.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M
initrd /boot/initrd-2.6.17-1.2519.4.21.el5.img


Testes de funcionalidade

Inicializamos o kdump

# chkconfig kdump on
# service kdump start

Forçando um crash do sistema via sysrq

# echo “c” > /proc/sysrq-trigger

Será gerado um kernel panic e logo após reiniciando o sistema no kdump kernel, copiando o vmcore para o local especificado no /etc/kdump.conf.

OBS.:

Console frame-buffers e X serão trucados quando o kernel for iniciado através do kexec, isto se aplicar para configurações como por exemplo “vga=791″ na linha de configuração do kernel.
Quando o sistema reiniciar o video deverá ser ser restabelecido a normalidade.

Nenhum comentário:

Postar um comentário