Swift最新動向:Go言語実装と暗号化が導入間近。File Systemインテグレーションがキーに!
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言語を含める議論が行われています。
※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/
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
※12: https://github.com/redbo/cloudfuse
※13: https://www.openstack.org/videos/video/how-to-integrate-openstack-swift-to-your-legacy-system
おわりに
Hummingbird、Encryptionの2つの大きな機能は性能、機能面において間違いなくこのOpenStackのNewton開発サイクルの目玉となるでしょう。また、それと同時に、階層化機能の開発やSwiftStackからのProxyFSがリリース予定など、Swiftの機能範囲は確実に広がる方向性を見せつつあり、今後もまだまだ更なる進展が期待できそうです。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Swift最新動向:次リリースではErasure Codeや性能面の強化、メールアーカイブやIoTの事例が拡大
- Nova最新動向:スケジューラ、セル、ライブマイグレーションの改善は継続、他のプロジェクトとの連携が課題に
- 8周年を迎えたOpenStack Swift:Amazon S3との連携が強化、マルチクラウドとファイルシステムをサポート
- Congress最新動向: OpenStackプロジェクトのインテグレーションユースケースが続々登場
- コンテナ連携が進むOpenStack
- OpenStack Summit Austin 2016 真の勝者はユーザーだ
- OpenStack Summit(Austin)報告会 #tistudy201605開催レポート
- Novaの最新情報:Placement機能の発展と利用拡大、大規模な環境への適応
- Red Hatはテレコムキャリア向けにフォーカスしたユースケースで差別化
- 非IT企業にも利用が広がるOpenStack、ポスト東京サミットに向けて