Swift 2.20.0の鳥瞰 第26回 19年01月 / 最終更新:2019.01.09

こんにちはー。野田貴子です。今月も海外のOpenStackコラムを意訳してご紹介します。ご参考いただければ幸いです。

#

OpenStack Swift(http://swift.openstack.org/)は、耐久性、拡張性、そして可用性の高いオブジェクトストレージシステムです。非構造化データを格納するために設計されており、ベアメタル、VM、コンテナなど、スケーラブルなコンピューティングインフラの完璧な相棒となります。

 

ここに、Swift 2.20.0がリリースされたことをお知らせいたします。このリリースには多くの改善が含まれていますが、大部分の更新内容はS3との互換性、暗号化、そしてパフォーマンス(最適化)の3つに分類されます。

 

S3との互換性の改善

 

Swiftは2018年前半にS3との互換性を取り入れました。それ以来、私たちはかなりの数の改良に取り組んできました。私たちが行ったある重要な変更は、S3クライアントが期待する形式により近づくようにETagレスポンスヘッダーを更新したことです。具体的には、マルチパートオブジェクトをダウンロードするとき、S3はETagにリテラルの「-」を含め、クライアントはこの情報を使用してダウンロード後にデータを検証する方法、あるいは検証するかどうかを決定しています。SwiftのS3互換レイヤーがこの機能と一致するようになり、より多くのS3クライアントがSwiftに対してシームレスに対応できるようになりました。

 

AWS v4のシグネチャー検証に加えた改善についても満足しています。以前はアカウントを認証するためにSwiftが署名済みのリクエストをKeystoneに送信する必要がありましたが、現在はSwiftは単にKeystoneから署名キーをリクエストしてリクエストをローカルで検証することができます。この変更により、SwiftのS3互換レイヤは1秒あたりの同時接続数とリクエスト数をさらに増やすことができました。

 

また、S3のバージョン管理に対する限定的なサポートを追加し、S3の動作とより厳密に一致するようにいくつかのデフォルト設定値を更新しました。

 

暗号化アップデート

 

Swiftは2016年中盤から保存データの暗号化をサポートしています。この機能はドライブがストレージクラスタを離れた場合にデータが漏れるリスクを軽減するために、ドライブに格納されているユーザーデータを保護するように設計されています。

 

Swiftの暗号化では「キーマスター」と呼ばれるものを使用して暗号化キーへのアクセスを管理しています。キーマスターは正しい暗号化キーの取得方法と取得先を知っているコードのことです。Swiftは、設定ファイルにデータを保存する基本キーマスター、OpenStack Barbicanサービスと通信するキーマスター、そしてKMIPプロトコルを使用して外部のキー管理システムと直接通信するキーマスターをサポートしています。

 

このSwiftのリリースでオペレータが同時に複数のキーマスターを使用できるようになりました。これにより、あるキープロバイダから別のキープロバイダへの移行が可能になりました。

 

パフォーマンスの最適化

 

パフォーマンス面では、このSwiftのリリースには抹消コードの同期プロセスの改善が含まれています。また、他のいくつかのバックグラウンドプロセスにチューニングパラメータを追加して、IOに制約されていないイベントで過度のCPUサイクルを消費しないようにしました。

 

参加方法

 

今回私はこのリリースの一部だけをハイライトしました。 すべての変更履歴は以下にあります。

https://github.com/openstack/swift/blob/master/CHANGELOG

 

このSwiftのリリースには、10人の新しいコントリビュータを含む30人以上の開発者が関わりました。

 

いつものように、みなさんはクライアントのダウンタイムなしでどんな古いバージョンからでもSwiftのこのバージョンにアップグレードすることができます。私はみなさんにSwift 2.20.0へのアップグレードをお勧めします。次のリリースに関する作業も多数あるため、参加されたい方はぜひ freenode IRCの#openstack-swiftにお寄りください。

 

※本コラムは以下の文章を意訳したものです。

引用元 

http://superuser.openstack.org/articles/a-birds-eye-view-of-swift-2-20-0/

※本コラムは原文執筆者が公式に発表しているものでなく、翻訳者が独自に意訳しているものです。