自己修復コンピューティング

自己修復コンピューティングというお題に引かれて日経サイエンス2003年9月号をブックオフにて購入。原題は、Scientific American June 2003に掲載された「Self-Repairing Computers」で、筆者はArmando Fox、David Pattersonである。

この中で興味深い内容が二つほどあった。「時間を“巻き戻す”システム」と「選択的再起動」である。

1.時間を“巻き戻す”システム
現在のメールのシステムは、大まかに送信者、電子メールサーバー、受信者の三者で成立している。時間を巻き戻すシステムでは、これに加えて取り消しモジュールが送信者、電子メールサーバーの間に存在している。取り消しモジュールは、システムに出入りする全てのメールを監視し、記録している。

送信者がウイルス付きメールを送信した場合、従来のシステムはメールサーバーに感染し、そこからメールの受信者に対して送信されてしまう。

ここで新しいシステムでは、オペレーターがサーバーがウイルスに感染したかもしれないと判断した場合、取り消し/やり直しの記録を用いてウイルスが感染した依頼のメールを全て配送しない設定を行う。同時に、ウイルス駆除ソフトをインストールする。

次に取り消しモジュールに対して、取り消したアクションをやり直すように命じる。これによって、メールの配送が再開されるが、今回は電子メールサーバーにウイルス駆除ソフトがすでにインストールされているため、削除がされる。

2.選択的再起動
これまでのシステムでは、例えばモジュールが4つ存在し、1つのモジュールだけが故障した場合には、全てのモジュールに対して再起動命令を出す必要があった。そのため故障モジュールを使用していない利用者も影響を受けるばかりか、システム全体を再起動しなくてはならないため、ダウンタイムが長くなっていた。

新しいシステムでは、監視エージェントが4つのモジュールを監視し、マイクロリブート機能がモジュール単位で再起動を行うことができる。この際に、マイクロリブートは、システム内のシステム構成DBを参照し、モジュール間の関連性を認識し、故障モジュールが他モジュールに与える影響を勘案し、必要であれば関連モジュールも同時に再起動することができる。

こうして書いてみると極めて当たり前のような仕組みだが、自己修復コンピューティングにおいては結構重要な考え方だなぁと思ったので、メモ。