Pike バージョンのリリースノート

2.15.2

バグ修正

  • Fixed a cache invalidation issue related to GET and PUT requests to containers that would occasionally cause object PUTs to a container to 404 after the container had been successfully created.

  • SLO クラウドへの POST が X-Static-Large-Object メタデータを変更できる、競合状態を削除しました。

  • 消去コード付きオブジェクトへの範囲リクエストでの稀なソケットリークを修正しました。

  • Fix SLO delete for accounts with non-ASCII names.

  • Fixed an issue in COPY where concurrent requests may have copied the wrong data.

  • Fixed time skew when using X-Delete-After.

  • SLO 読み込みへの 206 Partial Content 応答で ETag ヘッダーを送信します。

2.15.1

バグ修正

  • 2.15.0 で導入されたバグを修正しました。 EC ポリシーが設定されていない場合は、オブジェクト再構成ツールがトレースバックで終了します。

  • tpool スレッドからのロギング時のデッドロックを修正しました。

    オブジェクトサーバーは、パフォーマンスのためにメインの pthread の外部で特定の IO 集約型メソッドを実行します。以前は、これらのメソッドの 1 つがログに記録しようとすると、クラッシュが発生し、最終的にオブジェクトサーバーはデッドロックされた数百または数千のグリーンスレッドを持つに至ります。この修正は、異なる greenlet と異なる pthread にまたがって動作する mutex を使用することです。

  • オブジェクト再構成は、期限切れのオブジェクトの EC フラグメントを再構築できるようになりました。

その他の注意点

  • 様々な他のマイナーなバグ修正と改善。

2.15.0

新機能

  • 複合リング機能を追加しました。

    複合リングは、コンポーネントリングの合計に等しい複製数を有して形成する単一リングが結合されたコンポーネントリングを2つ以上含みます。 コンポーネントリングは、別個の領域に別個のデバイスを使用して独立して構築されているため、コンポーネント間のレプリカの分散を保証できます。

    複合リングは、明示的なレプリカの配置と、グローバル消去コードポリシーのための「複製された EC」に使用できます。

    複合リングは「協調的」リバランスをサポートしています。つまり、リバランス時に、コンポーネントリング内でパーティションを移動する前に、すべてのコンポーネントリングに諮られます。 これにより、複数のコンポーネントで同じパーティションを同時に移動されることがなくなります。

    複合リングを作成するための CLI ツールはまだありませんが、この高度な機能をサポートするためにリングモジュールで機能が有効になっています。 CLI ツールは、以降のリリースで提供されます。

    詳細は docs を参照してください。

  • EC 再構成プロセスは、複数の並列ワーカーのサポートを追加することによって劇的に改善されました。 高い並列性を得るためには複数のプロセスが必要です。この変更により、多くのドライブを搭載したサーバーでは大幅に高速なリバランスが行われます。

    現在のところ、デフォルトはまだ1つのプロセスしかなく、ワーカーはいません。多くの再構成ワーカーを得るためには、 [object-reconstructor] セクションの reconstructor_workers をいくつかの合計数( <= ノード上にあるデバイスの数)を設定してください。

  • Add support to increase object ring partition power transparently to end users and with no cluster downtime. Increasing the ring part power allows for incremental adjustment to the upper bound of the cluster size. Please review the full docs for more information.

  • ポリシーごとのプロキシー設定オプションのサポートが追加されました。これにより、ポリシーごとのアフィニティオプションを、複製された EC ポリシーおよび複合リングで使用するように設定できます。ポリシーごとの conf セクションにある特定のオプションは、 [app:proxy-server] セクションで設定できる同等のものよりも優先されます。現在、このように処理されるオプションは sorting_methodread_affinitywrite_affinitywrite_affinity_node_countwrite_affinity_handoff_delete_count です。

  • ダイナミックラージオブジェクト(DLO)でのバージョン管理された書き込みを有効にしました。

  • 書き込みアフィニティは、オブジェクトの削除を認識します。

    以前は、書き込みアフィニティを設定したマルチリージョンの Swift 構成でオブジェクトを削除すると、オブジェクトが適切なノードにレプリケートされる前にオブジェクトを削除すると常に 404 となりました。

    Swiftは、 write_affinity_handoff_delete_count を使って、最終応答の候補をもっと多く得るために、どのくらいのローカルハンドオフノードが要求を送信するべきかを定義します。デフォルト値 "auto" は、 Swift がレプリカの数と現在のクラスタートポロジーに基づいて自動的に数を計算することを意味します。

  • 既知の悪い EC スキームの要件を非推奨にしました。

    isa_l_rs_vandnparity >= 5 を使った消去コード化ストレージポリシーは廃止予定にする必要があり、このようなポリシーで新しいコンテナーが作成されないようにする必要があります。この設定は、データ耐久性に害を与えることが知られています。そのようなポリシー内のデータは、新しいポリシーに移行する必要があります。詳細は、 Launchpad bug 1639691 を参照してください。

  • 消去コード再構成プロトコルを最適化して、サーバーの IO 負荷を軽減します。

  • SSYNC が期限切れのオブジェクトを複製できないバグを修正しました。

  • オブジェクトがスラッシュで開始/終了するときの domain_remap のバグを修正しました。

  • ラージオブジェクトをコピーしたときの copy ミドルウェアのソケットリークを修正しました。

  • swiftdir オプションが尊重されなかったいくつかの領域を修正しました。

  • swift-recon はストレージポリシーの別名を尊重するようになりました。

  • cname_lookup ミドルウェアは、定義されていれば、システムのデフォルトではなく DNS ルックアップに使用される nameservers 設定変数を受け入れるようになりました。

  • デバイスのルートディレクトリの ".ismount" ファイルのチェックを追加することにより、コンテナー化された環境で mount_check オプションを使用可能にします。

  • 非推奨の vm_test_mode オプションを削除しました。

  • オブジェクトとコンテナーのサーバー設定オプション slowdown は、新しい objects_per_second オプションと containers_per_second オプションのために廃止されました。

  • swift-ring-builder からのデバイスの出力は、リージョン、ゾーン、IP、デバイスによって、並べ替えられます。

  • openstack-manuals プロジェクトからドキュメントコンテンツをインポートしました。

  • 様々な他のマイナーなバグ修正と改善。

