分散ストレージソフトウェアの新顔 Hedvig Distributed Storage Platform

Gluster、Ceph のような分散ストレージソフトウエアは花盛のようで StorPool など新しい分散ストレージソフトウェアがぽこぽこ開発されているが、新たに Hedvig というのが加わった。

新顔の割りに注目されているのは Hedvig の創始者の Avinash Lakshman という Facebook 在籍中に Cassandra を開発、AmazonDynamo の共同開発をした人物だかららしい。

以下に特徴をあげると、

  • Hediving のマシンは Storage Proxy (クライアントとなるマシンに) と Storage Service (ディスクノード) の 2 種類に分かれている。他に管理ノードがあるかもしれない。
  • コモディティx86 か ARM サーバまたはクラウドインスタンスに Hediving Storage Service をインストールすることでストレージ・ノードとする。ストレージ・ノードを束ねてクラスタ化する。複数のデータセンターを跨ってストレージ・クラスターを構成できるようだ。
  • Hedvig Distributed Storage にアクセスするクライアントマシンには Storage Proxy をインストールする。Storage Proxy は仮想マシン、Docker コンテナとして配備し、クライアントに iSCSINFSプロトコルで Hedvig Distributed Storage にアクセス手段を提供するようだ。他に Amazon S3 や OpenStack Swift 互換のオブジェクトストレージのインターフェイスで Hedvig Distributed Storage にアクセスできるが、この場合は Storage Proxy のインストールは不要らしい。
  • Hedvig Distributed Storage は Virtual Disk という論理的なボリュームを持ち、サイズ、ブロックサイズ(512B〜64KB)、レプリケーションポリシー、重複度などのパラメータを設定する。Storage Proxy は Virtual Disk に対してアクセスし、Virtual Disk の実体はストレージ・クラスタ上にアクセスできる。この操作を行っている管理ノードがあるのかないのか判然としないが、デモを観る限り管理ノードはありそう。
  • どういうアルゴリズムでストレージ・クラスタにデータを配置しているかは不明。ただし以下の機能があるようだ。
    • 最大 6 多重・4データセンター間でのレプリケーション
    • インライン重複除去・圧縮
    • オート・バランシング、オート・ティアリング
    • Thin-provisioning、snapshot & clone
  • Storage Proxy を使った client-side caching が可能。

デモを見ていて特徴的だと思ったのは、Storage Proxy を使うことで Distributed Storage Network にアクセスしてくるクライアントの管理ができていること。Hedvig は現在接続に来ているクライアントのリストを出して、新規に作成した Virtual Disk をどのクライアントにアクセスさせるかをリアルタイムで設定できるようだ。Ceph や Gluster が接続に来ているクライアント・ノードは直接管理しておらず野放しと対照的だ。

あと管理の簡単さを売りにしている。分散ストレージソフトはインストールまでの手順・設定が多いが、Hedvig は仮想マシンイメージ/ISO イメージ/Docker コンテナを配備するだけで動作を開始できるという手軽さを売りにしているようだ。実際、どの差別化できているのかは分からないが。

Technical paper やホームページ内には Erasure code に関する記述は見つからない。どうするんだろう?