Tech Sketch Bucket of Technical Chips by TIS Inc.

3つ目のストレージサービス "OpenStack Manila" ついに正式リリース

Pocket

本記事はオープンソースコンソーシアムのクラウド部会で OpenStack Summit Tokyo 2015(以降Summit)の参加報告をしたものをベースに書き起こしています。OpenStack LIBERTY リリースで新たに正式に加わったサービスの1つ「Manila(共有ファイルシステムサービス)」について概要およびアーキテクチャ、エンタープライズ志向な機能、今後の展望など報告しています。

2015-11-27 9-45-05

OpenStack Summit Tokyo 2015 でお披露目

本記事執筆時に最新の OpenStack のバージョン LIBERTY から正式に OpenStack Manila がリリースされています。Manila は共有ファイルシステムを提供するサービスです。OpenStackの中で重要なコンポーネントの1つ「ストレージ」にあたるサービスとして位置付けられます。これまでブロックストレージの Cinder、オブジェクトストレージの Swift がありました。クラウドOSという特性上これらの2つが先にコアとなっていましたが、昨今のITシステムにおいてはファイルベースのストレージもかなり重要な位置を占めており、仮想化基盤やエンタープライズ・アプリケーションでも積極的に使われている背景から Manila のリリースにつながっています。2016年には$34.6B(執筆時のレートで約4兆円)ほどの市場になると言われています。(https://wiki.openstack.org/wiki/Manila)

2015-11-27 9-55-55

Manila の用途

通常のファイルサーバとしての用途の他にデータベース、エンタープライズ・アプリケーションはもはや企業利用として違和感はありません。更にビッグデータの領域(OpenStack であれば Sahara との組合せ)、昨今注目されているコンテナでの活用へと広がりつつあります。Summit では既にいくつかのソリューションが紹介されている場面もありました。

Manila のアーキテクチャ

もともと Cinder ベースで進められていたということもあり、非常に似ているプロセスの連携により構成されています。Manila そのものはプロビジョニング、オーケストレーションの前段を担うコントローラーとして機能します。manila-api がリクエストを受けてmanila-scheduler により調整され、manila-shareバックエンドをコントロールします。ここでいうバックエンドは後ほど解説します。

2015-11-27 9-49-55

シェアの提供方法(ベースコンフィグレーション)

具体的にシェアが作られ、使えるようになるまでの動きとオペレーションをベースとなるコンフィグレーションを元に見ていきます。

  1. ユーザが「シェアを作成(manila create ...)する」リクエスト送信
  2. Manila は Nova へシェア用のインスタンスを起動するようにリクエスト
  3. Manila は Cinder へ指定された容量分のシェア領域確保のためブロックストレージを作成するようにリクエスト
  4. 作られた Cinder Volume はシェア用インスタンスにアタッチされ、指定された共有プロトコル( NFS や CIFS )を提供
  5. ユーザは作られたシェアに ACL を設定
  6. ユーザは自身のテナント内の ACL 許可されたインスタンスからシェア領域をマウントしアクセス

2015-11-27 9-49-41

ユーザのインスタンスからシェア領域へのアクセスはシェア用のネットワークを利用することになるため、一部 Neutron が関連している部分が存在します。個別のプライベートネットワーク内だけにシェアを提供できるためセキュアマルチテナントが実現できます。

3rd Party ストレージの有効利用も可

先ほどのベースコンフィグレーションでは Manila は Cinder からボリュームを切り出すことをしていました。これが先ほどの「バックエンド」の1つであり、標準では Generic Driver がこの動作を行います。バックエンドは複数セットすることができ OSS で構成される分散ファイルシステムや、3rd Party 製のエンタープライズストレージも利用することができます。よってそれぞれに専用の Driver が既存で提供されており活用することができます。

2015-11-27 9-49-24

例えば、バックエンドのストレージ自体に共有ファイルサービスが提供可能なものがあれば、共有プロトコルの提供自体もそちらに任せることができ、更にバックエンドの提供可能な様々な機能(スナップショットやシンプロビジョニング等)もオフロードさせることができます。(これは Cinder のバックエンドと同じ意味合いです。)

エンタープライズレディな充実機能

前述で機能の話が少しでましたが、既存ストレージで利用されているものが現時点でいくつかレディになっています。Summit でもいくつか紹介されていました。

2015-11-27 9-49-05

シェア領域の伸縮、RDBMS・複数のアプリケーション連携などでは重要な整合性のとれたスナップショットへの対応、シンプロビジョニングはバックエンドがサポートされるものに限定されますが利用可能です。シェアマイグレーションは試験的な段階ではありますが、同一ホストのプール間やホスト間のマイグレーションができるようになってるようです。

今後の改良ポイントや機能拡張

Summit では今後の開発プランについても紹介されており、特にデザインサミットの方ではその詳細についてディスカッションが行われていました。写真のバックはその風景です。特にMITAKAリリースへ向けてディスカッションが行われていて、噂には聞いていましたがリアルに仕様の方向性が固まっていく様は圧巻でした。少しご紹介します。

2015-11-27 9-48-48

特に議論の尺があったのが「QoS」についてです。ここは元ストレージベンダにいた人間としてはエンタープライズには必須なところです。もともとストレージは性能課題の悪者にされやすいため、そこをしっかりと担保するための重要性は特にクラウド基盤においてマルチテナント利用する上では重要なのです。他にも、ベースコンフィグレーションの例の時にシェアをユーザがマウントしなければ利用できなかったのですがそこを自動化する計画であったり、可用性・データ保護の面の機能強化も検討されていました。いくつか Cinder やバックエンドのストレージとの調整(機能がコンフリクトするところ)が必要そうなところがあり難航する雰囲気もありました。しかし、それはよりエンタープライズ志向で議論が進んでいたためでもあるので今後に期待したいとおもいます。

2015-11-27 9-45-51

Summit はお祭り騒ぎだけではなく、真面目な議論も垣間見れてとても刺激を受けました。私は開発者色は強くはないですが、今後も OpenStack コミュニティに何らか貢献していきたいと思います。特に引き続き Manila 中心にウォッチしていきます。

参考

スライドシェア

リンク

  • https://wiki.openstack.org/wiki/Manila
エンジニア採用中!私たちと一緒に働いてみませんか?