LinuxCon2010/Logging Kernel Messages Without a Loss

Logging Kernel Messages Without a Loss
Seiji Aguchi, Hitachi

概要

日立は政府系、金融系のシステム構築を行っている。
この業界では、Linuxの”RAS”が重要

  • Realiability
  • Availability
  • Serviceability

無停止で安定して動くため、負荷のかからないロギング・メッセージ通知の仕組みが必要

syslog/klogd

syslogd/klogdは、メッセージをprintkバッファにいったん置いたあと、表示デバイスや、ネットデバイスに出力する。
しかし、カーネルがクラッシュしたら、このバッファが失われてしまう。

kmsg_dumperでこの問題に対策した。
panic,oops,kexecをトリガにする。
mtd_oopsドライバに、カーネルの出力バッファを吐き出す仕組みを入れた。

kmsg_dumperは、rebootとかシャットダウン、I/Oエラーには対応してない。
書き出し左記もMTDだけ。


Lockless kmsg_dumper
→crash_kexecをkmsg_dumperに備える。

将来的には、rebootなどでもバッファを拾い上げるようにしていきたい。