Co je to kdump a Kexec
Kdump je mechanismus dumpingu při selhání jádra Linuxu. V případě zhroucení systému Kdump poskytuje obraz výpisu paměti (vmcore). Tento obrázek může pomoci při určování příčiny havárie. Důrazně doporučujeme povolit funkci Kdump.
Kexec a Kdump společně zajišťují rychlejší spouštění a vytváření spolehlivých jader vmcore pro diagnostické účely. 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 vždy, když dojde k pádu systému. Výpis zhroucení je zachycen z kontextu čerstvě spouštěného jádra a ne z kontextu havarovaného jádra. Toto druhé jádro se spouští s velmi malou pamětí a zachycuje obraz výpisu.
Instalace a konfigurace kdump
Chcete-li povolit a používat Kdump, nainstalujte následující balíček:
# yum install kexec-tools
Povolení Kdump vyžaduje, abyste vyhradili část systémové paměti pro jádro pro zachycení. Tato část paměti není k dispozici pro jiné použití. Množství paměti, které je vyhrazeno pro jádro Kdump, je reprezentováno spouštěcím parametrem crashkernel. Toto je připojeno k řádku jádra v konfiguračním souboru GRUB, /boot/grub2/grub.cfg . Následující příklad povolí Kdump a rezervuje 128 MB paměti:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=128M
Kromě rezervování paměti můžete určit počáteční adresu (offset) této rezervované paměti. Například přidání následující možnosti do řádku jádra vyhradí 128 MB paměti počínaje fyzickou adresou 0x01000000 (16 MB):
crashkernel=128M@16M
– Nastavení posunu na 48M:
crashkernel=128M@48M
– Pokud máte více než 128 GB RAM, použijte následující nastavení:
crashkernel=512M@64M
– Pokud potřebujete větší kontrolu nad velikostí a umístěním vyhrazené paměti, použijte následující formát:
crashkernel=range1:size1[,range2:size2,...][@offset]
– Hodnota range[n] určuje rozsah hodnot, které se shodují s množstvím fyzické paměti RAM přítomné v systému. Odpovídající hodnota size[n] určuje množství paměti Kexec, které se má rezervovat.
– Následující příklad říká Kexecu, aby vyhradil 64 MB paměti RAM, pokud systém obsahuje 512 MB až 2 GB paměti. Pokud systém obsahuje více než 2 GB fyzické paměti, vyhraďte si 128 MB:
crashkernel=512M-2G:64M,2G-:128M
– Na systémech x86_64 s alespoň 2 GB paměti můžete paměť pro kdump přidělit automaticky. K automatickému přidělení paměti pro kdump použijte následující parametr:
crashkernel=auto
Povolení kdump
Po přidání parametru crashkernel do souboru /boot/grub2/grub.cfg restartujte systém, aby byla paměť vyhrazena pro jádro pro zachycení. Funkce „zdarma –m ” správně ukazuje, že pro systém je k dispozici méně paměti.
Pomocí příkazu systemctl povolte spuštění služby Kdump v době spouštění. Ke spuštění služby Kdump použijte příkaz systemctl.
# systemctl enable kdump # systemctl start kdump
Toto načte váš kernel-kdump image přes Kexec, takže váš systém bude připraven zachytit vmcore při zhroucení.
Vygenerovat vynucený výpis z havárie
Konfiguraci kdump můžete otestovat vynuceným zhroucením systému pomocí následujícího příkazu:
# echo c > /proc/sysrq-trigger
To způsobí, že se zobrazí panický výstup a následně se systém restartuje do jádra Kdump. Když se zaváděcí proces dostane do bodu, kde spustí službu Kdump, vmcore se zkopíruje na disk do výchozího umístění, /var/crash/[RRRR-MM-DD-HH:MM]/vmcore. Systém se poté restartuje zpět do normálního jádra.
Poznámka :Kdump není podporován na hostech Xen domU. Virtualizované systémy mohou použít příkaz xm dump-core pro paniky.CentOS / RHEL 7 :Jak nakonfigurovat kdumpCentOS / RHEL 6 :Jak nakonfigurovat kdump
CentOS / RHEL 5 :Jak nakonfigurovat kdump
Porozumění konfiguračnímu souboru kdump /etc/kdump.conf