カーネルコアダンプ取得のための lkcd 設定方法
このドキュメント (3044267J) の最後に記載の 免責条項 に基づき提供されています。
環境
Novell SUSE Linux Enterprise Server 9
Novell Open Enterprise Server (Linux based)
lkcdutils
lcrash
状況
カーネルクラッシュやその他の不正な動作 ("Panic" メッセージ、"Oops" メッセージ、"BUG" メッセージ) で、分析のために lkcd (Linux Kernel Crash Dump) ツールスィートを使用してカーネルコアダンプを取得する必要がある。
解決方法
ローカル ディスク ダンプ設定
設定
- lkcdutils RPM.をインストールします。
- boot.lkcd がブート時にアクティブであることを確認します:
chkconfig boot.lkcd on - /etc/sysconfig/dump 設定ファイルを以下の設定に変更します:
DUMP_ACTIVE="1"
DUMPDEV="/dev/vmdump"
DUMPDIR="/var/log/dump"
DUMP_LEVEL="2"
DUMP_COMPRESS="2"
DUMP_FLAGS="0x80000000"
DUMP_SAVE="1"
PANIC_TIMEOUT="5"
BOUNDS_LIMIT="10"
KEXEC_IMAGE="/boot/vmlinuz"
KEXEC_CMDLINE="root console=tty0"
DUMP_MAX_CONCURRENT=4 - DUMPDEV /dev/vmdump が正しいダンプデバイス (通常これはスワップパーティションですが、内容が上書きされてもよいブロックデバイスを使用します)にリンクしていることを確認します:
ls -l /dev/vmdump
lrwxrwxrwx 1 root root 9 Aug 10 08:33 /dev/vmdump ->/dev/sda1
注意: 次のステップで lkcd コマンドを実行すると、/etc/fstab の最初のスワップパーティションに /dev/vmdump へのシンポリックリンクが作成されます。 最初のスワップパーティションを使用したくない場合は、DUMPDEV シンポリックリンクを手動で作成します。 - サーバでコアダンプ取得を有効にします:
lkcd config
lkcd query
Configured dump device: 0x801
Configured dump flags: KL_DUMP_FLAGS_DISKDUMP
Configured dump level: KL_DUMP_LEVEL_HEADER|KL_DUMP_LEVEL_KERN
Configured dump compression method: KL_DUMP_COMPRESS_GZIP - Magic Keys を有効にします(これはサーバ半負の時に有効です。 カーネル oops や panic の時に自動的にコアダンプを作成します。 しかし、セキュリティ上の理由で不要な場合は Magic SysRq キーを無効に出来ます。):
- リブート後も設定を行こうにする:
yast | Security and Users | Security settings | Miscellaneous Settings (Page 6)、Enable Magic SysRq Keysを選択、Finish, Quitを選択 - 一時的に変更:
echo 1>/proc/sys/kernel/sysrq
- リブート後も設定を行こうにする:
- システムクラッシュの後に、今のカーネルイメージのtarボールを作成:
tar jcvf kernelcore.tar.bz2 /var/log/dump/n/* # where n represents the current core image
注意
ディスクベースのダンプ はパニックの状況により失敗することがあります。 例えば、 コンテキストのインタラプトやシステムハングの時のダンプはベストエフォートです。 ディスクダンプが失敗するときは、ネットワークベースのダンプの使用したり、他のデバッグ方法を利用する必要があります。
ネットワークダンプの設定
環境の例
- サーバ名 = core、 サーバ IP = 10.0.0.10、説明 = カーネルコアダンプを実施するサーバ
- サーバ名 = netdump、サーバ IP = 10.0.0.20、MAC Addr = aa:bb:cc:dd:ee:ff、説明 = コアサーバからのカーネルイメージを受信し保存する netdump-serverサーバ
netdump サーバ設定
- lkcdutils および lkcdutils-netdump-server RPMをインストールする。
- netdump-server がブート時にアクティブであることを確認します:
chkconfig netdump-server on - /etc/sysconfig/dump 設定ファイルを以下の設定に変更します:
DUMPDIR="/var/log/dump"
DUMP_FLAGS="0x40000000"
SOURCE_PORT="6688"
NETDUMP_VERBOSE="yes"
注意: NETDUMP_VERBOSE="yes" は netdumps が失敗するときのトラブルシューティング目的でのみ必要です。 それ以外は "no"に設定します。 Verbose ログは netdump サーバの /var/log/messages ファイルに記録されます。 - /var/log/dump ディレクトリを作成し、netdump ユーザ (netdump-server がデフォルトで実行するユーザ)が書込み可能にします:
install -o netdump -g dump -m 777 -d /var/log/dump - netdump-server サービスを開始:
/etc/init.d/netdump-server start - コアサーバでのシステムクラッシュの後で、必要なイメージファイルでtarボールを作成します。 vmcore はnetdump サーバです。また Kerntypes と System.map ファイルはコアサーバです。 カーネルイメージファイルは Kerntypes と System.map ファイルがないと読むことが出来んせん。
core:/boot/System.map-$(uname -r)
core:/boot/Kerntypes-$(uname -r)
netdump:/var/log/dump/ipaddr-date-time/vmcore # where ipaddr-date-time はコアサーバの IPアドレスおよびクラッシュした日付と時間のディレクトリです
lkcd 設定の詳細は、lkcdutils パッケージの以下のディレクトリにあるREADME ファイルを参照ください:/usr/share/doc/packages/lkcdutils
コアサーバの設定
- lkcdutils RPM.をインストールします。
- lkcd-netdump がブート時にアクティブであることを確認します:
chkconfig lkcd-netdump on - /etc/sysconfig/dump 設定ファイルを以下の設定に変更します -- お使いの環境に合うように変更します:
DUMP_ACTIVE="1"
DUMPDEV="eth0"
DUMPDIR="/var/log/dump"
DUMP_LEVEL="2"
DUMP_COMPRESS="2"
DUMP_FLAGS="0x40000000"
DUMP_SAVE="1"
PANIC_TIMEOUT="5"
BOUNDS_LIMIT="10"
KEXEC_IMAGE="/boot/vmlinuz"
KEXEC_CMDLINE="root console=tty0"
TARGET_HOST="10.0.0.20"
TARGET_PORT="6688"
SOURCE_PORT="6688"
ETH_ADDRESS="aa:bb:cc:dd:ee:ff"
DUMP_MAX_CONCURRENT=4 - サーバでコアダンプ取得を有効にします:
lkcd config
lkcd query
Configured dump device: 0xbffff617
ダンプデバイスの設定: KL_DUMP_FLAGS_NETDUMP
Configured dump level: KL_DUMP_LEVEL_HEADER|KL_DUMP_LEVEL_KERN
Configured dump compression method: KL_DUMP_COMPRESS_GZIP - Magic Keys を有効にします(これはサーバ半負の時に有効です。 カーネル oops や panic の時に自動的にコアダンプを作成します。 しかし、セキュリティ上の理由で不要な場合は Magic SysRq キーを無効に出来ます。):
- リブート後も設定を行こうにする:
yast | Security and Users | Security settings | Miscellaneous Settings (Page 6)、Enable Magic SysRq Keysを選択、Finish, Quitを選択 - 一時的に変更:
echo 1>/proc/sys/kernel/sysrq
カーネルコアファイルの検証
調査のためにコアイメージをノベル テクニカルサービス(NTS) を送付する前に、イメージが正しいものであることを確認してください。 以下の手順に従いコアイメージを検証します:
- サーバのリブート後に rootでログイン。
- カーネルイメージのあるディレクトリへ移動:
cd /var/log/dump/0 - lcrashでイメージをロード
lcrash map.0 dump.0 kerntypes.0 - ネットワークコアイメージの場合、ファイルは通常以下の場所にあります:
lcrash System.map-* vmcore Kerntypes-* - lcrash の `>>' プロンプトが表示されれば、正しいカーネルイメージです。
- "q" を押してクイットします。
- すべてのファイルをTarで固めNTSへ送付します。
S390 Linux サーバでのcoredumpの設定
以下のパッケージのインストールが必要です: s390-tools
http://download.boulder.ibm.com/ibmdl/pub/software/dw/linux390/docu/l26cdt01.pdf
または http://www.ibm.com/developerworks/linux/linux390/history.html で入手可能なIBMのドキュメント、Linux on System z - Using the Dump Tools
に従ってください。
追加情報
NIC ドライバ毎のnetdumpのサポート状況
lkcdutils-4.2-193.57に関して、LKCD netdumpは以下のデバイスがテストされ確認されています : 3c59x, e100, e1000, eepro100, smc-ultra, tg3, tlan, tulip
以下のデバイスは netpoll でサポートされていますが、LKCD netdumpではテストされていません: 8139too, amd8111e, pcnet32, via-rhine
8390ベースのイーサネットアダプタ: 3c503, ac3200, apne, e2100, es3210, hp, hp-plus, hydra, lne390, mac8390, ne, ne2, ne2k-pci, ne2k_cbus, ne3210, smc-mca, smc-ultra32, stnic, wd, zorro8390, oaknet
詳細は
TID 3456486J, SLESでのリモートシリアルコンソールの設定 (Configuring a Remote Serial Console for SLES)を参照ください。初期のシステム起動時のエラー を取得したり、通常のLinuxキーボードドライバやコンソールドライバが応答しないためにmagic SysRq 機能うぃ使用するためにシリアルコンソールが必要になることがあります。
SLE 10: lkcd ではなくkdump
SUSE Linux Enterprise Server 10 および SUSE Linux Enterprise Desktop 10 のもとんどのアーキテクチャでカーネルクラッシュダンプを取得する手順が変更になっています。 SLE 10でのカーネルクラッシュダンプ取得の詳細は、TID 3374462J, カーネル コア ダンプ取得の設定 (Configure kernel core dump capture) を参照ください。
TID 履歴およびキーワード
キーワード: coredump
以前のTID # 10099561
免責条項
このサポート ナレッジベースは、NetIQ/Novell/SUSE顧客、および弊社製品およびそのソリューションに関心のあるパーティへ、情報やアイデアの取得およびそれらの知識を得る為の有効なツールを提供します。 本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。
- ドキュメント ID:3044267J
- 作成年月日:07-JAN-08
- 修正年月日:26-OCT-09
-
- SUSEOpen Enterprise Server
SUSE Linux Enterprise Server
- SUSEOpen Enterprise Server
このドキュメントはあなたの問題を解決しましたか? フィードバックを送る