PR

8周年を迎えたOpenStack Swift:Amazon S3との連携が強化、マルチクラウドとファイルシステムをサポート

2018年7月3日(火)
露﨑 浩太

 ここでは、先日のOpenStack Summit Vancouver 2018から得られたOpenStack Swiftの最新動向を紹介していきます。

8周年を迎えたOpenStack Swift - 環境の変化とSwiftの開発

図1: 8周年を迎えたOpenStack Swift
図1: 8周年を迎えたOpenStack Swift

 SwiftはOpenStackの中でも開発が始まった当初から存在するプロジェクトで、オブジェクトストレージの機能を提供しています。最初のSwiftがRackSpaceでプロダクションにデプロイされたのは2010年の5月17日であり、このバンクーバサミットの直前で8周年を迎えたことになります。

 SwiftのProject Updateセッション※1でPTLのJohn Dickinson氏は「この8年でSwiftを取り巻く環境が大きく変わってきた」ということを強く主張しています。当初はAmazon Web Serviceの対抗として進められたOpenStackの開発ですが、現在のマルチクラウド環境の変化、運用の変化に合わせて、OSSの開発や方向性も柔軟に変化しています。John氏は、こうした環境の変化に追従し、ユーザの利用用途に合わせて開発を進めていくことが重要と考えており、最近のリリースに含まれる大きな変更や開発活動にもそれが現れています。

※1: https://www.openstack.org/videos/vancouver-2018/swift-project-update-1

 この8年間の軌跡でとりわけ印象的だったのは、開発当初のコード量は16,000行でシンプルな実装だったSwiftが、最新では約200,000行に及び、うち3/4はテストコードであるということです。テストコードは、基本的には機能の保守のために追加されていきますので、この実績値からSwiftが、いかにユーザが使っているAPIを大切にし、保守に注力しながら開発されているかがわかると思います。

Amazon S3とのエコシステムを意識した新機能たち

 Swiftの通算48回目のアップデートとなる2.18.0はバンクーバーサミットの後、5月30日にリリースされました。この2.18.0ではAmazon S3を意識した大きな機能が複数含まれています。

 Amazon S3互換API機能はそのうちの1つです。OpenStack Grizzlyの頃に機能整理の一環でサードパーティ化されたのち、NTTが中心となりメンテナンスしていました。最新の2.18.0のリリースから、SwiftがS3 APIを標準としてサポートするという方針でアップストリームのリポジトリに再度マージされました。この背景にあるのは、Swift APIに加えてAmazon S3 APIをSwiftの標準APIとして備えることで、マルチクラウド環境でのエコシステムとしてのSwift利用を促進していこうという考えです。

 もう1つの大きな機能であるContainer-ShardingもAmazon S3を意識しています。この機能は、Swiftのオブジェクトリストの取得に利用しているデータベースが、登録オブジェクト数の増加で肥大化する問題を解決するためのものです。具体的には、Swiftのオブジェクトリストを保持しているデータベースを複数の部分データベースに分割し、肥大化したデータベースへのアクセスや容量を分散します。

 この機能は特に、Amazon S3の「1アカウントに対するバケット数には上限があるが、1バケット内のオブジェクト数には上限がない」というルールを実現する上で重要です。1バケット内のオブジェクト数が非常に多くなった際にこのContainer-Shardingの機能を利用することで、データベースの肥大化やそれに伴う性能の問題を回避できるようになります。また特に重要なポイントは、「既存のSwiftクラスタに対して適用できる」ということであり、すでにこうした性能問題に直面しているユーザを直接的に助けていくことができます。

ProxyFSと1space - マルチクラウドとファイルシステムサポートに見るSwiftの将来性

 コミュニティとしてのSwiftの開発が進む一方で、ユースケースやエコシステムも面白い動きが出てきています。SwiftStak社のJoe Arnold氏は本サミットの発表※2で、SwiftのエコシステムであるProxyFSと、1spaceを利用したマルチクラウド時代のシングルネームスペースの実現というコンセプトを打ち出しました。

※2: https://www.openstack.org/videos/vancouver-2018/introduction-to-proxyfs-integrated-multi-cloud-filesystem-in-openstack-swift

図2: ProxyFSと1space
図2: ProxyFSと1space

 ProxyFSと1spaceはいずれも、SwiftStack社がgithub上でソースコードを公開しているOSSです。ProxyFSはSwift上で完全なPOSIXファイルシステムを実現し、1spaceはオンプレミスとクラウド間でデータを同期するソフトウェアです。

 ProxyFSのユニークな点は、異なるAPIに対する双方向でのデータの読み書きをサポートしていることです。そのため、ProxyFSのファイルシステムを経由してSwiftに書き込まれたデータをSwift APIやS3 APIを経由して読み出したり、またその逆も可能です。これによって、ファイルシステムが必要なレガシーアプリケーションを利用するユーザの期待に応えるだけでなく、クラウドネイティブなアプリケーションへの移行時に、元のデータを新しいオブジェクトストレージに移すことなく利用するなども可能です。

 一方、1spaceは、もともとオンプレミスのSwiftとAmazon S3のデータの同期のために作られていた「s3-sync」という機能が元になっています。1spaceはs3-syncの機能に加え、オンプレミスで保存されてから一定期間経ったファイルをクラウドストレージへ移動するといったような、ライフサイクル管理を含めたデータマネージメントをサポートする、と紹介されています。

 Joe氏の発表では特にProxyFSと1spaceの組み合わせによって「オンプレミスのファイル、オブジェクトストレージで書き込まれたデータを任意のクラウド上で同様にファイルやオブジェクトとして取り出せる」といったユースケースを想定していると紹介しました。

 今回のサミットで筆者は、SwiftをAI基盤として利用する可能性の検討について発表しました※3。完全なPOSIXファイルシステムを実現可能なProxyFSは、現在流行っているほとんどのAIフレームワークのデータ置き場として利用可能だろうという認識があり、非常に魅力的に感じました。Swiftそのものはスケーラビリティや堅牢性などで十分に実績のあるソフトウェアであり、こうした機能面でのエコシステムが入ってくることでユースケースはさらに拡大していくと考えられます。

※3: https://www.openstack.org/videos/vancouver-2018/case-study-large-scale-deployment-for-machine-learning-with-high-speed-storage

終わりに

 Swiftはパブリッククラウドでの導入やeBay※4のような大容量のデータを保存したいというユースケースに対して着実に実績を拡大している一方で、こうしたレガシーアプリのサポートやより使いやすいストレージシステムを目指したエコシステムの充実が進んできています。SwiftのProject Update※5では今回紹介した内容以外にも、Swift上でのFunctional-as-a-Serviceを目指したOpenStack Storlets、OpenStack Qinling、Swiftのログからbilling用の統計情報を取り出すsloggingなど、多様なエコシステムについて触れています。

 単なるデータバックアップ用のストレージとしてだけでなく、さまざまなユースケースやIT業界の動向に対応して柔軟に進化していくOpenStack Swiftの動向が今後も楽しみです。

※4: https://www.openstack.org/videos/vancouver-2018/how-swift-is-reshaping-the-future-of-storage-at-ebay

※5: https://www.openstack.org/videos/vancouver-2018/swift-project-update-1

図3: Swiftのエコシステム
図3: Swiftのエコシステム
日本電信電話株式会社 NTTソフトウェアイノベーションセンタ

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

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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