検索

4.6. Ceph Object Gateway

download PDF

自動生成された内部トピックは、管理者のトピックリストコマンドに表示されなくなりました。

以前は、自動生成された内部トピックはトピックリストコマンドを介してユーザーに公開されていたため、ユーザーは自分が作成したトピックよりもはるかに多くのトピックを表示できました。

この修正により、内部の自動生成されたトピックは管理者のトピックリストコマンドに表示されなくなり、ユーザーには予想されるトピックのリストのみが表示されるようになりました。

Bugzilla:1954461

廃止されたバケット名フィールドはトピックリストコマンドに表示されなくなりました。

以前は、プルモード通知 (pubsub) の場合、通知はバケットに保存されていました。ただし、このモードは非推奨であるにもかかわらず、トピックリストコマンドには空のバケット名フィールドが引き続き表示されます。

この修正により、空のバケット名フィールドが削除されます。

Bugzilla:1954463

ライフサイクルの移行時に通知が送信されるようになりました。

以前は、移行時にディスパッチするロジック (有効期限とは別) が欠落していました。このため、移行時に通知が表示されませんでした。

この修正により、新しいロジックが追加され、ライフサイクルの移行時に通知が送信されるようになりました。

Bugzilla:2166576

RGWCopyObjRequest が修正され、名前変更操作が期待どおりに動作するようになりました。

以前は、ジッパー変換後の RGWCopyObjRequest の初期化が正しくなかったため、名前変更操作が中断されていました。このため、多くの rgw_rename() シナリオではソースオブジェクトのコピーに失敗し、二次的な問題が原因でコピーが失敗したにもかかわらずソースも削除されました。

この修正により、RGWCopyObjRequest が修正され、さまざまな名前変更操作に対していくつかの単体テストケースが追加されます。

Bugzilla:2217499

Ceph Object Gateway への不正アクセスができなくなりました。

以前は、Ceph Object Gateway ロールを表す変数が初期化される前に利用されていたため、セグメント違反が発生していました。

この修正により、操作の順序が変更され、不正アクセスが発生しなくなります。必要に応じてロールが適用されます。

Bugzilla:2252048

間違った CSV オブジェクト構造ごとにエラーメッセージが表示されるようになりました。

以前は、CSV ファイルの中に、二重引用符が閉じられていない場合にアサートが発生し、その後クラッシュが発生していました。

この修正により、間違った CSV オブジェクト構造ごとにポップアップ表示されるエラーメッセージが導入されました。

Bugzilla:2252396

Ceph Dashboard でユーザー関連情報を照会する際に、'user not found' というエラーが発生しなくなりました。

以前は、Ceph Dashboard では、完全な user_id に名前空間が存在し、ダッシュボードで識別できないため、エンドユーザーは Ceph Object Gateway からユーザー関連情報を取得できず、“user not found” というエラーが発生しました。

この修正により、ユーザー情報を取得するために GET リクエストが管理者オペレーションに送信されたときに、テナント名前空間、および user_id を含む完全なユーザー ID が返されるだけでなく、各フィールドが個別に返されるようになります。エンドユーザーは正しい user_id を取得できるようになり、これを使用して、Ceph Object Gateway から他のユーザー関連情報をさらに取得できます。

Bugzilla:2255255

Ceph Object Gateway は、新しいストリームエンコーディング形式で整形式のペイロードを含むリクエストを渡すようになりました。

以前は、Ceph Object Gateway は STREAMING-AWS4-HMAC-SHA256-PAYLOAD および STREAMING-UNSIGNED-PAYLOAD-TRAILER エンコード形式を認識せず、リクエストが失敗していました。

この修正により、新しいエンコード形式に提供される新しい末尾の要求署名を認識、解析し、該当する場合は検証するロジックが実装されます。Ceph Object Gateway は、新しいストリームエンコーディング形式で整形式のペイロードを含むリクエストを渡すようになりました。

Bugzilla:2256967

