Kdump je pokročilý mechanismus havárie. Je-li povoleno, systém se spouští z kontextu jiného jádra. Toto druhé jádro si vyhrazuje malé množství paměti a jeho jediným účelem je zachytit obraz výpisu jádra pro případ, že dojde k pádu systému. Protože schopnost analyzovat výpis jádra významně pomáhá určit přesnou příčinu selhání systému, důrazně doporučujeme mít tuto funkci povolenou.
1. Nainstalujte kexec-tools
Kexec je mechanismus rychlého spouštění, který umožňuje zavádění linuxového jádra z kontextu již běžícího jádra bez procházení BIOSu. Kdump používá kexec k zavedení druhého jádra, kdykoli systém spadne.
# up2date --nox -u kexec-tools Fetching Obsoletes list for channel: el5_i386_latest... ######################################## Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- kexec-tools 1.101 194.4.el5.0.1 i386 Testing package set / solving RPM inter-dependencies... ######################################## kexec-tools-1.101-194.4.el5 ########################## Done. Preparing ########################################### [100%] Installing... 1:kexec-tools ########################################### [100%]
2. Zkontrolujte soubor /boot/config-`uname -r`
Zadané hodnoty by měly znamenat, že kexec je povoleno a toto jádro lze použít jako jádro při selhání:
# cat /boot/config-`uname -r` CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y ...
3. Upravte jádro systému tak, aby bylo vyhrazeno místo pro zhroucené jádro
Upravte soubor /etc/grub.conf a přidejte „crashkernel=128M@16M“ do řádku jádra, abyste si vyhradili 128 MB paměti, počínaje fyzickou adresou 0x01000000 (16 MB)
# vi /etc/grub.conf ... title Red Hat Enterprise Linux Server (2.6.18-8.el5) root (hd0,0) kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M initrd /initrd-2.6.18-8.el5.img ...
Velikost rezervované paměti se může lišit v závislosti na velikosti paměti v systému.
4. Určete, kde má být vytvořeno vmcore
V souboru /etc/kdump.conf lze zadat různé typy cílových umístění výpisu. V tomto souboru můžete zadat libovolný adresář. Například:
path /usr/local/cores
Následuje ukázkový záznam, který používá NFS jako umístění pro cíl výpisu. Například níže připojí systém souborů a zkopíruje
soubor vmcore na server NFS
net my.server.com:/export/tmp
Další možnosti naleznete v /etc/kdump.conf.
5. Aktualizujte konfigurační soubor kdump – /etc/sysconfig/kdump (volitelné)
Tento soubor definuje specifikaci dump-capture jádra, včetně jeho názvu/umístění a příkazového řádku pro jádro, pokud se má lišit od aktuálně běžícího jádra.
# cat /etc/sysconfig/kdump KDUMP_KERNELVER="" KDUMP_COMMANDLINE="" KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1" KEXEC_ARGS=" --args-linux" KDUMP_BOOTDIR="/boot" KDUMP_IMG="vmlinuz"
KDUMP_COMMANDLINE modify the default crash kernel command line from /proc/cmdline KDUMP_COMMANDLINE_APPEND adds irqpoll and maxcpus=1 to the command line for the crash kernel KEXEC_ARGS adds --args-linux to the kexec command line KDUMP_BOOTDIR is set to /boot KDUMP_IMG specifies the crash kernel image name, defaulting to /boot/vmlinuz with the current kernel version appended
6. Povolte službu kdump
Nastavit službu kdump lze spustit po restartování systému.
# chkconfig kdump on
Poznámka:nelze jej spustit, protože nový parametr jádra ještě není platný.
7. Restartujte systém, aby se konfigurace kdump projevila
Ověřte, že je kdump aktivní:
# cat /proc/cmdline ro root=/dev/VolGroup00/LogVol00 rhgb quiet crashkernel=128M@16M
# /etc/init.d/kdump status Kdump is operational
# /sbin/chkconfig --list |grep kdump kdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off
8. Otestujte kdump zhroucením systému
# echo c > /proc/sysrq-trigger
To způsobí, že jádro propadne panice a následně se systém restartuje do jádra kdump. Když se proces zavádění dostane do bodu, kdy spustí službu kdump, měl by být soubor vmcore zkopírován na disk do umístění určeného v souboru /etc/kdump.conf.
CentOS / RHEL 6 :Jak nakonfigurovat kdumpCentOS / RHEL 7 :Jak nakonfigurovat kdump
Jak nakonfigurovat Kdump na SuSE Linux Enterprise System 10 a 11