Skip to content

マガジン(米国翻訳) | ニュースレター(日本)のトップ

レッドハットニュース
レターの新規御登録

バックナンバー


第10号(2007年7月)

Red Hat Enterprise Linux 5 の新機能:kexec/kdumpについて



Red Hat Enterprise Linux 5にはkexec/kdumpという新しい機能が追加されました。今回はこれらの機能の説明と使用方法を簡単にご説明させていただきます。

kexec/kdumpは再起動の高速化とカーネルクラッシュダンプのより確実な取得を目的に開発されました。

1.オーバービュー


まずkexecですが再起動を高速化するメカニズムでLinuxが再起動する時に行われるプロセスのうちBIOSの部分とブートローダの一部をスキップ することが可能になります。 BIOSはデスクトップPC等ではそれほど時間はかかりませんが、サーバ機等で複数のデバイスがインストールされている時 にはBIOSだけで非常に時間がかかるため、BIOSをスキップすることで再起動の高速化が顕著になります。

そしてkdumpは新しいカーネルダンプ取得ツールで、非常に信頼性が高いものです。 これはダンプ情報がクラッシュしたカーネルから取得されるのでは なく、新しく起動したカーネルから取得されるからです。クラッシュ時にkdumpはkexecを利用して2つめのカーネルをあらかじめリザーブされた小 さなメモリ領域で起動してダンプを取得します。 このときBIOSをスキップして起動するためにクラッシュ時のメモリ情報は破棄されずそのまま残ってい ます。 これがこのままカーネルダンプとなるわけです。

2.使用方法

ここではi686とx86_64アーキテクチャでの設定方法をご紹介します。 他のアーキテクチャの設定の詳細に関しては末尾にあるドキュメントをご参 照ください。
Red Hat Enterprise Linux 5インストール時にkdumpを有効にします。 もしくは
#yum install kexec-tools
にてインストールしてください。

インストール後にカーネルをkexecを有効にした状態で起動します。
# kexec -l /boot/vmlinuz-<kernel version> --initrd=/boot/initrd-<kernel version>.img --command-line="`cat /proc/cmdline`"
もしくはsystem-config-kdumpコマンドを実行してGUI環境にてkdumpを有効にしてください。

ここで
#reboot
として再起動するとBIOSがスキップされて起動するようになっています。

3.Kdumpの設定

kdumpとは直接関係ありませんが、デバッグを行うためにはkernel-debuginfoパッケージをインストールする必要があります。

#yum −enablerepo=¥*debuginfo install kernel-debuginfo.$(uname -m) crash

次にダンプ取得カーネル用にメモリ領域をリザーブするためにブートパラメータを変更します。 /etc/grub.confのkernel行 に”crashkernel=128M@16M”と追加してください。 また、これはsystem-config-kdumpを使用してGUI環境にて設定することもできます。 

以下は例です。


この変更を行った後、システムを再起動していただくと128MBのメモリ領域がダンプ取得用カーネルのためにリザーブされた状態で起動します。 ここ で'free -m'でメモリ状態を確認すると物理メモリよりも128MB少なく表示されますがこれはリザーブされているからです。
128MBよりも少量のメモリでも問題ないかもしれませんが64MBでは少なすぎるかもしれません。

メモリ領域をリザーブしたらkdumpを起動時に有効にします。
#chkconfig kdump on
#service kdump start
これでダンプ取得の準備が整いました。
クラッシュを下記のように人工的に発生させてテストしてみてください。
#echo c > /proc/sysrq-trigger
システムパニックの情報が表示された後システムがkdumpカーネルに起動します。
システムがkdumpサービスを起動するとvmcoreがディスクに書き出されます。
書き出される場所はデフォルトでは
/var/crash/<YYYY-MM-DD-HH:MM>/vmcore
ですが
system-config-kdump
で指定することもできます。
ディスクへ書き出された後通常カーネルで再起動されます。

通常カーネルに起動した後デバッグを行ってください。

kexec/kdumpの設定詳細に関しては
/usr/share/doc/kexec-tools-<version>/kexec-kdump-howto.txt
をご参照ください。

以上で、kexec/kdumpについての簡単な説明を終わりにさせて頂きます。
Red Hat Enterprise Linux 5の新機能に関するバックナンバーは、以下のページにありますので、未見の方は是非ご覧下さい。

レッドハット株式会社/ニュースレター編集部