Swift最新動向:次リリースではErasure Codeや性能面の強化、メールアーカイブやIoTの事例が拡大

2015年11月9日(月)
中川 正章露﨑 浩太

これから数回に分けて、OpenStack Summitの開発者会議(Design Summit)に参加した技術者から各プロジェクトのホットトピックを紹介します。まず最初はSwiftです。

OpenStack SwiftはOpenStack発足当時からあるプロジェクトでスケール性の高いオブジェクトストレージを実現するためのオープンソースソフトウェアです。初日のKeynoteでも報告されていましたが、Swiftはリリース当時からRackspace※1のストレージサービスとして利用されていたため、成熟度、利用実績共に、非常に高いソフトウェアとなっています。

※1: http://www.rackspace.com/

デザインサミットの様子
デザインサミットの様子

デザインサミットセッション

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までに進捗があると思われます。

※4: http://www.ibm.com/jp-ja/

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をはじめとするオブジェクトストレージに対するニーズは確かに存在すると感じました。

※9: http://www.vmware.com/jp

※10: https://swiftstack.com/

※11: http://www.jp.scality.com/

※12: https://www.cleversafe.com/

株式会社NTTデータ

2011年よりOpenStackに関わる。国内向け大規模ミッションクリティカルシステムへのSwift導入、EUでの商用OpenStackの構築、共通開発基盤構築・運用など、OpenStackに関わる数多くの案件に従事。

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

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

連載バックナンバー

クラウドイベント

Neutron最新動向 : 活発なサブプロジェクトに注目

2015/12/25
OpenStackの各プロジェクトについて紹介をしてきましたが、最後はNeutronです。
クラウドイベント

Nova最新動向:スコープを広げず安定性と機能性を追求

2015/12/16
Novaのプロジェクトがどう運営されていくかはOpenStack全体にとって重要なポイントであり続けると思います。

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

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

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

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