- HOME
- 研究・社会連携
- 産官学連携
- 研究探訪(研究者紹介)〜サギタリウスからのメッセージ〜
- コンピュータ理工学部 コンピュータサイエンス学科 林原 尚浩 助教
コンピュータ理工学部 コンピュータサイエンス学科 林原 尚浩 助教
コンピュータ抜きでは成り立たない現代の社会や生活が求める、故障やその予兆を正しくいち早く検出する新システムの開発
コンピュータシステムは、現代社会や日常生活に不可欠な要素。
しかし、そこにあまりにも依存しているがために、
ひとたび故障が起こってしまうと大きな混乱が避けられない。
この様な事態を防ぐためには、故障やその予兆を
正確に検出するシステムを準備しておく必要がある。
ネットワークの状況にもユーザの要求にも適応できるような、従来の故障検出方式にかわるシステムが必要です。
企業や役所、大学のコンピュータシステムが故障すると、業務に大きな支障が出ます。金融機関のATM(現金自動預け払い機)や航空会社の搭乗手続きシステムなどの故障は、市民生活に大きな迷惑をかけ、企業には損害をもたらします。故障を一刻も早く見つけて対処するため、企業や役所、大学はシステム管理者を置いて、システムを常時監視していますが、システムが大きくなるほどシステム管理者の負担は大きくなります。そこで、システムの専門知識がなくても、わかりやすく正確に故障やその予兆を知ることができるアクルーアル故障検出方式を開発しました。
従来の故障検出のやり方は、監視対象のコンピュータやネットワーク機器に順次メッセージを送り、一定の時間(タイムアウト)が過ぎても応答がないと、即「故障」と判定しています。しかし、このやり方では、タイムアウトの時間を適切な長さに設定しておかないと、誤って故障と判定してしまう恐れがあります。しかし、適切な長さにタイムアウトを設定するのは、そのシステムを熟知した熟練技術者でなければ難しいのが現状です。
ネットワークには数多くのノード(コンピュータや情報家電など)が繋がるようになったので、それらが大量のデータをやりとりすることによってネットワークの混み具合は時々刻々と変化します。従来の故障検出方式のようにタイムアウトを固定していると変化するネットワーク状況に対応することができず、ネットワーク回線がたまたま混んでいただけで、コンピュータやネットワーク機器は正常に動いているのに、故障と誤判定をしてしまうことも珍しくありません。
新しい故障検出方式のヒントは、待ち合わせでの友人の一言でした。
他の人には待ち合わせの時間に少し遅れると、すぐ問い合わせのメールを出したり電話をかけるという友人が、私にはそのような問い合わせをまったくしませんでした。その理由は、当時の私が「よく遅れるからだ」と言うことでした。実は、これが新しい故障検出方式である「アクルーアル故障検出方式(accrual failure detector)」のヒントになったのです。
友人が相手の個性(信頼度の高低)に合わせて対応を変えたように、レスポンスの早さなどノードやアプリケーションの個性に応じた判定をするようにすれば良いのではないか、と考えたわけです。実にシンプルな考え方といえましょう。
各ノードのレスポンス時間(ラウンドトリップ時間)の履歴データを絶えず集計し、数理統計学的に処理することで、そのノードの個性を反映した現在の「故障可能性」の値を算出し、ユーザやアプリケーションに提供します。一方、各ユーザやアプリケーションには、「時間がかかっても正確な故障検出をしてほしい」とか「精度は低くても一刻も早く検出してほしい」といった個々のニーズに応じて、あらかじめ故障と判定する故障検出精度(パーセント)をしきい値として設定しておいてもらうのです。
このしきい値を「故障可能性」の値が超えたら、ユーザやアプリケーションが独自に「故障」と判定するというやり方で、ニーズの異なる多数のユーザやアプリケーションがそれぞれのしきい値を設定することにより、それらの要求に同時に対応することができます。また、従来の故障検出方式ではタイムアウトを固定して故障検出を行うため、ネットワークが混み合うとそのタイムアウトでは適切に故障検出ができなくなりますが、アクルーアル故障検出方式では、履歴データは絶えず更新・集計され数理統計学的に処理されており、ネットワークの混み具合が変化しても、しきい値によって与えられた故障検出精度に基づいた適切な故障検出が可能です。
-
■アクルーアル故障検出方式の「故障可能性
(suspicion level)」算出方法レスポンス時間の履歴データを集計し、数理統計学的に処理することで算出される -
■さまざまな情報家電がつながったホームネットワークに
おける故障検出 各ノード(コンピュータや情報家電)の故障の可能性が分かりやすく表示される
世界最大級のSNS「Facebook」で、アクルーアル故障検出方式がいち早く採用されました。
この方式を論文として発表したのは2004年で、それは私の博士論文でした。昨年には世界最大級のSNS(ソーシャル・ネットワーキング・サービス)である「Facebook」で採用され、現在2億人を越すユーザへのサービスを支えています。他にも、グリッド・コンピューティングのためのミドルウェアやオープンソースの通信フレームワークなどでも実装されており、世界的に注目されるに至りました。
監視対象ノードが正常か故障かの、○×判定しかできない従来の故障検出方式と違って、連続的な数値として表現される「故障可能性」の値の推移をみて、故障と判定したり、その予兆を見ることが可能です。実際に故障してしまった場合に備え、バックアップシステムへの切り替えなどの準備ができますので、故障によって大損害が発生するのを未然に防止することができます。
今後、テレビ、IP電話、エアコン、冷蔵庫、防犯機器などのネットワーク家電が普及するようになりますので、企業や役所、大学の大規模システムだけでなく、家庭でも故障検出が必要となってきます。特に防犯機器などは、故障が致命的な事態を引き起こす可能性がありますので、必要性はさらに高くなります。その様な場合、パソコンが苦手な人でもわかりやすい表示にすることが必要です。今回の検出方式でも機器の状態を示す表示は、故障可能性を温度計のように上下する形で表示して、誰でもひと目でわかるようにしました。
残る課題は、故障検出するために監視対象のノードに送ったメッセージが、途中で消滅してしまう現象(パケットロス)への対処です。ネットワークが混雑すると頻繁に発生し、それによって正常なノードを間違って故障と判定してしまいますので、これもノードのレスポンス時間の傾向やパケットロス率などの履歴データをもとに補正する方法を考えています。また、故障が発生したときに周囲のネットワークスイッチから送られてくるエラーコードなどをシステム管理者の代わりに推測させることで、どこが故障している可能性があるか、判断させることも可能です。このような機能を実装することで、大規模なシステムを常時監視しているシステム管理者の負担を、少しでも軽減することができます。
分散システムの故障検出を専門とする研究者は日本では珍しく、おそらく私ぐらいじゃないかと思います。私は経済学部出身でしたから、コンピュータに関心を持つようになったのは、大学に入学してからでした。ほとんど独学で勉強し、大学院の情報科学研究科に進みました。変わった経歴を持つからこそ、このような故障検出方式を思いついたのかもしれませんね。
■世界最大級のSNS「facebook」のホームページ
アクルーアル故障検出方式が実装され、Facebookのサービスを支えている