カリフォルニア州バーリンゲーム発--Googleの検索エンジンは大きな成功を収めているが、それを支える高度な技術は、ある疑う余地のない洞察をもとに考えられたものといえるかもしれない。その洞察とは「PCはクラッシュする」というものだ。
同社のエンジニアリング/運用担当バイスプレジデント、Urs Hoelzleは米国時間2日、Googleのデータセンターがどのように運営されているかについて、その一端を披露した。同社設立のきっかけになった実際の検索アルゴリズムよりも、同社が持つシステム運営上の知識のほうを高く評価する人は多い。
Hoelzleは、当地で開催されたEclipseConというアプリケーションプログラマー向けのイベントでこの講演を行った。
Googleは、比較的低価格のマシンを大量に購入することで、通常なら数千万ドルもかかるようなコンピュータインフラを、わずか数百万ドルで構築してしまった。この方法を選んだのは、ハードウェアのコストを検討していた同社のエンジニアが、強力なプロセッサを8基以上搭載するようなハイエンドサーバを数台購入するのに比べ、もっと簡単なつくりの「コモディティ」サーバを何十台も購入するほうが、はるかに安上がりなことに気付いたからだ。
このアプローチを成功させるにはちょっとしたコツが必要になる。それは、数多くのサーバをうまく連動させ、あるマシンで障害が発生しても、クエリに対する検索結果の表示や広告の表示といった業務に支障がでないようにする、ということだ。
家庭で使うPCの場合、少なくとも3年間に1回程度はソフトウェアやハードウェアの問題からシステムがクラッシュするとHoelzleは述べた。
「Googleのような規模、つまり数千台のPCを運用している場合は、1日に1度はかならず障害が起こると想定される。したがって、そのような場合に自動的に対処できるようにしないとサービスが中断することになる」(Hoelzle)
コンピュータサイエンス分野で最も優秀な人材を集めるために、非常に厳しい採用条件を課すことで知られるGoogleは、社内で利用するコンピュータのインストール用に数多くのソフトウェアツールを開発している。
同社は、Google File Systemと呼ばれる自前のファイルシステムも開発した。これは、64Mバイトという巨大なデータブロックの処理に最適化されている。このファイルシステムがディスクの障害やネットワークケーブルの抜けといった障害を想定した設計になっているのも重要な点だ。
データも3重に複製されて、それぞれ別の場所に保存されている。また、キーワードのインデックスといったデータについては、オリジナルが使用不能になった場合に、複製の在処を探し出せる「マスター」マシンも用意されている。
「ソフトウェアが障害に耐えられるようにしておくことが重要だ。障害が想定できれば、低価格のコモディティPCでもインターネットサービスに使える」(Hoelzle)
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス