CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回は、「OpenStack Summit Tokyo/2015」に関連して、分散ファイルシステムCephFSを紹介します。分散ストレージソフトウェアCephは、OpenStackのブロックストレージ機能であるCinderのバックエンドとしての採用率が高いことで有名です。Cinderのバックエンドとして使用する場合は、RBD(RADOS Block Device)の機能を用いて、Cephのストレージプール上に仮想的なブロックデバイスを構成します。(RBDの仕組みについては、本連載の第45回を参照。)さらに、Cephは、分散ファイルシステム「CephFS」の機能も提供しており、ストレージプール上の仮想的なファイルシステムを複数のサーバーから同時にマウントしてアクセスすることが可能になります。
今回のOpenStack Summitでは、Cephのオリジナル開発者であるSage Weilが、CephFSとOpenStackを組み合わせた活用についてのセッションを行っており、「OpenStack Manila」とのインテグレーションやコンテナと組み合わせた利用方法を説明していました(*1)。そこで、今回のコラムでは、CephFSの基本的な仕組みを解説しておきたいと思います。
一般に、ファイルシステムは、ディレクトリツリーの構造や個々のファイルの属性を記録する「メタデータ」の領域と、実データを保存する「データブロック」の領域を持ちます。CephFSでは、これらのデータをどちらもRADOS上のオブジェクトとして保存します。これにより、複数のクライアントが同じファイルシステムを同時に利用することが可能になります。
ただし、それぞれのクライアントがバラバラにデータを読み書きすると、ファイルの整合性が保たれなくなります。そこで、メタデータについては、専用のメタデータサーバー(MDS)を経由してアクセスします(図1)。MDSは、RADOS上のメタデータをメモリ上に読み込んでおき、必要な情報をクライアントに返答します。クライアントがファイルを変更する場合は、事前にメタデータサーバーに変更のジャーナルを書き込みます。これにより、複数クライアントからの書き込み順序を制御して、同時書き込みによるファイル破損を防止します。
図1 CephFSのアーキテクチャー
また、MDSの処理がボトルネックにならないように、複数のMDSが並列処理を行うようになっています。図2に示すように、ディレクトリツリー全体を分割して、それぞれのパートを異なるMDSが担当します。この分割はダイナミックに行われるようになっており、特にアクセス頻度の高い領域は、担当範囲がより細かく分割されます。それぞれのMDSは、担当部分のメタデータをメモリ上にキャッシュして処理するため、ファイルシステムのアクセス性能を向上するために、MDSには、なるべく多くのメモリを割り当てることが推奨されています。MDSが障害で停止した場合、該当のMDSが担当していた領域は、他のMDSに担当が割り当てられるようになっており、MDSの冗長性も確保されています。
図2 複数のMDSがディレクトリツリーを分割して担当
なお、CephFSを利用するクライアントには、CephFSを利用するためのカーネルモジュールが必要となりますが、このモジュールは、すでに、Linuxカーネルの標準モジュールとして採用されています。最近のLinuxディストリビューションであれば、特別な追加設定なしにCephFSをマウントして利用することが可能です。
CephFSは、そのアーキテクチャーが2007年に論文として公開された後、Sage Weilを中心とするコミュニティによって、長く開発が続けられてきました。これまでは、安定性に問題があるため実験的な機能として位置づけられていましたが、OpenStack Summitのセッションでは、2016年にリリースされる次期バージョンでは、ついに安定版としての提供が開始されることが報告されました。今後、Cephは、ブロックデバイスだけではなく、分散ファイルシステムとしてもOpenStackとの組み合わせ活用が進んでいくものと期待されます。
それでは、次回もまた、OpenStack Summitのセッションからの話題をお届けしたいと思います。
*1 「CephFS」が安定版に--OpenStack定番ストレージ「Ceph」の最新動向
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes