オルタナティブ・ブログ > オープンソースでいこう >

Linux、Network、Securityを旗頭にしている技術者社長の日記

Infiniband + SSD + DRBDの検証レポートを出しました

»

きわめて多数の会員を管理するデータベースサーバなど、きわめて高速なディスクI/O、しかもランダムアクセスが必要なアプリケーションがあります。通常のハードディスク(HDD)では読み込み、書き込み性能ともに限界があるため、分散データベース構成で対応しているケースがあります。このような分野などを狙った製品にFusion-io社の超高速半導体ストレージ製品のioDriveがあります。IOPSやレイテンシはたしかにケタ違いです。

しかし、高速に頻繁にデータを書き換えるということは、ストレージ自体やサーバ筐体が故障したときにダメージも大きくなることを意味します。ホットバックアップしてあっても、リストアするとデータ内容はバックアップ時点の状態に戻ってしまいます。やはりここは、DRBDのようなリアルタイムの筐体間レプリケーションの出番です。

しかし、ioDriveの読み書き性能は数百メガバイト/秒のオーダーです。通常のギガビットネットワークは、パケットヘッダなどのオーバヘッドをまったく無視したとしても125メガバイト/秒が仕様上の限界です。より高速なネットワークインタフェースには10ギガビットネットワークやインフィニバンドがあります。現在入手できるインフィニバンド製品は通常10〜40ギガビット/秒の転送性能を持ち、イーサネットと比較してきわめてレイテンシが低いという特徴があります。すでに当社はサーヴァンツインターナショナル(株)とパートナーになっていることもあって、同社が取り扱っておられるMellanox社のConnectXは以前検証したことがあります。

そこで、当社の社員がioDriveとConnectXを組み合わせたときのDRBDのレプリケーション性能を調べてみました。ioDriveを単体で使った場合(非同期)と、ioDrive同士をDRBDで完全同期させた場合(同期)、そしてHDDについても同様の2パターンで、PostgreSQLデータベースのpgbenchプログラムによるトランザクション性能を計測しました。

Drbdssdinfinibandresult_2
結果のグラフを掲載しましたが、HDDとioDriveのトランザクション性能には1桁近い性能差があることがわかりました。ioDriveには可動部品がないことや、CPUやメモリとのインタフェース方式が違うため、ランダムアクセスの書き込みに強いことがうかがえます。

DRBDを使わない場合(非同期)とDRBDでレプリケーションした場合(同期)の比較については、少し開きが出ました。パーセンテージで言えば7〜8パーセントです。イーサネットの場合には、アクセスパターンによっては20〜30パーセント性能が低下することがあると言われているので、インフィニバンドの優秀さ(とくに遅延が小さいことが効いています)がうかがえます。

会員管理などといったビジネスの根幹に関わるデータベースは、きわめて頻繁に更新されるでしょうが、障害に対する備えは不可欠です。インフィニバンドとDRBDを使って2台のioDriveに同時にデータを書き込むことは「保険」として有効です。レプリケーションに伴う性能低下はありますが、データを喪失しないため、あるいは長時間のダウンを避けるための保険のコストと考えると、許容範囲内だろうと思います。

この検証試験の詳細レポートは当社ホームページからダウンロードしていただけます。

(お詫び) 当初のこの記事で、ioDriveをSSDのカテゴリの製品として紹介してしまいました。読者からの指摘で、これは正確性を欠くことがわかりました。CPUやメモリとのインタフェース方式の違いにもとづく桁違いの性能差や、長寿命設計など、高速性と信頼性が求められるサーバ用途向けの製品として位置づけるべきです。不正確な表現で読者や関係者にご迷惑をおかけしたことを深くお詫び申し上げます。

Comment(0)