Swift最新動向:次リリースではErasure Codeや性能面の強化、メールアーカイブやIoTの事例が拡大
これから数回に分けて、OpenStack Summitの開発者会議(Design Summit)に参加した技術者から各プロジェクトのホットトピックを紹介します。まず最初はSwiftです。
OpenStack SwiftはOpenStack発足当時からあるプロジェクトでスケール性の高いオブジェクトストレージを実現するためのオープンソースソフトウェアです。初日のKeynoteでも報告されていましたが、Swiftはリリース当時からRackspace※1のストレージサービスとして利用されていたため、成熟度、利用実績共に、非常に高いソフトウェアとなっています。
デザインサミットセッション
Swiftは現在でも様々な機能拡張、改善が進められています。この記事ではOpenStack Summit Tokyoのデザインサミットセッションで話題になったErasure Code、Encryption、Container-Sharding、Global EC Cluster、Container-Sync、Hummingbirdの6つの開発中の機能※2について少し深く紹介したいと思います。
※2: Swift Design Summit Etherpad
Erasure Code
近年、SwiftではErasure Codeという容量コストを劇的に下げる仕組みの開発に取り組んできました。約1年半の開発期間をかけてKiloでβ版としてリリースされた本機能ですがLibertyリリースでさらに開発が進み、特に条件付GETや書き込み時の動作が改善されました。PTL John Dickinsonのカンファレンスセッション※3で、おおよそ実用段階に来ていると紹介された本機能ですが、Mitakaサイクルでは上書き時やクラスタ拡張時などの組み合わせ利用時に起こり得るコーナーケースについても改善に取り組んでいく予定になっています。
※3: Swift Erasure Code Performance vs Replication: Analysis and Recommendations
Encryption
Encryptionは保存されるデータをSwift側で暗号化する機能で外部の鍵管理システムと連携し動作します。LibertyサイクルではPUT/GETなど、データの保存/取り出しに関する基本的な機能とアーキテクチャの開発に取り組んできました。しかし、暗号化の粒度や、対象とする脅威モデルによって実装方針が変わるため、開発がとても難航しているプロジェクトでもあります。特にSwiftの既存機能であるバージョニングや、マルチアップロードなどに対してどう対応していくかの検討をMitakaサイクルで行っていく予定になっています。実装を簡単にするためにセキュリティの低いモデル実装を行う方針で進んでいますが、動向については今注意深く見ていく必要がありそうです。
Container Sharding
Container Shardingは一つのコンテナに多数のオブジェクトが存在する場合に性能が劣化する問題を解決するために、コンテナデータを分割しようという提案です。元のContainerを複数に分割し、分割コンテナへのポインタを管理するPivotコンテナを作るという方針で進んでいます。実装も進んでおり、今回のサミットでは現在の方針で問題となっている性能問題が改善されることが報告されました。
Global EC Cluster
Erasure Code機能をマルチデータセンタで利用しようとした時に、1データセンタでのデータの堅牢性/性能を保証するための機能提案です。現在のステータスではProof Of Conceptのコードで、ある程度の性能が担保できることがわかってきたので、EC作業の残タスクや、ポリシー毎のGlobal Cluster機能の設定など、実際のマルチデータセンタへ適用する際の諸問題を解決することで、導入への進捗が期待できます。
Container-Sync
複数のSwiftクラスタ間で同期をとるための仕組みであるContainer-Syncで無駄なトラフィックを省くための提案がIBM※4から出されています。転送の重複排除や、並列転送の工夫などリーズナブルな点が多いため、既存機能と調整しつつ、Mitakaまでに進捗があると思われます。
Hummingbird
PythonのGILなどによるIO並列度の問題を解消するために提案されているObject-Server/Object-ReplicatorのGo言語での書き直しをSwiftではHummingbirdプロジェクトと呼んでいます。RackspaceによるとHummingbirdでは既存のプロトコルをサポートしつつ、REPCONという新しいプロトコルを提案しています。REPCONではIO並列度以外にも様々な性能改善の工夫が施されているため、コミュニティサイドでは、まず、この新しいプロトコルをPython実装で検証、導入の検討をしていく方向で話が進んでいます。
このように、OpenStackの中で最も安定したプロジェクトの一つでもなお、盛んに機能開発が行われています。このMitakaサイクルでも大きな改善の期待できるSwift、今後も期待できそうです。
ここで合わせてSwiftに関するカンファレンスとマーケットプレイスの様子もご紹介します。
カンファレンスセッション
デザインサミットセッションが技術者の開発方針を検討する場である一方、カンファレンスセッションは適用事例や独自の試みなどが紹介される場です。今回のカンファレンスセッションでもSwiftに関するセッションは多数あり、キャリアのメールシステムにSwiftを実装した事例※5や、Swiftの記憶領域にtapeデバイスを利用するために検討しなければならないこと※6など、盛りだくさんの内容でした。
※5: Know-how of Challenging Deploy/Operation NTT Docomo's Mail Cloud System Powered by OpenStack Swift
※6: Adapting Swift for Tape Storage or other high-latency media
中には、Internet of Things(IoT)のデータ格納基盤として利用するために、検索機能を持たせたSwiftを構築したというセッション※7もありました。内容としては、検索用基盤としてElasticsearch※8を別途構築、Swiftのミドルウェアでリクエストからメタデータを分離してElasticsearch上に格納、格納されたデータはリクエストに応じてElasticsearch経由で検索できるといったものでした。セッション内では、街中で運行されるバスの位置情報を格納し、指定した時間帯のバスの配置密度を地図上に表示するシステムのデモが行われました。
※7: Storlets: Making Swift More Software Defined Than Ever
※8: https://www.elastic.co/products/elasticsearch
このデモからは、IoTな世界においてSwiftが大いにその力を発揮する可能性を感じることができました。これらのセッションはYouTubeで公開されているので、是非確認してみてください。
マーケットプレイス
マーケットプレイスはOpenStackでビジネスを行う企業が各社の製品をアピールする場です。各社のブースでは製品に関する質問や議論が活発に行われており、会場はとても活気にあふれていました。主な展示物としてはOpenStackで構築されたパブリッククラウドプロバイダー、VMware※9等の各種仮想化基盤との統合管理、構築コンサルなどで、Swiftを含めたOpenStackの全コンポーネントを包括的に扱う製品が多数でした。しかし、それとは別にSwiftStack※10、Scarity※11、Cleversafe※12といった有名なSoftware Defined Storage製品が単独でブース出展されており、Swiftをはじめとするオブジェクトストレージに対するニーズは確かに存在すると感じました。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Swift最新動向:Go言語実装と暗号化が導入間近。File Systemインテグレーションがキーに!
- 8周年を迎えたOpenStack Swift:Amazon S3との連携が強化、マルチクラウドとファイルシステムをサポート
- OpenStackコミッター座談会~「OpenStack Summit Tokyo 2015に向けて」
- コンテナ連携が進むOpenStack
- OpenStack Summit(Austin)報告会 #tistudy201605開催レポート
- 「OpenStack Summit May 2015 Vancouver」レポート #4(デザインサミットセッション)
- Nova最新動向:スコープを広げず安定性と機能性を追求
- OpenStackのセミナーでコントリビューターたちが語ったOpenStackの未来
- OpenStack特化のバックアップソリューションを手がけるTrilio Data
- Ironic最新動向:待望のマルチテナント対応が視野に。ストレージや運用自動化も進展