2.14.0

新機能

  • EC フラグメント複製 - 基盤的なグローバル EC クラスタをサポートしました。

  • name_check と cname_lookup キーが /info に追加されました。

  • CORS 応答用の Vary ヘッダーを追加しました。

  • Swift プロセスがいつも UTC を使うように設定しました。

  • デバイスごとの再構成の統計を削除しました。再構成は、それらを通過する前にパーツをシャッフルするので、それらの統計はもはや意味をなしません。

  • domain_remap は "storage_domain" にあるドメインのリストを受け入れるようになりました。

  • ホストが storage_domain にある場合、CNAME に従わないようにしました。

  • "cors_expose_headers" でクラスタ全体の CORS Expose-Headers 設定を有効にします。

  • cname_lookup でネームサーバーからのすべての応答をキャッシュします。

バグ修正

  • コンテナードライブのエラーにより、残りのドライブに二重のスペースが使用されるというエラーを修正しました。コンテナーまたはアカウントデータベースを使用したドライブのマウントが解除されたときに、このバグは残りのすべてのドライブにハンドオフレプリカを作成し、ドライブの使用容量を増やし、クラスターを満たしていました。。

  • 非 ASCII 名のオブジェクトが再構築されず、再構築プロセスがハングアップする原因となるオブジェクト再構成の UnicodeDecodeError が修正されました。

  • ASCII メタデータ値と非 ASCII メタデータ値が混在するとエラーが発生する、 ssync のエンコードの問題を修正しました。

  • サブリクエストの正しいリクエストタイプをコピーの後ろに記録します。

  • 複製されたポリシーへのチャンクされた転送時のクライアント切断で、オブジェクトサーバーにログされたトレースバックを防止します。

  • パーティションサフィックスの無効化がスキップされた可能性のある hashes.pkl の更新時の競合状態を修正しました。

  • 受信したフラグメントインデックスを再構築ログの警告に含めました。

  • 条件付きリクエストの正しいステータスコードを記録します。

その他の注意点

  • common/manager.pyと swift-init から auth-server のサポートを削除しました。

  • 様々な他のマイナーなバグ修正と改善。