Linux 5 系统配置kexec/kdump

概述


kexec是一个快速启动机制,允许通过已经运行的内核的崎岖文启动一个Linux内核,不必要颠末BIOS。BIOS也许会损耗很多工夫,出格是带有浩繁数量的外设的大型做事器。这种办法可认为常常启动呆板的开拓者勤俭很多工夫。


kdump是一个新的,并且非常可信托的内核瓦解转储机制。瓦解转储数据可以从一个新启动的内核的崎岖文中获取,而不是从已经瓦解的内核的崎岖文。当体系瓦解时,kdump应用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。


第一个内核生涯了内存的一部分,第二个内核可以用来启动。留意,在启动时,kdump生涯了肯定数量的重要的内存,这变化了�t帽企业Linux 5最小内存需求。为了打定体系必要的真正最小内存,可以参看  上列出的最小内存需求,加上kdump应用的内存数量,以决议真正的最小内存的需求。


由于第一个内核的内存内容已经被生涯,以是kexec可以不颠末BIOS,启动捕获内核。这是内核瓦解转储的基础。


怎样设置kdump


1.确认kexec-tools已经安装:


#rpm -q kexec-tools


2.设置/etc/kdump.conf文件,指定vmcore将被转储的路径。可以通过scp拷贝到另一个做事器,也可以是裸装备,可能内地的文件体系。


3.批改一些启动参数,为捕获很生涯一块内存。对付i386和x86_64架构,编辑/etc/grub.conf,在内核行的末端添加 crashkernel=128@16M。


下面是一个带有kdump选项的/etc/grub.conf文件:


# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE:  You do not have a /boot partition.  This means that#          all kernel and initrd paths are relative to /, eg.#          root (hd0,0)#          kernel /boot/vmlinuz-version ro root=/dev/hda1#          initrd /boot/initrd-version.img#boot=/dev/hdadefault=0timeout=5splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitle 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


4.批改之后,重启体系。128M内存(从16M起头)不被正常的体系应用,为捕获内核生涯。留意,free -m的输出会表现内存比不加参数时少了128M,这就是我们所祈望的。


留意:可以应用小于128M,但是只应用64M做测试被证明是不可靠的。


5.如今,生涯内存已经设置了,打开kdump初始脚本,启动做事:


#  chkconfig kdump on#  service kdump start


6.可以通过kexec加载内核镜像,让系分身办捕获一个瓦解时发生的vmcore。可以通过sysrq逼迫体系瓦解:


# echo "c" > /proc/sysrq-trigger


这造成kernel panic,紧随着体系重启kdump内核。当启动进程进入到启动kdump做事器时,vmcore将会被拷贝到你在/etc/kdump.conf文件中指定的职位。


留意:


终端frame-buffer和X将运行不正常。在运行一些类似于在内核设置上添加了"vga=791"可能运行X的体系,在通过kexec启动内核时,终端表现将不明白。记取,kdump内核如故可以或许创建转储。当体系重启,表现将会规复到正常状况。


你可能感兴趣的:(linux,内存,外设,开拓者)