「OpenStack Summit Tokyo 2015」では、OpenStackのコアコンポーネントに加えて、OpenStackと連携する技術に関する数多くのセッションが見受けられた。ここでは、OpenStackと連携する分散ストレージソフトウェア「Ceph」のオリジナル開発者であるSage Weilによるセッションを紹介する。
OpenStackの定番ストレージとなった「Ceph」
今回のOpenStack Summit開催に先駆けて、OpenStack Foundationが実施したユーザーサーベイでは、62%のユーザーがOpenStackのブロックストレージコンポーネント「Cinder」のバックエンドとしてCephを使用しているという結果が報告された。本番環境でもトップを誇る採用率となっている。
Cephは、多数の物理サーバの内蔵ストレージを束ねてストレージプールを構成する、いわゆる分散ストレージソフトウェアだ。Red HatのSage Weilを中心とするコミュニティーでオープンソースとして開発が進められている。
このようなCephの高い採用率を反映するかのように、今回のOpenStack Summitでは、Cephに関連する多数のセッションが開かれていた。実際、セッションスケジュールを確認するために、事前に公式スケジュールから「ceph」というキーワードで検索した所、20以上のセッションが発見された。
そして、その中でも印象に残ったのは、サーバやソリッドステートドライブ(SSD)、ネットワークスイッチなどを提供するハードウェアベンダーがこぞってCephのベンチマーク結果を報告していた点だ。分散ストレージソフトウェアは、コモディティハードウェアを利用してストレージを構築できることが特徴だが、当然ながら、高い性能を実現する上では、SSDや高速ネットワークスイッチなどの活用が必要となる。
Cephの性能向上に向けたハードウェアベンダーからの貢献は、開発コミュニティーでも期待が高いものと想像される。SSDを利用したCephの性能向上に関するセッションには、オリジナル開発者であるSage自身も驚きを示すツイートを残していた。
そして、もうひとつ、筆者の興味を引いたのが、Sageによる「The State of Ceph, Manila, and Containers in OpenStack」というタイトルのセッションだ。このセッションでは、Cephのストレージクラスタ上に分散ファイルシステムを構成する「CephFS」に関する話題が中心となった。
CephFSを解説するSage Weil氏
安定版「CephFS」の発表
Cephは、「RADOS」とよばれる分散オブジェクトストアがすべての機能の根本となる。RADOSにOpenStack Swift、Amazon S3互換のAPIを提供する「RADOS Gateway」を組み合わせることで、オブジェクトストレージとしての利用が可能になる。
あるいは、OpenStackのコンピュートノードに「RADOS Block Device(RBD)」のモジュールを組み込むと、Cephのクラスタ上に作成した仮想的なブロックデバイスを仮想マシンインスタンスに接続することが可能になる。この場合、内部的には、ブロックデバイスを一定サイズのチャンクに分割して、それぞれがRADOS上のオブジェクトとして保存される形になる。CinderのバックエンドとしてCephを利用する場合は、この機能が利用されている。
しかしながら、SageがCephの開発をスタートした当初の目標は、オブジェクトストレージやブロックデバイスではなく、分散ファイルシステム「CephFS」を実現することであった。ファイルシステムにおいては、一般に、ディレクトリツリーの構造を示す「メタデータ領域」と実際のファイルの中身を保存する「データ領域」が必要となる。CephFSでは、これらをともにRADOS上のオブジェクトとして保存する構造となる。
CephFSのアーキテクチャ(発表スライドから引用)
CephFSの開発はこれまでも長く続けられてきたが、安定性に問題があるため、実験的な機能と位置付けられていた。今回のSageのセッションでは、2016年にリリースされる次期バージョンでは、ついにCephFSが安定版として提供されることが発表された。CephFSの長い開発の道のりを知るオーディエンスからは、自然に拍手が湧き上がっていた。
現在、開発コミュニティーでは、ファイルシステムの整合性チェックや問題判別のツールなどCephFSの利用を支援するツールの開発を急いでいるそうだ。