Ceph and GlusterFS Advent Calendar 最後の記事は、Cephのこれからについてまとめます。
Cephの開発項目
Cephの開発項目一覧は、Blueprints - Ceph Wikに一覧でまとまっていて、誰でも見ることができます。各バージョンごとに一覧になっていてわかりやすいですね。もちろん、予定なのでずれることや、キャンセルされることもあります。
この記事では、この多数ある開発項目一覧から、大きな項目や、注力されている項目をいくつかピックアップしてみます。
CephFS関連
CephFSはSageが「最優先で開発を進めている項目の一つ」と繰り返し発言しているように、かなり重要な項目として認識されているようです。
最近ceph-develにthe state of cephfs in giantというメールがSageから投げられました。そこに書かれていることをまとめると、
- GiantではSingle Active MDSの構成でそこそこ動く。Multi MDSの構成はまだバグがある
- カーネルドライバとFUSEドライバ両方とも動く
と書かれています。
Single-mdsではひとまず安定して使えるはずですが、multi-mdsで使うと、まだ"expect some stability issues that could lead to data loss."という状態のようです。
そして、今後の開発課題として
- CephFS: Forward Scrub
- CephFS: Hadoop Support
- Multi-mds、 スナップショット、Ganesha NFS、など
が挙げられています。
まだしばらくプロダクション環境で安定して利用するには時間がかかりそうですが、構成によってはそんなに遠くないのかもしれません。
RGWの強化
RGWで、Amazon S3のようなオブジェクトのバージョニングをサポートしようというblueprintが掲載されています。これが実現されれば、オブジェクトの履歴が残り、より安全な運用が可能になります。
また、RGWのスケーラビリティの問題にも対応が計画されています。rgw: bucket index scalabilityという項目です。現在は一つのバケットのオブジェクト数が数百万を超えると、インデックスを格納しているオブジェクトをbackfill/recoveryしている間は、PUTリクエストをブロックしてしまうという問題があります。これを解決するために、インデックスをshardingする実装が進行中です。
Ceph Cold Storage に向けて
Cold Storageは、Amazon Glacierのようにアクセス頻度が少ないデータを安価に長期保存するための仕組みです。Cephも、Cold Storageとしての利用に適した機能を計画しています。
電源状態を考慮したCRUSH
例えばレプリケーションが3つある場合に、3台のOSDのうち1台を代わる代わる順番に電源を落としておき、残りの2台でデータの読み書きを行う、といったアイデアがあります。電源状態が変わったときに、古いデータの更新を行います。
実現すれば、電気代を節約することができます。
オブジェクトの「スタブ」
Cephに外部ストレージをプラグイン形式でサポートさせ、要求があった場合に直接そちらを参照するための仕組みが検討されています。例えば実態はテープドライブに格納されているとして、Ceph内にはテープに格納されているという情報(スタブ)を記録します。Cephよりも安価で遅いストレージを組み合わせて使うことが可能になります。
Dockerとの組み合わせ
CephをDockerと組み合わせて利用する試みがいくつか列挙されています。
- Deisと呼ばれるOSSのPaaSと組み合わせて利用
- Dockerのストレージドライバとして組み込んで利用
上記は動作するものができており、コンテナ環境のストレージとしてもCephが広く使われるようになるかもしれません。
RADOSの信頼性向上
いくつか、RADOSの信頼性を向上させるような試みが計画されています。
- アイドル時にオブジェクト全体のチェックサムを確認
- Scrub / repair を強化する
- Scrub / repair のI/O優先度をより適切に管理する
- 使用率がnearfullになったosdのweightを自動的に下げる
- 同時に複数のOSDから並列に読み込み、大規模システムでのレイテンシの問題を解決
まとめ
ここに挙げたのはほんの一例です。他にも多数の新機能が提案され、開発されています。今後のリリースも楽しみですね。
メリークリスマス!