radosgw 管理バケットのチェック統計とバケット再シャード統計が正しく計算されるようになりました。

以前は、コードの変更により、バージョン管理されていないオブジェクトからバージョン管理されたオブジェクトに移行したオブジェクトがある場合、radosgw-admin バケットチェック統計の計算とバケット再シャード統計の計算が正しくありませんでした。

この修正により、計算が修正され、不正確なバケット統計出力は生成されなくなりました。

Bugzilla:2257978

マルチパートアップロードの失敗時に tail オブジェクトが失われなくなりました。

以前は、マルチパートのアップロード中に、タイムアウトなどのシナリオが原因で一部のアップロードに失敗した場合に、アップロードが再起動され、最初のクリーンアップ試行時に、その後に行われるクリーンアップ操作から tail オブジェクトが削除されていました。一部の tail オブジェクトが失われるため、結果として得られる Ceph Object Gateway マルチパートオブジェクトが破損していました。HEAD リクエストには応答しますが、GET リクエスト中は失敗します。

この修正により、コードで、最初の試行が正しくクリーンアップされるようになりました。結果として得られる Ceph Object Gateway マルチパートオブジェクトは破損しなくなり、クライアントが読み取ることができるようになります。

Bugzilla:2262650

CompleteMultipartUpload とその通知に ETag 値が表示されるようになりました。

以前は、通知に関連する変更が原因で、完了したマルチパートアップロードに対応するオブジェクトハンドルに結果の ETag が含まれませんでした。このため、CompleteMultipartUpload とその通知の結果として、マルチパートアップロードを完了するための ETag が存在しませんでした。(正しい ETag が計算され保存されたため、後続の操作には正しい ETag 結果が含まれます。)

この修正により、CompleteMultipartUpload はオブジェクトを更新し、期待どおりに出力するようになりました。CompleteMultipartUpload とその通知に ETag 値が存在するようになりました。

Bugzilla:2266579

Swift 経由でコンテナー (バケット) をリストしても、Ceph Object Gateway がクラッシュしなくなりました。

以前は、swift-object-storage 呼び出しパスに、対応するバケットでオブジェクトハンドルを更新するための呼び出しがありませんでした (ジッパーバックポートの問題)。このため、S3 Web サイトが同じバケットに対して設定されている場合に、Swift 経由でコンテナー (バケット) をリストすると、Ceph Object Gateway がクラッシュする原因になります。

この修正により、必要なジッパーロジックが追加され、クラッシュは発生しなくなりました。

Bugzilla:2269038

ライフサイクルポリシーのないバケットでライフサイクルを処理してもクラッシュしなくなる

以前は、ライフサイクルポリシーのないバケットでライフサイクルを手動で処理しようとすると、null ポインター参照が発生し、radosgw-admin プログラムがクラッシュしていました。

この修正により、クラッシュを回避するために、ハンドルを操作する前に null バケットハンドルのチェックが行われます。

Bugzilla:2270402

データプールのゾーン詳細を変更できるようになる

rgw::zone_create() 関数は、ゾーン作成時にデフォルトの配置ターゲットとプール名を初期化します。この機能は、以前は exclusive=false に設定された radosgw-admin ゾーンにも使用されていました。ただし、zone set では、STANDARD ストレージクラスの data_pool を変更することはできません。

この修正により、default-placement ターゲットがすでに存在する場合は上書きされず、データプールのゾーンの詳細を期待どおりに変更できるようになります。

Bugzilla:2254480

浮動小数点数のモジュロ演算が正しい結果を返すようになる

以前は、浮動小数点数のモジュロ演算で間違った結果が返されていました。

この修正により、SQL エンジンが強化され、浮動小数点のモジュロ演算を処理し、正しい結果を返すようになりました。

Bugzilla:2254125

SQL ステートメントは、大文字と小文字を区別しないブール式の結果を正しく返す

以前は、SQL ステートメントの一部に大文字のブール式が含まれていたため、誤った解釈と誤った結果が生じていました。

この修正により、ステートメントの解釈は大文字と小文字を区別しなくなり、どの場合でも正しい結果が返されるようになります。

Bugzilla:2254122

SQL エンジンは正しい NULL 値を返す

以前は、NULL を型へキャストすることが SQL ステートメントに含まれていたため、NULL を返す代わりに間違った結果が返されていました。

この修正により、SQL エンジンは NULL からのキャストを識別し、NULL を返します。

Bugzilla:2254121

ETags 値が CompleteMultipartUpload とその通知に表示されるようになる

以前は、通知に関連する変更が原因で、完了したマルチパートアップロードに対応するオブジェクトハンドルに結果の ETag が含まれませんでした。その結果、CompleteMultipartUpload とその通知には ETag が存在しませんでした。(正しい ETag が計算され保存されたため、後続の操作には正しい ETag 結果が含まれます。)

この修正により、CompleteMultipartUpload はオブジェクトを更新し、期待どおりに出力するようになりました。CompleteMultipartUpload とその通知に ETag 値が表示されるようになりました。

Bugzilla:2249744

オブジェクト名にバックスラッシュ (/) が埋め込まれたワークロードをクラウド同期に送信しても、同期エラーが発生しなくなる

以前は、クラウド同期中にオブジェクトパスの URL エスケープが不適切だったため、名前にバックスラッシュ (/) が埋め込まれたオブジェクトがワークロードに含まれていた場合、つまり仮想ディレクトリーパスが使用されていた場合に同期が失敗していました。

この修正により、不適切なエスケープが修正され、オブジェクト名に埋め込まれたバックスラッシュ (/) を含むワークロードが期待どおりにクラウド同期に送信できるようになります。

Bugzilla:2249068

ブール式を含む SQL ステートメントがブール型を返す

以前は、ブール式 (射影) を含む SQL ステートメントは、ブール型ではなく文字列型を返していました。

この修正により、エンジンは、ステートメント構文に従って文字列をブール式として識別し、ブール型 (true/false) を正常に返すようになりました。

Bugzilla:2254582

作業スケジューラーが、should_work 関数で次の日付を考慮するようになる

以前は、ライフサイクルを現在の時刻で実行を開始するかどうかを決定する should_work 関数で使用されたロジックでは、次の日付が考慮されていませんでした。その結果、AB < XY の場合、カスタム作業時間 "XY:TW-AB:CD" によってライフサイクル処理が中断されていました。

この修正により、作業スケジューラーは次の日付を考慮するようになり、さまざまなカスタムライフサイクル作業スケジュールが期待どおりに機能するようになりました。

Bugzilla:2255938

merge_and_store_attrs() メソッドによって属性更新操作が失敗しなくなる

以前は、変更されたバケットインスタンス属性と変更されていないバケットインスタンス属性の調整を処理する merge_and_store_attrs() メソッドのバグにより、一部の属性更新操作が暗黙的に失敗していました。このため、バケットのサブセットに対する一部のメタデータ操作は失敗していました。たとえば、レート制限が設定されているバケットでは、バケット所有者の変更ができませんでした。

この修正により、merge_and_store_attrs() メソッドが修正され、影響を受けていたすべてのシナリオが正しく動作するようになりました。

Bugzilla:2262919

チェックサムと不正な形式のトレーラーがクラッシュを引き起こさなくなる

以前は、java AWS4Test.testMultipartUploadWithPauseAWS4 の実行中に AWSv4ComplMulti から例外が発生し、一部のクライアント入力、具体的にはチェックサムトレーラーを使用するクライアント入力によってクラッシュが発生していました。

この修正により、do_aws4_auth_completion() に例外ハンドラーが実装されます。チェックサムと不正な形式のトレーラーによってクラッシュが発生することはなくなりました。

Bugzilla:2266092

改良された末尾のチャンク境界検出の実装

