IIJ社における分散DB技術「ddd」(1)

2009年9月18日(金)
前橋 孝広

はじめに

 クラウドコンピューティングではスケーラビリティが重要視されるため、従来のリレーショナルデータベース(以降RDBMS)とは違う概念のデータベースが開発されています。その例として、今回と次回の2回にわたり、IIJが独自に開発したdddと呼ばれる分散システムを例にとり、その仕組みについて解説します。

■スケールアップとスケールアウト

 クラウドにおける大規模分散データ処理システムの多くは、低コストのPCを多数並べる構成をとることによりパフォーマンスを引き上げています。

 一般的に、システムの処理能力を高めるには、大きく分けてスケールアップとスケールアウトの2種類の方法があります。スケールアップとは、より高性能で大容量なコンピューターに増強することで処理能力を向上させること、スケールアウトとはマシンの数を増やすことで処理能力を向上させる手法です。

 従来は、スケールアップの手法がとられることが多くありました。スケールアップでは、今までのソフトウエアがそのまま流用可能であることがその理由です。

 しかし、クラウドコンピューティングでは、ほとんどの場合で後者のスケールアウトの手法がとられています。その理由はスケーラビリティとコストパフォーマンスです。

 スケールアウトでは、うまく適合するケースで、ほぼ台数に比例して100倍、1000倍と性能を向上させていくことができます。一方、スケールアップではそこまでの性能の向上は見込めませんし、また2倍の性能を得るのに5倍のコストがかかるようなケースが多く見受けられます。

 また、スケールアウトの手法をうまく動作させるためには、多数のマシンを協調動作させる必要があり、従来とは異なる仕組みのソフトウエアを必要とします。この分野は、GoogleやAmazonをはじめとした各社が技術開発を続けています。それだけスケールアウトの技術がクラウドコンピューティングの時代において重要な基盤となることを意味しているのでしょう。

ddd開発の経緯

 distributed database daemon(ddd)は、もともとIIJバックボーンを流れる膨大なトラフィックを解析するために、スケールアウトの手法をとることを前提にして作られました。

 IIJのようなインターネットサービスプロバイダー(ISP)は、自社のバックボーンを安定運用するために、ルータのトラフィック情報を取得し解析しています。

 トラフィック情報と言えばSNMPで得られるインターフェースのカウンター値がよく知られていますが、IIJではより詳細なデータを含むフロー情報も取得しています。

 フロー情報とは、ハイエンドなルータやスイッチの一部が出力できるトラフィック統計情報で、パケットの送信元/送信先のIPアドレスやポート番号などの情報が含まれています。このフロー情報を受信して解析することにより、SNMPより詳細な通信状況を調べることができ、障害発生時の原因切り分けや設備増強のデータとして役立てることができます。

 フロー情報は、細かい内容を分析できる反面、データ量は非常に膨大なものになります。以前、IIJでは、フロー情報を一般的なRDBMSに格納していました。しかし、フロー情報は、一つ一つのレコードは小さいものの、1秒あたり数万レコードに及ぶこともあり、従来のRDBMSではごく短期間の情報しか保持できませんでした。第1回での説明(http://thinkit.jp/article/1020/1/)の通り、トランザクション処理でのACIDを前提とした従来のRDBMSでは、原理的にスケールさせることが困難です。

 そこで、長期間にわたる大量のフロー情報を扱うため、スケールアウトの手法に基づき、独自の分散システムを開発することにしました。それが、distributed database daemon(以降ddd)です。RDBMSよりも機能は限定されますが、数百億超の大量のフロー情報レコードを保持し、さまざまな条件で高速にデータを抽出したり、集計したりすることができます。

 なお、dddはフロー情報を扱うことを第一の目的として開発が始まりましたが、今はセキュリティーサービスやアプリケーションサービスのログ解析など、より広い範囲のデータ処理にも活用されています。

■dddの概要

 dddの概要は次のとおりです。

・多数のコンピューターノードで構成される分散システム
・分散キーバリューストアをベースとしたストレージ
・MapReduceによるデータ処理

 図1のように多数のノードから構成されており、P2P(Peer to Peer)の関係で接続されています。中央管理ホストはなく、それぞれノードが協調して動作します。

株式会社インターネットイニシアティブ(IIJ)
IIJ サービス事業統括本部 システム基盤統括部 システム開発課 所属  ddd の実装をはじめとした、IIJ のバックボーンネットワーク運用に関わるプログラムの開発を手がける。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています