新しいアイデアでネットワークの故障を分かりやすく
—コンピュータの異常度合いを管理するサーバ—

コンピュータ理工学部 コンピュータサイエンス学科 林原 尚浩助教

コンピュータの異常度合いを管理するサーバ

 コンピュータは科学者や技術者が使うばかりではなく、仕事や家庭でも使われるようになりました。今や私たちの生活になくてはならないものです。生活の中に深く組み込まれているため、いったん故障するとたいへん不便な思いをさせられます。不便なだけではなく、実際に損害を被ったというニュースもたびたび聞かれます。だからといって、コンピュータをまったく使わない生活はもはや考えられません。これからは、いかにして故障に対応していくのかが問われる時代となったのです。林原先生はコンピュータの故障に対処する方法を研究しています。実現可能で効果的な新しいアイデアをお聞きしました。

壊れたときのダメージを最小限に抑える

 今日、コンピュータとそのネットワークは現代社会のインフラとなり、世界中にサービスを提供しています。今やコンピュータの故障が社会にもたらす損害は計り知れないほど大きくなっています。それにも関わらず、最近でも証券取引所の取引システムの障害や航空機の予約システムの障害など大きなニュースになったものをはじめ、ニュースにならないような企業内システムの故障は日常的に起こっています。

 この現状に対して、コンピュータシステムをいかに壊れないようにするかについての研究が進められています。もう一方で、壊れたときのダメージをいかに小さくするか、いかに早く復旧するかも重要なテーマとなっています。私が現在研究を進めているのは後者の分野です。

常に故障を監視するサーバ

 単体で使うコンピュータであれば、故障したかどうかはユーザが自分の目で見て分かる場合が多いでしょう。しかし、ほとんどの場合コンピュータはネットワークを経由して、あるいはネットワーク全体としてユーザにサービスを提供しています。そのため、ネットワークのどこかに不具合が生じても、直接目で見て確かめられない場合やネットワーク管理者に問い合わせないと分からない場合がほとんどです。これらの場合、ユーザがあるコンピュータの状態を調べるには、そのコンピュータの通信状況によって判断する方法があります。

 調べたいコンピュータにエコーと呼ばれる信号を送信(エコーリクエスト)して、その応答(エコーリプライ)が返ってくるかどうかで、コンピュータが故障しているのかどうかを判断するのです。※1

 従来、エコーを使っての故障検出には大きな欠点がありました。一般的に相手のコンピュータが故障しているかどうかはエコーリプライが返ってくるまでの時間によって判断されます。しかし、たまたまネットワークやサーバが混雑していたり、信号を送る経路の設定にミスがあったりといった原因によっても応答が遅れることがあります。従来の故障検出ではどんな理由であっても一定時間を過ぎれば全て故障と見なしていました。また、ネットワークやサーバの混雑具合などを考慮して基準となる応答時間を決めるというのはネットワークを熟知した管理者のいわば職人芸であり、誰にでもできることではありません。

 そこで私たちが考えたのが、定期的にエコーリクエストを送り応答時間を記録するサーバを作ることです。この故障検出サーバは、管理下にある全コンピュータの毎回のエコーリプライをもとに、各コンピュータの異常度合いを算出します。そして、他のコンピュータから問い合わせがあればその異常度合いを教えるのです。ちょうどネームサーバ※21のような仕組みです。

 事前に故障している確率が高い箇所が分かれば、その箇所の代わりにバックアップ用のコンピュータに接続したり、最適な通信経路を見つけ出したりといった、より効率的なネットワークの利用ができるようになるでしょう。

※1 エコーのやりとりはwebやメールのデータ送受信に用いられる層(TCP)とは別の層(ICMP)で行われる。ICMPは接続を確立しなくても信号を送受信できるため高速であり、エコーが返ってこなかった場合は,ネットワークの接続状況に関するさまざまな情報を得ることができるため、故障の検出に向いている。

※2 ネームサーバとは、www.kyoto-su.ac.jpなどのコンピュータに付けられた名前(ドメイン名)を問い合わせると133.101.120.20といった4つの数字で表されたIP(ネットワークにおけるコンピュータの住所)を返すサーバのこと。

目で見て分かるネットワーク

 故障検出サーバの開発にともなって、サーバが記録して算出した異常度合いを画面で見て分かりやすいようにするインタフェースを考案しました。ネットワーク内のコンピュータにそれぞれ温度計のようなゲージを付けて、異常度合いの高さによって温度計を上下させます。(下図)

 このインタフェースの長所は、ネットワークがどの程度正常に働いているのかが視覚的に把握できることと、故障が起きた場合の原因を突き止めやすいということです。将来的には異常度合いの情報から自動的に故障箇所を推測し、人間に教えてくれるシステムにしたいと考えています。

 現在のネットワーク管理、主に企業のシステム管理では、いつ起こるか分からない故障に備えて、24時間体制で監視する必要があります。故障が起きても、ネットワーク全体の問題なのか、一部分の問題なのかを特定できないことも多く、1台ずつコンピュータを調べる必要があり、とても1人では対応できません。

 24時間体制で何人もの管理者を置くとなると、ネットワーク管理者は常に忙しく、会社としてもコストがかかってしまいます。

 見た目にも分かりやすく、しかも故障箇所の推測までしてくれる故障検出サーバがあれば、ネットワーク管理者や会社の負担も少なくなり、作業効率が向上するでしょう。

図1

ユビキタス時代の強い味方

故障検出サーバは今後さまざまな分野での応用が期待されています。

 まずは、システムのバックアップが挙げられます。企業の顧客情報や社員情報などの重要な情報は消失させないために通常バックアップされます。複数のコンピュータにまったく同じ情報を記憶させているのです。従来のバックアップはたとえば一定の時間間隔で行うなど完全なバックアップとなっていません。故障検出サーバを応用すれば、コンピュータが壊れた時点を正確に把握することができるため、完全な復旧が可能になるのです。

 また、将来的な話として、より分かりやすいネットワーク管理は家庭での応用が考えられます。現在でも家電製品のコンピュータ化は進んでいて、近い将来に家庭内の家電の多くがネットワークでつながる日がやって来ます。外出先からテレビの録画予約ができたり、冷蔵庫の中身を確認できたりと便利になる反面、ネットワークが故障したときに一般のユーザが対応できるのかが問題となります。そこで、異常度合いを分かりやすく表示するインタフェースが役に立つのです。故障箇所が分かるだけではなく、簡単な故障であればボタン一つで機械が自力で修復してくれれば、誰でも簡単に家電のネットワークを利用できます。来るべきユビキタス時代になくてはならないシステムなのです。

地震大国・日本の情報管理

 耐故障システムの研究者として、考えるべき極限の状況はカタストロフィ(大災害)です。予測不能な故障が起きたときにいかにして復旧するのか、復旧するための最小限の情報をどうやって生き延びさせるのか、これは重要な問題です。万が一システム全体が壊れても、一番重要な情報が別に保管されているならば、復旧することも可能なのです。

 特に日本は地震が多い国なので、大地震による物理的な大災害が十分考えられます。仮に首都が大地震に襲われたとき、私たちの情報はどの程度守られるのでしょうか。

コンピュータ理工学部 コンピュータサイエンス学科 林原 尚浩助教

プロフィール

博士(情報科学)。専門は分散アルゴリズム、耐故障高信頼システム。学部時代は3年生まで経済学を学ぶが、当時注目されていたOSウィンドウズとリナックスに興味を抱き、情報学へと転進。「こういうシステムがあればいいのに」をいつも形にしてきた。海外で情報系のトップの研究者が必ずしも理科と数学ばかりできるわけではないのを目の当たりにし、情報系の研究者にとって理科や数学は非常に便利な道具であるが、それを使う人の豊かな想像力が重要と確信する。自身の研究成果の一つである故障検出方式(Accrual Failure Detector)は実際のネットワークサービスにおいても用いられている。オープンソースの分散システムの開発環境Nekoの開発にも参加している(The Nekoproject http://ddsg.jaist.ac.jp/neko/)。

PAGE TOP