OpenStackから説明すると、Cinderはストレージリソースをエンドユーザーからアクセスできるようにしたり、OpenStackのコンピュートコンポーネントである「Nova」に対してブロックストレージアクセスを提供するためのブロックストレージAPIであり、これによりLinuxの論理ボリュームマネージャ(LVM)を利用できるようになる。その目的は、ストレージの場所や配備方法に関する知識なしに、ブロックストレージデバイスのプールを仮想化することだ。
Swiftは、オブジェクトやBLOBを格納するという点を除けばCinderと等価なコンポーネントだ。つまりSwiftは、Cinderのようにデータを一般的なファイル形式で格納するのではなく、バイナリオブジェクト形式で格納する。
Cephは分散オブジェクトとブロックストレージのファイルシステムだ。このためご想像の通り、CinderとSwiftの双方を管理するためにCephを使用することもできる。実際のところ、Red HatがCephの親会社であるInktankを買収した狙いはそこにある。Cinder用の「Ceph Block Device」と、Swift用の「Ceph Object Gateway」を介してCephを使用することで、Red HatはOpenStackのストレージオプションに対する単一のアプローチをオープンソースで実現しているのである。
GlusterFS(これもRed Hatが所有している)という名前は最近、ビッグデータを取り扱う「Apache Hadoop」とともによく語られる。しかし、このオープンソースの分散ファイルシステムは、それ以上の意味を持っている。つまりGlusterFSは、単一のグローバルな名前空間内にストレージリソースを集約するために使用できるのだ。
ここまでで説明してきたSDSプログラムがすべて、極めて低水準にある点に気付かれたかもしれない。確かにその通りだ。これらはユーザーやシステム管理者向けというよりも、開発者向けのビルディングブロックなのだ。
また、オープンソースのSDSシステムが提供され始めたのは2014年に入ってからだという点もある。つまり、同種のプロプライエタリな製品と同様に、まだ未熟な段階にあるというわけだ。
例えば、開発と運用のギャップを埋めるために、SwiftStackやNexenta、Mirantisといった企業が開発しているプログラムがある。そのなかにはSwiftStackの製品のようにSDSソリューションにおける単一機能に注力しているものもある一方、Nexentaの製品のようにSDSに特化したプログラムとなっているものもある。また、「Mirantis OpenStack」を開発しているMirantisなどの他のベンダーは、クラウドやストレージスタックすべてを一括してサポートする製品を提供している。
筆者の意見では、Red Hatの「Storage Server 3」が、現時点においてあらゆる機能を完備した最も成熟度の高いプログラムとなっている。これはGlusterFSを用いて、ローカル環境に配置されたCOTSのストレージサーバからOpenStack上やAWS上のクラウドストレージに至るまでのすべてを制御するという製品だ。
Red Hatは、OpenStackにおいて主要な役割を演じるとともに、CephとGlusterFSを所有しているという点で、この分野のリーダー的存在であるのは明らかだが、競合する他のオープンソース企業がないというわけではない。SUSEはCephをベースにした「SUSE Storage」を有しており、CanonicalはCephを自社製品である「Ubuntu Linux」に統合しようとしている。