カーネルコアダンプ取得のための lkcd 設定方法

このドキュメント (3044267J) の最後に記載の 免責条項 に基づき提供されています。

環境

Novell SUSE Linux Enterprise Server 9
Novell Open Enterprise Server (Linux based)
lkcdutils
lcrash

状況

カーネルクラッシュやその他の不正な動作 ("Panic" メッセージ、"Oops" メッセージ、"BUG" メッセージ) で、分析のために lkcd (Linux Kernel Crash Dump) ツールスィートを使用してカーネルコアダンプを取得する必要がある。

解決方法

ローカル ディスク ダンプ設定

設定

  1. lkcdutils RPM.をインストールします。
  2. boot.lkcd がブート時にアクティブであることを確認します:
     chkconfig boot.lkcd on
  3. /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
  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 シンポリックリンクを手動で作成します。
  5. サーバでコアダンプ取得を有効にします:
     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
  6. 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
  7. システムクラッシュの後に、今のカーネルイメージの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 サーバ設定

  1. lkcdutils および lkcdutils-netdump-server RPMをインストールする。
  2. netdump-server がブート時にアクティブであることを確認します:
     chkconfig netdump-server on
  3. /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 ファイルに記録されます。
  4. /var/log/dump ディレクトリを作成し、netdump ユーザ (netdump-server がデフォルトで実行するユーザ)が書込み可能にします:
     install -o netdump -g dump -m 777 -d /var/log/dump
  5. netdump-server サービスを開始:
     /etc/init.d/netdump-server start
  6. コアサーバでのシステムクラッシュの後で、必要なイメージファイルで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

 

コアサーバの設定

  1. lkcdutils RPM.をインストールします。
  2. lkcd-netdump がブート時にアクティブであることを確認します:
     chkconfig lkcd-netdump on
  3. /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
  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
  5. 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) を送付する前に、イメージが正しいものであることを確認してください。 以下の手順に従いコアイメージを検証します:

  1. サーバのリブート後に rootでログイン。
  2. カーネルイメージのあるディレクトリへ移動:
     cd /var/log/dump/0
  3. lcrashでイメージをロード
     lcrash map.0 dump.0 kerntypes.0
  4. ネットワークコアイメージの場合、ファイルは通常以下の場所にあります:
     lcrash System.map-* vmcore Kerntypes-*
  5. lcrash の `>>' プロンプトが表示されれば、正しいカーネルイメージです。
  6. "q" を押してクイットします。
  7. すべてのファイルを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

 

+ Upgrading to Open Enterprise Server 2 SP1 Linux

+ Open Enterprise Server 2 SP1 Migration Strategies

免責条項

このサポート ナレッジベースは、NetIQ/Novell/SUSE顧客、および弊社製品およびそのソリューションに関心のあるパーティへ、情報やアイデアの取得およびそれらの知識を得る為の有効なツールを提供します。 本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。

  • ドキュメント ID:3044267J
  • 作成年月日:07-JAN-08
  • 修正年月日:26-OCT-09
    • SUSEOpen Enterprise Server
      SUSE Linux Enterprise Server

このドキュメントはあなたの問題を解決しましたか? フィードバックを送る

SUSEサポートフォーラム

経験豊富なシステムオペレーターへの質問を投稿したり、他のSUSEコミュニティのエキスパートと交流したりすることができます。

コミュニティに参加

サポートリソース

このガイドラインでは、SUSEサブスクリプション、Premium Support、教育機関向けプログラム、またはパートナープログラムで提供されるテクニカルサポートの活用方法について説明します。


SUSE Technical Support Handbook Update Advisories
サポートに関するFAQ

インシデントを開く

テクニカルサポートへのインシデントの報告、サブスクリプションの管理、パッチのダウンロード、ユーザーアクセスの管理を行うことができます。

カスタマーセンターにアクセス