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
:
各行を解説します。
このような一連の処理をスクリプトとしてまとめることで、新規にコマンドを作成していくことができます。そして、そのスクリプトを残しておくことで、自分の解析手順を将来に渡って保存しておくことができます。しかも、それが単なるノウハウではなく、実行可能なスクリプトとなっているため、すぐに以前の手順を再現することができます。また、そのようなスクリプトを世界中で共有してい くことで、ダンプ解析のノウハウも共有していくことができるのです。
カーネルのダンプ解析は、とても特殊な領域であり、そのノウハウが非常に不足しています。特に、Linuxではダンプ採取するという機能は、ベンダーからは提供されていましたが、オリジナルのカーネルには存在しませんでした。ようやく、kernel2.6の途中からkdump機能がマージされ、オリジナルのカーネルのみでもダンプを採取することが可能になりました。
さて、ミッションクリティカルなシステムでは、カーネルのクラッシュが発生した場合など、すぐに解決しなければならない状況になります。ダンプ採取する機能はあるが、それを解析する手段やノウハウがないと意味はありません。Aliciaは、このあたりを補完する役割を持っています。
Copyright (C) 2004-2011 Nihon Unisys, Ltd. All Rights Reserved.
Powered by Movable Type Open Source