以前は、長さ 0 の末尾のチャンク境界フォーマットの有効な形式が 1 つ処理されませんでした。このため、Ceph Object Gateway は末尾のチャンクの開始を正しく認識できず、403 エラーが発生していました。

この修正により、改良された末尾のチャンク境界検出が実装され、匿名アクセスの場合に予期しない 403 エラーが発生しなくなりました。

Bugzilla:2266411

Kafka メッセージとアイドルタイムアウトのデフォルト値によるハングが発生しなくなる

以前は、Kafka メッセージとアイドルタイムアウトのデフォルト値により、Kafka ブローカーの待機中にまれにハングが発生していました。

この修正により、タイムアウトが調整され、ハングしなくなりました。

Bugzilla:2269381

Delete bucket tagging が失敗しなくなる

以前は、RADOS SAL merge_and_store_attrs() のロジックが間違っていたため、属性が削除されませんでした。これは DeleteLifecycle にも影響を及ぼしました。その結果、一部のコードパスでは純粋な属性削除が有効になりませんでした。

この修正により、バケットタグを保存するロジックでは、merge_and_store_attrs() ではなく RADOS SAL put_info() が使用されます。Delete bucket tagging が、想定どおりに正常に行われるようになりました。

Bugzilla:2271806

mtime オブジェクトが S3 PutACL で進み、ACL の変更が適切にレプリケートされるようになりました。

以前は、S3 PutACL 操作では mtime オブジェクトが更新されませんでした。これにより、タイムスタンプベースのオブジェクト変更チェックが誤って false を返したため、一度適用された ACL の変更はレプリケートされませんでした。

この修正により、mtime オブジェクトは S3 PutACL で常に進み、ACL の変更が適切にレプリケートされます。

Bugzilla:2271938

すべての移行ケースで通知をディスパッチできるようになる

以前は、移行時に通知をディスパッチするロジックが誤ってクラウド移行ケースにスコープされていたため、プール移行時の通知が送信されませんでした。

この修正により、通知ディスパッチがプール移行スコープに追加され、すべての移行ケースで通知をディスパッチできるようになります。

Bugzilla:2279607

2106 年以降の RetainUntilDate は切り捨てられなくなり、新しい PutObjectRetention リクエストに対して期待どおりに動作します。

以前は、2106 年以降の RetainUntilDate を指定する PutObjectRetention リクエストは切り捨てられ、オブジェクトロックの強制にはそれより前の日付が使用されていました。これは、期間が日数で指定される ` PutBucketObjectLockConfiguration` リクエストに影響を与えることはありませんでした。

この修正により、RetainUntilDate は新しい PutObjectRetention リクエストに対して期待どおりに保存され、動作するようになりました。以前存在していたリクエストは自動的に修復されません。既存のリクエストを修正するには、x-amz-object-lock-retain-until-date に基づいて HeadObject リクエストを使用してリクエストを識別し、RetainUntilDate を使用して再度保存します。

詳細は、S3 の put オブジェクト保持 を参照してください。

Bugzilla:2265890

バケットライフサイクル処理ルールが停止しなくなる

以前は、シャードごとのバケットライフサイクルルールの列挙に、バケットのライフサイクルルールの同時削除に関連する論理エラーが含まれていました。このため、シャードはそのシャードの処理を停止する状態になり、一部のバケットライフサイクルルールが処理されなくなる可能性がありました。

この修正により、列挙は削除されたエントリーをスキップできるようになり、この問題に関連するライフサイクル処理の停止が解決されました。

Bugzilla:2270334

バージョン管理されたバケット内のオブジェクトを削除すると、統計の不一致が発生する

バージョン管理されたバケットには最新のオブジェクトと最新でないオブジェクトが混在しているため、オブジェクトを削除すると、ローカルサイトとリモートサイトでバケットとユーザーの統計に不一致が生じる可能性があります。これにより、どちらのサイトでもオブジェクトリークが発生することはなく、統計の不一致が発生するだけです。

Bugzilla:1871333

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.