Myページ
ホーム
コミュニティの人々
ソフトウェア
技術紹介
適用分野
Tyzohとは
ご意見お問い合わせ

Linuxカーネルのクラッシュダンプを解析するツール Alicia

Alicia

Alicia-logo

Aliciaとは、Linuxカーネルのクラッシュダンプを解析するツールです。新しいダンプ解析のプラットフォームを提供するためのフレームワークを中心に、ダンプ解析を実際に行うスクリプト群で構成されています。そのスクリプトは、perl言語で記述可能となっています。

また、カーネルクラッシュダンプにアクセスするためのエンジンは、別のツール(crash, lcrash, GDB)を利用しており、それらが持っているダンプ解析のためのコマンドもそのまま実行可能です。さらに、それらのコマンドの実行結果もperlの変数に格納し、様々な加工が行えます。以下に簡単な例を示します。

$ alicia -crash System.map vmlinux vmcore
alicia> @ps = map { (split /[ \t>]+/)[4] } split /\n/, pass_through 'ps'
alicia> printf "%s %d\n",$_,kernel($_,task_struct,static_prio) for @ps[1..$#ps]
c035bbc0 120
c1491770 120
c14911a0 139
c1490bd0 110
         :

各行を解説します。

  1. Aliciaの起動です。エンジンにcrashを利用しています。
  2. crashのpsコマンドから、task_structのアドレスを配列@psに格納しています。
  3. 全task_structのメンバ変数:static_prioを出力しています。ここでAliciaのAPIであるkernelコマンドを利用しています。kernelは、カーネル構造体のメンバ変数を取得するAPIです。

このような一連の処理をスクリプトとしてまとめることで、新規にコマンドを作成していくことができます。そして、そのスクリプトを残しておくことで、自分の解析手順を将来に渡って保存しておくことができます。しかも、それが単なるノウハウではなく、実行可能なスクリプトとなっているため、すぐに以前の手順を再現することができます。また、そのようなスクリプトを世界中で共有してい くことで、ダンプ解析のノウハウも共有していくことができるのです。

カーネルのダンプ解析は、とても特殊な領域であり、そのノウハウが非常に不足しています。特に、Linuxではダンプ採取するという機能は、ベンダーからは提供されていましたが、オリジナルのカーネルには存在しませんでした。ようやく、kernel2.6の途中からkdump機能がマージされ、オリジナルのカーネルのみでもダンプを採取することが可能になりました。

さて、ミッションクリティカルなシステムでは、カーネルのクラッシュが発生した場合など、すぐに解決しなければならない状況になります。ダンプ採取する機能はあるが、それを解析する手段やノウハウがないと意味はありません。Aliciaは、このあたりを補完する役割を持っています。

関連リンク

http://dev.tyzoh.jp/

Tyzohコミュニティで開発されているソフトウェアを紹介します。

コミュニティの人々 | ソフトウェア | 技術紹介 | 適用分野 | Tyzohとは | ご意見お問い合わせ

Copyright (C) 2004-2011 Nihon Unisys, Ltd. All Rights Reserved.
Powered by Movable Type Open Source