それにしても、このところのDocker人気は凄く、その周りにスタートアップがエコシステムを形成するようになってきた。今回はそれらの中から、Docker向けストレージの利便性向上を目指す2社を紹介しよう。

同社幹部はTintriがVMセントリックなSSD利用のハイブリッドで成功しているように、PWXもよりDockerセントリックなストレージ提供を目指すと明言する(Tintriに関する記事)。つまり、Docker本来にはないマルチノード間のデータベースのポータビリティー(Portability: 携行性)やコンシステンシー(Consistency: 一貫性)を保持し、さらにスナップショットやレプリケーションについても計画中だ。これによってDockerユーザのストレージに関する利便性を大きく向上させる。ただ、これらは前回述べたOCPの課題と一部重なる可能性もあり、その際は調整が必要となるだろう。同社はまた、先月中旬、DellのMicheal Dell氏とMayfieldからシリーズAとして$8.5M(約10億円)の資金を調達した。実際のところ、Portworxの経営陣3人は、Dellが2010年に買収したOcarina NetworkのCo-Founderだ。今後、Dellとの関係も要注意である。
=コンテナーアプリ向けData Volume Manager-ClusterHQ!=

Flockerを使えば、Flocker APIやCLIで起動した別のコンテナーアプリにメッセージキューイングのRabbitMQや、MySQL/PostgreSQL、さらに分散DBのRiakなどステートフルなデータマイグレーションできる。Flockerの仕組みはこうなっている。コンテナーが実行される個々のホスト(Node)にはFlocker Agentが乗り、それらをFlocker Controllerが制御する。この仕組みをベースに、機能的にはフロントとバックエンドがある。フロントはネットワークプロキシレイヤーとなって、IPアドレス制御やルーティングを担当し、バックエンドはZFSを用いたデータボリュームレイヤーとなる。Dockerではコンテナーとデータボリュームはタイトな関係になっているが、Flockerではコンテナーアプリとデータボリュームが一緒に移動できる。実際にはZFSの持つクローン機能を使って相手先のアプリのデータボリュームを逐次アップデートする。この際、オリジナルのデータボリュームはRead/Writeが出来るが、受けて側はReadのみだ。つまり、オーナーシップがあって、これをハンドオフで切り替えることも出来る。勿論、扱うデータボリュームはローカルでもクラウド(AWS Elastic Block Storage (EBS)、OpenStack Cinder、EMC ScaleIO & XtremIO)上でも構わない。同社は昨年8月、Flocker 0.1(α)をリリース、今年6月には1.0(正式版)となった。
以上見てきたように、上記2社の問題意識は良く似ている。
2社ともコンテナー利用におけるストレージの継続性をテーマとし、そのために扱うストレージをブロックとしてプールする。Portworxは汎用的なストレージシステムを目指して開発を進め、ClusterHQ FlockerはZFSを利用して、その上により利便性のある機能を提供する。言い換えれば、Portworxはコンテナーストレージのインフラに挑戦し、FlockerはインフラはZFSに任せて、ストレージのPaaS化に力点を置いている。今後の両社の開発に注目したい。