Swift最新動向:Go言語実装と暗号化が導入間近。File Systemインテグレーションがキーに!

2016年5月23日(月)
露﨑 浩太

2016/4/25~29にアメリカ・テキサス州オースチンでOpenStack Summitが開催されました。参加人数7,500名と過去最高(Vancouver Summitの6,000名)を更新し、OpenStackのエコシステムが引き続き拡大していることがうかがえます。さて、前回のOpenStack Summit Tokyoレポートに引き続き、今回もNEC/NTTグループのコミュニティ開発者がOpenStackの最新動向、次のNewtonリリースに向けたトピックをレポートします。まず第一弾はSwiftからです。

OpenStack SwiftはOpenStackの初期からあるプロジェクトの一つで、VMのイメージや、画像、音声など大規模なデータを格納するオブジェクトストレージを実現するためのコンポーネントです。Mitakaのリリースサイクルでは、複数オブジェクトからの並列読み込み機能や、オブジェクトメタデータの更新のオーバヘッド削減など、主に性能面で劇的な改善が行われました。本稿ではAustinサミットで議論されたSwiftの最新動向についてレポートしていきたいと思います。

Big Things in Newton

今回のデザインサミットでSwiftコミュニティでは大きな決定がありました。本サイクルでの「Go実装(Hummingbird)」と「Encryption」のマージに向けて本格的に活動を開始することです。

HummingbirdはSwiftをGo言語で再実装するというプロジェクトでRackSpaceにより提案されてきました1。Go言語にすることによりさまざまな性能改善の効果が期待できます。発足当初は開発中のfeatureブランチとして運用、管理されていましたが、Rackspaceの強い意向と、プロダクションでの利用実績を考慮し、本サイクルで導入に向けての取り組みを開始し、Ocataサイクルの初期のマージを目標にすることになりました2。 Go言語をサポートするというOpenStackの中でも大きな決断になりますが、Technical Committee, Thierry氏からの助言もあり3、OpenStackの公式サポート言語にGo言語を含める議論が行われています。

※1: https://www.openstack.org/summit/tokyo-2015/videos/presentation/omg-objects-the-unscaly-underbelly-of-openstack-swift

※2: http://lists.openstack.org/pipermail/openstack-dev/2016-May/093680.html

※3 :http://lists.openstack.org/pipermail/openstack-dev/2016-May/093733.html

EncryptionはSwiftのデータを暗号化して保存できる機能です。Tokyoサミットの時点では、暗号化の範囲や鍵管理方式の方針決定など大きな課題が残っていた本機能ですが、シンプルなリファレンスモデル方式(OSSの実装そのままでは非セキュアであり、プロダクションでは各ベンダが個々の要件に応じて実装する)とすることにより実装が進み、Newtonを目標に、masterブランチへのマージが検討されています。

いずれもOpenStack、Swiftにとって大きな変更となりますが、導入によってユーザは機能/性能面で大きな恩恵を受けられるプロジェクトであり、本サイクルでの目玉になることと思います。

注目の次期開発

今回のデザインサミットでSwiftの次期開発として注目を集めたのが「Auto-Tiering」「Metadata Search」「CompositeRing」の三つです。

Auto-TieringはSwiftのサポートするStorage-Policy4の機能を利用し、例えばアップロードされて一定時間経過したデータは低速大容量ストレージに移動するといったような、速度/コスト/容量のトレードオフを解決する技術です。Tokyoサミットではアイディア段階であった本機能ですが、プロトタイプの実装が進みつつあり5、AustinサミットではSwift上でどのように、データの一貫性を保証するか、大量のデータから移動対象をどのように見つけるかなどについて、実装ベースの議論が進められました。 

※4: http://docs.openstack.org/developer/swift/overview_policies.html

※5: https://review.openstack.org/#/c/287057/

Auto-Tiering議論、ホワイトボードでガンガン議論するのがSwifters’ Style)

Metadata SearchはOpenStack Searchlightプロジェクト6と共同で進められている機能で、Swift内に保存されるメタデータを検索する機能です。Swiftでは、例えば、保存されているオブジェクトのうち、画像ファイル(メタデータにType: jpegやType: pngが設定されている)のみを検索する、といった事例に利用することを期待されています。大量のオブジェクトを格納するSwiftで重要な機能として注目を集め始めており、AustinサミットではSwift上のデータとの一貫性の取り方、他プロジェクトとの連携テストの方法などが議論されました。

Composite Ring7はSwift内のデータ配置をコントロールするRing8に対して、複数のRingを指定できるようにする機能です。この機能を実現することによって、例えば、ユーザのリクエストに応じて特定のデータセンタにレプリカがあることを保証したり、データセンタ毎にディスクの構成管理チームが異なる場合の変更の衝突を回避したりできるようになります。

※6: https://github.com/openstack/searchlight

※7: https://review.openstack.org/#/c/271920/

※8: http://docs.openstack.org/developer/swift/overview_ring.html

一般セッションではFileSystem APIとのインテグレーションがキーに

今回の一般セッション枠ではSwiftとFileSystemのインテグレーションに注目したものが多く採用されており、一般ユーザで「既存アプリへの適用」と「その先のオブジェクトストレージへの切り替え」が注目されているということを強く実感させられました。インテグレーションのシナリオには各社、個性が出ており、IBMが紹介したSwift-On-File9 + Manila10等OpenStackエコシステムを利用したソリューション11や、NTTデータ社のCloudFuse12などOpenStack外のOSSと組み合わせるもの13、また、SwiftのPTL(Project Team Lead)を始め多くのコアレビュアを擁するSwiftStackからは、FileSystemとSwift APIのBi-Directionalのデータアクセスをサポートし、この夏新たにOSSとして公開予定のProxyFSが紹介される14など、アプリケーションやユースケースに応じて様々な選択肢が提示されています。Swiftの導入を検討している方は是非参考にしてみてはいかがでしょうか。

※9: https://github.com/openstack/swiftonfile

※10: https://github.com/openstack/manila

※11: https://www.openstack.org/videos/video/amalgamating-manilla-and-swift-for-unified-data-sharing-across-instances

※12: https://github.com/redbo/cloudfuse

※13: https://www.openstack.org/videos/video/how-to-integrate-openstack-swift-to-your-legacy-system

※14: https://www.openstack.org/videos/video/file-this-swift-api-then-s3-api-and-now-posix-access-to-openstack-swift

おわりに

Hummingbird、Encryptionの2つの大きな機能は性能、機能面において間違いなくこのOpenStackのNewton開発サイクルの目玉となるでしょう。また、それと同時に、階層化機能の開発やSwiftStackからのProxyFSがリリース予定など、Swiftの機能範囲は確実に広がる方向性を見せつつあり、今後もまだまだ更なる進展が期待できそうです。

日本電信電話株式会社 NTTソフトウェアイノベーションセンタ

OpenStack「Swift」のコアデベロッパー。2012年よりOpenStack Swiftの研究開発に携わり、最近ではErasure Code、Global ClusterなどのSwiftの主要な機能の開発を行った。

連載バックナンバー

クラウドイベント

テレコムからIoTまでさまざまなユーザ事例が公開されるOpenStack

2016/8/29
昨今、OpenStackのユーザ事例は多分野、他業種に広がりを見せている。今回はその中から大規模な事例や、IoTに関する事例を取り上げて紹介する。
クラウド技術解説

Nova最新動向:スケジューラ、セル、ライブマイグレーションの改善は継続、他のプロジェクトとの連携が課題に

2016/7/25
OpenStackの中核コンポーネントであるNovaについて、Austinサミットで議論された内容から、その最新動向をお伝えする。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています