8.0 リリースノート
Red Hat Ceph Storage 8.0 のリリースノート
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat Ceph Storage ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。これを行うには、Bugzilla のチケットを作成します。
+ .Bugzilla の Web サイトに移動します。Component ドロップダウンメニューで、Documentation を選択します。Sub-Component ドロップダウンメニューで、適切なサブコンポーネントを選択します。ドキュメントの適切なバージョンを選択します。Summary および Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクを記載してください。オプション: 添付ファイルを追加します (ある場合)。Submit Bug をクリックします。
第1章 はじめに
Red Hat Ceph Storage は、非常にスケーラブルでオープンなソフトウェア定義のストレージプラットフォームであり、最も安定したバージョンの Ceph ストレージシステムと Ceph 管理プラットフォーム、デプロイメントユーティリティー、およびサポートサービスを組み合わせたものです。
Red Hat Ceph Storage ドキュメントは、https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/8 から入手できます。
第2章 謝辞
Red Hat Ceph Storage バージョン 8.0 には、Red Hat Ceph Storage チームの数多くの貢献が反映されています。さらに Ceph プロジェクトでは、Ceph コミュニティーの個人や組織からの貢献の度合いが質と量の両面で大幅に拡大しています。Red Hat Ceph Storage チームの全メンバー、Ceph コミュニティーの個々の貢献者、および以下の組織を含むすべての方々の貢献に謝意を表します。
- Intel®
- Fujitsu ®
- UnitedStack
- Yahoo ™
- Ubuntu Kylin
- Mellanox ®
- CERN ™
- Deutsche Telekom
- Mirantis ®
- SanDisk ™
- SUSE ®
第3章 新機能
このセクションでは、Red Hat Ceph Storage の今回のリリースで導入された主要な更新、機能拡張、新機能のリストを紹介します。
3.1. Cephadm ユーティリティー
Grafana、Prometheus、Alertmanager モニタリングスタックに高可用性をデプロイできるようになる
この機能拡張により、cephadm mgmt-gateway
サービスは、個々のインスタンスに障害が発生した場合でも、これらの重要なサービスがシームレスに機能できるようにすることで、信頼性が向上し、モニタリングが中断されないようにします。Ceph クラスターの健全性およびパフォーマンスを可視化を維持し、あらゆる問題に迅速に対応するには、高可用性が極めて重要となります。
Ceph クラスターの安定性と耐障害性を向上させるために、継続的に中断しない操作には高可用性を使用します。
詳細は、Ceph Management ゲートウェイの使用 を参照してください。
Ceph Object Gateway の EC プールの新しい効率的なデプロイメント
Ceph Object Gateway マネージャーモジュールは、rgw
サービス用のプールを作成できるようになりました。プール内では、データプールは提供された仕様に基づいて属性を受け取ることができます。
この機能拡張により、Ceph Object Gateway に使用する Ceph Object Gateway プールが、レプリカの代わりに EC を使用できるようにしたいユーザーのデプロイメントが簡素化されます。
指定の属性でデータプールを作成するには、以下のコマンドを使用します。
ceph rgw realm bootstrap -i <path-to-spec-file> --start-radosgw
現在、この仕様の EC プロファイルフィールドは、k
、m
、pg_num
、および crush-device-class
属性のみを利用します。他の属性が設定されている場合や、プールタイプがレプリケートされている場合は、キーと値のペアは ceph osd pool create
コマンドに渡されます。Ceph Object Gateway ゾーンの他のプール (バケットインデックスプールなど) はすべて、デフォルト設定でレプリケートされたプールとして作成されます。
自己署名証明書は、Ceph Object Gateway サービス仕様内の cephadm によって生成可能
この機能拡張により、generate_cert: true
を Ceph Object Gateway サービス仕様ファイルに追加すると、cephadm が Ceph Object Gateway サービスの自己署名証明書を生成できるようになります。これは、証明書を手動で作成して仕様ファイルに挿入する代わりに実行できます。
generate_cert: true
を使用すると、Ceph Object Gateway サービスで機能します。また、Ceph Object Gateway 仕様ファイルに含まれる zonegroup_hostnames
パラメーターに基づいて、SAN の変更も適用されます。
以下は、Ceph Object Gateway 仕様ファイルの例です。
service_type: rgw service_id: bar service_name: rgw.bar placement: hosts: - vm-00 - vm-02 spec: generate_cert: true rgw_realm: bar_realm rgw_zone: bar_zone rgw_zonegroup: bar_zonegroup ssl: true zonegroup_hostnames: - s3.example.com - s3.foo.com
この仕様ファイルは、次の出力を含む自己署名証明書を生成します。
X509v3 Subject Alternative Name: DNS:s3.example.com, DNS:s3.foo.com
Ceph Object Gateway デーモンユーザーに対して rgw_run_sync_thread
を 'false' に設定する処理が自動化される
この機能拡張により、Ceph Object Gateway 仕様の spec
セクションで disable_multisite_sync_traffic
を 'true' に設定することにより、Cephadm はそのサービスの Ceph Object Gateway デーモンに対して rgw_run_sync_thread
設定を ‘false’ に設定します。これにより、データおよびメタデータの同期を処理するために Ceph Object Gateway デーモンがスレッドを生成しなくなります。Ceph Object Gateway デーモンユーザーの rgw_run_sync_thread
を ‘false’ に設定するプロセスは、Ceph Object Gateway 仕様ファイルを通じて自動化されるようになりました。
Cephadm が、HTTP モードではなく TCP モードで、Ingress サービスの haproxy
デーモンを使用して Ceph Object Gateway 経由で Ingress をデプロイできるようになる
TCP モードで haproxy
をセットアップすると、haproxy
がメッセージの内容を理解しなくても、暗号化されたメッセージを haproxy
を介して Ceph Object Gateway に直接渡すことができます。これにより、Ingress および Ceph Object Gateway セットアップのエンドツーエンド SSL が可能になります。
この機能拡張により、ユーザーは Ingress サービスではなく、rgw
サービスの証明書を指定できるようになりました。use_tcp_mode_over_rgw
を Ingress 仕様で True
と指定し、HTTP モードではなく TCP モードでそのサービスにデプロイされた haproxy
デーモンを取得します。
新しい cmount_path
オプションと、CephFS 用に一意のユーザー ID が生成される
この機能拡張により、オプションの cmount_path
オプションを追加して、各 Ceph File System の一意のユーザー ID を生成できます。一意のユーザー ID により、複数の Ganesha エクスポート間での CephFS クライアントの共有が可能になります。エクスポート間でのクライアントを減らすと、1 つの CephFS クライアントのメモリー使用量も削減されます。
同じ FSAL ブロックを共有するエクスポートには、単一の Ceph ユーザークライアントがリンクされている
以前は、アップグレードされたクラスターで、エクスポートの作成が "Error EPERM: Failed to update caps" というメッセージと共に失敗していました。
この機能拡張により、エクスポートの作成時にユーザーキーの生成が変更されるため、同じ Ceph File System Abstraction Layer (FSAL) ブロックを共有するエクスポートは、それらにリンクされる 1 つの Ceph ユーザークライアントのみを持つようになります。この機能拡張により、NFS Ganesha のメモリー消費の問題も阻止されます。
3.2. Ceph Dashboard
デーモンがダウンしたときのヘルス警告が追加される
以前は、mgr
、mds
、および rgw
デーモンがダウンした場合に通知する健全性に関する警告やアラートはありませんでした。
この機能拡張により、mgr
、mds
、および rgw
デーモンのいずれかがダウンしたときに健全性に関する警告が出力されます。
Bugzilla:2138386
Ceph Object Gateway NFS エクスポート管理が Ceph Dashboard から利用できるようになる
以前は、Ceph Object Gateway NFS エクスポート管理は、コマンドラインインターフェイスでのみ使用できていました。
この機能拡張により、Ceph Dashboard は、一部の Ceph Object Gateway ユーザーに基づいて作成されたエクスポートの管理もサポートします。
バケットの編集の詳細は、Ceph ダッシュボードでの NFS Ganesha エクスポートの管理 を参照してください。
デフォルトのレルム、ゾーン、ゾーングループを使用したマルチサイト作成の強化
以前は、デフォルトのレルム、ゾーン、またはゾーングループを使用してマルチサイトを作成した後、Ceph Object Gateway サービスには手動での再起動が必要でした。
この機能拡張により、新しいマルチサイトレプリケーションウィザードの導入により、必要なサービスが自動的に再起動されるようになりました。
Ceph Dashboard が EC 8+6 プロファイルをサポートするようになる
この機能拡張により、ダッシュボードはイレイジャーコーディング 8+6 プロファイルをサポートするようになりました。
バケットの作成時に、マルチサイト設定でバケットのレプリケーションを有効または無効にする
Ceph Object Gateway バケット作成フォームに新しい Replication チェックボックスが追加されました。この機能拡張により、マルチサイト設定で特定のバケットからのレプリケーションを有効化または無効化できるようになりました。
Ceph Dashboard を介した新しい同期ポリシー管理
以前は、Ceph Dashboard から同期ポリシーを管理する方法はありませんでした。
この機能拡張により、Object>Multi-site に移動することで、Ceph Dashboard から直接同期ポリシーを管理できるようになりました。
Ceph Dashboard でのサーバー側暗号化設定のエクスペリエンスの向上
この機能拡張により、ナビゲーションメニューから Objects>Configuration にアクセスすると、サーバー側の暗号化を簡単に見つけることができます。
作成時にプールのミラーリングを有効にする新しいオプション
以前は、プールの作成時にプールのミラーリングを有効にするオプションはありませんでした。
この機能拡張により、Create Pool フォームから直接プールでミラーリングを有効化できます。
Ceph Object Gateway オペレーションと監査ログの出力を一元化されたロギングで強化する
この機能拡張により、Ceph Dashboard の集中ログに Ceph Object Gateway の操作および監査ログの再コレクションを確認できるようになりました。
Ceph Dashboard でイレイジャーコード化されたプールを作成する際のエクスペリエンスが向上する
以前は、HDD、SSD などのイレイジャーコード (EC) されたプロファイルを作成するときに、Ceph クラスター内のデバイスが自動的に選択されていました。デバイスクラスが EC プールで指定される場合、プールは 1 つの配置グループのみで作成され、Autoscaler は機能しませんでした。
この機能拡張により、デバイスクラスを手動で選択する必要があり、すべてのデバイスが自動的に選択されて使用可能になります。
Ceph Dashboard でのマルチクラスタービューの強化
以前は、マルチクラスターセットアップで接続されたクラスターの場合、Ceph Cluster Grafana ダッシュボードが表示されず、マルチクラスターはダッシュボードを介して mTLS で完全に設定できませんでした。
これらの機能拡張により、ユーザーは両方のクラスターで mTLS を有効にしてマルチクラスターセットアップに接続できます。また、ユーザーは、Multi-Cluster > Manage Clusters に進むときに特定のクラスター行を展開して、個別のクラスター Grafana ダッシュボードを表示することもできます。
CephFS サブボリュームグループとサブボリュームが Create NFS Export フォームから直接選択できるようになる
以前は、CephFS NFS エクスポートを作成する場合、NFS エクスポートを作成する前に既存のサブボリュームおよびサブボリュームグループを把握し、フォームに情報を手動で入力する必要がありました。
この機能拡張により、ボリュームが選択されると、関連するサブボリュームグループおよびサブボリュームが、Create NFS Export フォーム内からシームレスに選択できるようになります。
Ceph Object Gateway のデフォルト以外のレルム同期ステータスが表示されるようになる
以前は、デフォルトのレルム同期ステータスのみが Ceph Dashboard の Object>Overview 同期ステータスに表示されていました。
この機能拡張により、選択した Object Gateway の同期ステータスが、デフォルト以外のレルムにある場合でも表示されるようになりました。
Grafana の新しい RGW Sync 概要ダッシュボード
このリリースにより、Grafana の新しい RGW Sync 概要ダッシュボード内から、シャードごとの時間に対するレプリケーションの違いを追跡できるようになりました。
Ceph Dashboard を介した新しい S3 バケットライフサイクル管理
このリリースでは、バケットライフサイクルは Ceph Dashboard の Edit Bucket フォームで管理できます。
バケットの編集に関する詳細は、ダッシュボードでの Ceph Object Gateway バケットの編集 を参照してください。
3.3. Ceph File System
snapdiff
API は、2 つのスナップショット間のファイルの差分のみを同期するようになる
この機能拡張により、snapdiff
API を使用して 2 つのスナップショット間のファイルの違いのみを同期できるようになりました。違いのみを同期すると、増分スナップショットの同期中の一括コピーが回避され、snapdiff
デルタのみが同期されるため、パフォーマンスが向上します。
データレプリケーションモニタリングロジックの新しいメトリクス
この機能拡張により、レプリケーションの開始通知と終了通知のラベル付きメトリクスが追加されました。
新しいラベル付きメトリクスは、last_synced_start
、last_synced_end
、last_synced_duration
、last_synced_bytes
です。
ピアステータスでの出力リモートメタデータ情報の強化
この機能拡張により、リモートスナップショットに無効なメタデータがある場合、ピアステータスの出力に state
、failed
、および 'failure_reason' が表示されるようになりました。
NFS-Ganesha 非同期 FSAL に対する新たなサポート
この機能拡張により、ノンブロッキング Ceph File System Abstraction Layer (FSAL)、つまり非同期が導入されました。FSAL は、スレッドの使用率を削減し、パフォーマンスを向上させ、リソースの使用率を低減します。
サブボリュームの割り当てに対する新たなサポート
以前は、Ceph ストレージシステムは、同じサブボリューム内で使用される混合プロトコルをサポートしていませんでした。混合プロトコルを使用しようとすると、データが破損する可能性があります。
この機能拡張により、サブボリュームにはプロトコルの分離が含まれるようになりました。この分離により、データ整合性の問題が防止され、SMB や NFS などのマルチプロトコル環境管理の複雑さが軽減されます。
3.4. Ceph Object Gateway
CopyObject
API を使用して、ストレージクラス間でオブジェクトをコピーできるようになる
以前は、オブジェクトは同じストレージクラス内でのみコピーできました。これにより、CopyObject
関数の範囲が制限されていました。ユーザーはオブジェクトをダウンロードし、別のストレージクラスに再アップロードする必要がありました。
この機能拡張により、オブジェクトをサーバー側から同じ Ceph Object Gateway クラスター内の任意のストレージクラスにコピーできるようになります。
Ceph Object Gateway の読み取り操作の改善
この機能拡張により、Ceph Object Gateway に読み取りアフィニティーが追加されます。読み取りアフィニティーは、フラグを追加し、正しい CRUSH のロケーションを設定することで、最も近い OSD への読み取り呼び出しを許可します。
S3 リクエストはシャットダウン中に送信途中で切断されなくなる
以前は、シャットダウン中に S3 リクエストが送信の途中で待機せずに切断されるという問題が一部のクライアントで発生していました。
この機能拡張により、S3 リクエストは、Ceph Object Gateway プロセスを無条件に終了する前に、すべての未処理のリクエストが完了するまで rgw_exit_timeout_secs
パラメーターで定義された期間、待機するように設定できます (デフォルトではオフ)。Ceph Object Gateway は、無条件に終了する前に、進行中のすべての S3 リクエストが完了するまで最大 120 秒 (設定可能) 待機するようになりました。この間、新しい S3 リクエストは受け入れられません。
コンテナー化されたデプロイメントでは、--stop-timeout=120
の追加の extra_container_args
パラメーター (または、デフォルトでない場合は rgw_exit_timeout_secs
パラメーターの値) も必要になります。
copy-object
API を使用した暗号化オブジェクトのコピーがサポートされるようになる
以前は、Ceph Object Gateway では、サーバー側の暗号化サポートが開始されて以来、copy-object API を使用した暗号化オブジェクトのコピーはサポートされていませんでした。
この機能拡張により、copy-object API を使用した暗号化されたオブジェクトのコピーがサポートされ、copy-object 操作に依存するワークロードでもサーバー側の暗号化を使用できるようになります。
新しい S3 追加チェックサム
このリリースでは、S3 追加チェックサムのサポートが追加されました。この新しいサポートにより、転送中および保存中のデータの整合性が向上します。追加のサポートにより、SHA256 などのオブジェクトデータの強力なチェックサムや S3 操作のチェックサムアサーションを使用できるようになります。
S3 GetObjectAttributes
API の新しいサポート
GetObjectAttributes
API は、S3 オブジェクトに関するさまざまな従来型および非従来型のメタデータを返します。返されるメタデータには、オブジェクトおよび元々は multipart アップロードとして保存されたオブジェクトの各パートに対する追加の S3 チェックサムが含まれます。GetObjectAttributes
は、AWS CLI で公開されます。
複数のロケーションでの Ceph Object Gateway クラスターの効率の向上
このリリースでは、可能な場合は、配置グループ内の最も近い物理 OSD インスタンスからデータを読み取るようになりました。
その結果、ローカル読み取りにより、複数の物理的なロケーションにまたがる Ceph Object Gateway クラスターの効率が向上します。
イベントレコードのテナント所有者の形式の変更が確認される: ownerIdentity
–> principalId
このリリースにより、バケット通知では、ownerIdentity
内の principalId
に、テナント ID で始まる完全なユーザー ID が含まれるようになりました。
Ceph Object Gateway 内の既存の OIDC プロバイダーでクライアント ID の追加およびサムプリントリストの更新が可能に
以前は、ユーザーは OIDC プロバイダー内で新しいクライアント ID を追加したり、サムプリントリストを更新したりできませんでした。
この機能拡張により、ユーザーは新しいクライアント ID を追加したり、OIDC プロバイダー内でサムプリントリストを更新したりでき、既存のサムプリントリストが置き換えられます。
3.5. マルチサイトの Ceph Object Gateway
新しいマルチサイト設定ヘッダー
このリリースでは、マルチサイト設定で記述されたオブジェクトの GetObject および HeadObject 応答に、x-amz-replication-status: PENDING
ヘッダーが含まれるようになりました。レプリケーションが成功すると、ヘッダーの値が COMPLETED
に変わります。
トピックと通知メタデータ用の新しい notification_v2 ゾーン機能
この機能拡張により、新規インストールデプロイメント (Greenfield) に保存されるバケット通知とトピックの情報がゾーン間で同期されます。
Red Hat Ceph Storage 8.0 にアップグレードする場合は、notification_v2 機能を有効にしてこの機能拡張を追加する必要があります。
3.6. RADOS
バランスの取れたプライマリー配置グループがクラスターで確認可能に
以前は、ユーザーはオフラインの osdmaptool
を使用してのみプライマリーのバランスをとることができました。
この機能拡張により、upmap
バランサーで自動バランス調整が可能になります。ユーザーは、upmap-read`or `read
モードのいずれかを選択できるようになりました。upmap-read
モードでは、アップマップと読み取りの最適化が同時に実行されます。read
モードは読み取りを最適化するためにのみ使用できます。
詳細は、Ceph Manager モジュールの使用 を参照してください。
イレイジャーエンコードされたプールの新しい MSR CRUSH ルール
Multi-step-retry (MSR) は、Ceph クラスターの CRUSH ルールのタイプで、ストレージデバイス全体にデータを分散する方法を定義します。MSR は、効率的なデータ取得、負荷分散、およびフォールトトレランスを確保します。
この機能拡張により、作成中に crush-osds-per-failure-domain
および crush-num-failure-domains
をイレイジャーコーディング (EC) されたプールに指定できるようになりました。これらのプールは、新しく導入された MSR クラッシュルールを使用して、複数の OSD を各障害ドメインに配置します。たとえば、14 個の OSD が 4 つのホストに分割されます。
詳細は、Ceph イレイジャーコーディング を参照してください。
3 つのアベイラビリティーゾーン向けの新しい一般的なストレッチクラスター設定
以前は、ストレッチモードを有効にしない限り、アクティングセット内に異なるバケットから十分な数の OSD が存在しない場合に、配置グループ PG) のアクティブ化を防ぐためのストレッチピアルールを適用する方法がありませんでした。
3 つのアベイラビリティーゾーンの一般的なストレッチクラスター設定では、3 つのデータセンターがサポートされ、各サイトにはデータのコピーが 2 つ保持されます。これにより、データセンターが停止した場合でも、別のサイトからデータにアクセスして書き込むことができます。この設定では、プールのレプリケーションサイズは 6 で、プールの min_size は 3 になります。
詳細は、3 つのアベイラビリティーゾーンの一般的なストレッチクラスター設定 を参照してください。
3.7. RADOS ブロックデバイス (RBD)
別のクラスターからのイメージのライブインポートのサポートが追加される
この機能拡張により、別の Ceph クラスターから異なるイメージ形式またはレイアウト間での移行が可能となりました。ライブマイグレーションが開始されると、ソースイメージは宛先イメージにディープコピーされ、可能な限りデータのスパース割り当てを維持しつつ、すべてのスナップショット履歴をプルします。
詳細は、イメージのライブ移行 を参照してください。
非ユーザータイプのスナップショットからのイメージのクローン作成に対する新しいサポート
この機能拡張により、ユーザー以外のタイプのスナップショットから Ceph Block Device イメージのクローン作成のサポートが追加されました。rbd group snap create
コマンドで作成されたグループスナップショットから新規グループのクローンを作成することが、rbd clone
コマンドに追加された --snap-id
オプションによってサポートされるようになりました。
詳細は、ブロックデバイススナップショットのクローン作成 を参照してください。
Ceph Block Device に新しいコマンドが追加される
Ceph Block Device の使用を強化するために、新しい 2 つのコマンドが追加されました。rbd group info
コマンドは、グループに関する情報を表示します。rbd group snap info
コマンドは、グループスナップショットに関する情報を表示します。
NBD エクスポートからのイメージのライブマイグレーションに対する新しいサポート
この機能拡張により、暗号化を含むイメージは NBD エクスポートからのライブマイグレーションをサポートするようになりました。
詳細は、ストリーム を参照してください。
3.8. RBD ミラーリング
rbd mirror pool enable
コマンドの新しいオプションの --remote-namespace
引数
この機能拡張により、Ceph Block Device の rbd mirror pool enable
コマンドに新しいオプションの --remote-namespace
引数が追加されました。この引数は、プール内の namespace を、別のクラスター上の同じ名前のプールにある別の namespace にミラーリングするオプションを提供します。
第4章 バグ修正
このセクションでは、今回リリースされた Red Hat Ceph Storage で修正されたユーザーに大きな影響を及ぼすバグを説明します。また、セクションでは、以前のバージョンで見つかり修正された既知の問題を説明します。
4.1. Cephadm ユーティリティー
original_weight
フィールドが OSD 削除キューの属性として追加される
以前は、cephadm osd 削除キューには original_weight のパラメーターがありませんでした。その結果、OSD の削除中に cephadm モジュールがクラッシュしていました。この修正により、original_weight フィールドが osd 削除キューの属性として追加され、OSD の削除中に cephadm がクラッシュしなくなりました。
Cephadm は、大規模なデプロイメント中にホストをランダムにオフラインとしてマークしなくなる
以前は、大規模なデプロイメントで Cephadm の短いコマンドのタイムアウトがあると、ホストチェック中にホストがランダムにオフラインとマークされていました。
この修正により、短いタイムアウトが削除されます。Cephadm は、mgr/cephadm/default_cephadm_command_timeout
設定で指定されたタイムアウトに依存するようになりました。
ssh_keepalive_interval
間隔および ssh_keepalive_count_max
設定も、mgr/cephadm/ssh_keepalive_interval
および mgr/cephadm/ssh_keepalive_count_max
設定を介して設定できるようになりました。
これらの設定により、ユーザーはホストが Cephadm マネージドクラスターでオフラインとしてマークされる方法をより適切に制御でき、Cephadm は大規模なデプロイ中にホストをランダムにオフラインとしてマークしなくなりました。
Bugzilla:2308688
カスタム Webhook は、custom-receiver
レシーバーの下に指定されるようになる
以前は、カスタム Alertmanager Webhook は Alertmanager 設定ファイルの default
レシーバー内に指定されていました。その結果、アラートが他のレシーバーと一致しない限り、カスタムアラートは指定された Webhook に送信されませんでした。
この修正により、カスタム Webhook が custom-receiver
レシーバーで指定されるようになりました。アラートが別のレシーバーに一致する場合でも、アラートはカスタム Webhook に送信されるようになりました。
Bugzilla:2313614
4.2. Ceph Dashboard
cherrypy
がネットワークセキュリティースキャン中に停止しなくなる
以前は、cheroot パッケージのバグが原因で、cherrypy
はネットワークをスキャンしていた一部のセキュリティースキャン中にスタックしていました。その結果、Ceph Dashboard が応答しなくなり、mgr モジュールを再起動する必要がありました。
この修正により、cheroot パッケージが更新され、問題が解決されました。
ゾーンストレージクラスの詳細に正しい圧縮情報が表示されるようになる
以前は、ゾーンの詳細に誤った圧縮情報が設定されていました。その結果、ストレージクラスセクションのゾーンの詳細に誤った圧縮情報が表示されていました。
この修正により、ストレージクラス用の情報が修正され、ゾーンの詳細に正しい圧縮情報が表示されるようになりました。
ゾーンストレージクラスの詳細値が正しく設定されるようになる
以前は、ゾーンの詳細のストレージクラスに誤ったデータプール値が設定されていました。その結果、複数のストレージクラスが作成された場合に、ユーザーインターフェイスのデータプール値が間違っていました。
この修正により、ゾーンの詳細でストレージクラスに対して正しい値が設定されるようになりました。
_nogroup
にサブボリュームがない場合でも、_nogroup
が Subvolume Group リストに表示されるようになりました。
以前は、サブボリュームのクローン作成中に、_nogroup
にサブボリュームグループがない場合は、_nogroup
サブボリュームグループはリスト表示されませんでした。その結果、ユーザーは _nogroup
をサブボリュームグループとして選択できませんでした。
この修正により、サブボリュームのクローンを作成している間に、_nogroup
にサブボリュームがない場合でも、_nogroup
が Subvolume Group リストに表示されます。
名前に $
が含まれる正しい UID がダッシュボードに表示される
以前は、ユーザーが CLI を介して作成された場合、名前に $
が含まれる誤った UID が Ceph Dashboard に表示されていました。
この修正により、CLI を使用して名前に $
が含まれるユーザーが作成された場合でも、正しい UID が表示されます。
File と Object の NFS に個別のルーティングが加わる
以前は、Object 内の File と NFS の両方で同じルートが使用されていました。これにより、File および Object の NFS のナビゲーションリンクの両方が強調表示されているため、使いやすさの観点から問題が発生しました。ユーザーは、File と Object の両方のビューのストレージバックエンドを選択する必要もありました。
この修正により、File と Object の NFS には個別のルーティングが設定され、ユーザーにストレージバックエンドの入力が要求されなくなり、ユーザービリティーが向上しました。
NFS エクスポート作成時に疑似パスと CephFS パスの検証が追加される
以前は、NFS エクスポートの作成中に、疑似パスを手動で入力する必要がありました。その結果、CephFS パスを検証できませんでした。
この修正により、ユーザーがパスを入力するための擬似パスフィールドを空白のままにし、CephFS パスが選択したサブボリュームグループおよびサブボリュームから更新されたパスを取得します。CephFS パスに追加された無効な値に対しても、検証が行われるようになりました。ユーザーが CephFS パスを無効な値に変更しようとすると、エクスポートの作成に失敗します。
エクスポートを作成するときにパスを入力するようユーザーに求めるようになる
以前は、エクスポートを作成してもパスの入力を求められず、デフォルトで /
が入力されていました。
この修正により、ファイルシステムで直接エクスポートを作成しようとすると、パスの入力を求められます。無効なパスを入力すると、作成は許可されません。さらに、CephFS ファイルシステムのパスを直接入力すると、"Export on CephFS volume '/' not allowed" という警告が表示されます。
名前に "." と "/" を含むスナップショットを削除できない
名前に "." を使用してスナップショットを作成すると、削除できません。
回避策として、ユーザーはに "." と "/" を含むスナップショット名を作成しないようにする必要があります。
マルチサイトへの移行後に期間更新コミットが追加される
以前は、マルチサイトフォームへの移行を完了した後に期間コミットが行われていませんでした。その結果、エンドポイントが設定されていても、マスターゾーンにエンドポイントがないことを示す警告が表示されていました。
この修正により、マルチサイトフォームへの移行後に期間更新コミットが追加され、警告は出力されなくなりました。
パフォーマンス統計情報レイテンシーグラフに正しいデータが表示されるようになる
以前は、NaN 値がコードで処理される方法が原因で、Object > Overview > Performance 統計情報のレイテンシーグラフにデータが表示されませんでした。
この修正により、レイテンシーグラフに期待どおりに正しいデータが表示されるようになりました。
レルムの削除時に ”Delete realm” ダイアログが表示されるようになりました。
以前は、”Delete realm” をクリックすると、削除レルムダイアログが壊れていたため表示されませんでした。
この修正により、削除レルムダイアログが適切にロードされ、ユーザーはレルムを削除できるようになりました。
Ceph Object Gateway デーモンをデプロイする前に、rgw_realm
、rgw_zonegroup
、rgw_zone
などの設定値が設定されるようになる
以前は、Ceph Object Gateway デーモンをデプロイした後、rgw_realm
、rgw_zonegroup
、rgw_zone
などの設定値が設定されていました。これにより、Ceph Object Gateway デーモンは、指定された設定ではなく、デフォルトのレルム、ゾーングループ、およびゾーン設定にデプロイされます。正しいレルム、ゾーングループ、およびゾーン設定でそれらをデプロイするには、再起動が必要となります。
この修正により、Ceph Object Gateway デーモンをデプロイする前に設定値が設定され、仕様で指定されたレルム、ゾーングループ、およびゾーンにデプロイされるようになりました。
4.3. Ceph File System
cephfs-top
中の例外が修正される
以前は、ターミナルのスペースが不十分な場合、cephfs-top
コマンドを実行する十分な領域がなく、例外が発生していました。
この修正により、大きなサイズのウィンドウおよび小さなサイズのウィンドウで cephfs-top
コマンドの実行中に発生する例外が修正されました。
パスが制限された cephx
認証情報は、ディレクトリの削除されたスナップショットでの権限チェックに失敗しなくなる
以前は、スナップショットを介してアクセスされるリンクされていないディレクトリーの匿名パスでパス制限チェックが構築されていました。その結果、パスが制限された cephx
認証情報は、削除されたディレクトリースナップショットに対する権限チェックに失敗していました。
この修正により、アクセスチェック用に構築されたパスは、スナップショット時にディレクトリーの元のパスから構築され、アクセスチェックが正常に渡されます。
Bugzilla:2293353
MDS は不要な認可 PIN を要求しなくなる
以前は、MDS は一部のワークロードのリモート認証 PIN を誤って取得していました。これにより、メタデータ操作が遅くなっていました。
この修正により、MDS は不要な承認 PIN を要求しなくなり、正常なメタデータのパフォーマンスが実現されます。
カーネルドライバーからの誤ったパッチが適切に処理され、MDS が無限ループに入らなくなりました。
以前は、カーネルドライバーへの誤ったパッチにより、MDS は操作を処理する無限ループに入り、これが原因で MDS はほとんど利用できなくなっていました。
この修正により、カーネルドライバーからの誤ったメッセージが適切に処理され、MDS が無限ループに入らなくなりました。
Bugzilla:2303693
ブロックリスト時または失敗時にミラーデーモンが再起動できるようになる
以前は、時間差は負の秒数となり、しきい値の間隔に達することはありませんでした。その結果、ブロックリスト時または失敗時に、ミラーデーモンは再起動しませんでした。
この修正により、時間差の計算が修正されました。
ceph fs status
コマンドの JSON 出力で、ランクフィールドが正しく出力されるようになる
以前は、ceph fs status
コマンドの JSON 出力のバグにより、standby-replay MDS デーモンのランクフィールドが正しくありませんでした。{rank} がアクティブな MDS で、standby-replay が従っている {rank}-s
形式の代わりに、ランダムな {rank} が表示されていました。
この修正により、ceph fs status
コマンドの JSON 出力は、'{rank}-s' 形式で standby-replay MDS のランクフィールドを正しく出力するようになりました。
sync_duration
が秒単位で計算されるようになる
以前は、同期期間はミリ秒単位で計算されていました。他の計算はすべて秒単位で行われていたため、これによってユーザビリティーの問題が発生していました。
この修正により、sync_duration
が秒単位で表示されるようになります。
共有データ構造へのアクセスを保護するためにロックが実装される
以前は、ロックのない共有データ構造にアクセスすると、CephFS クライアントライブラリーを使用するアプリケーションがエラーを出力していました。
この修正により、ミューテックスと呼ばれるロックが実装され、共有データ構造へのアクセスが保護され、Ceph クライアントライブラリーを使用するアプリケーションが期待通りに動作するようになります。
snap-schedule manager
モジュールが、グローバル mds_max_snaps_per_dir
設定オプションを正しく適用する
以前は、設定値が MDS から正しく取得されませんでした。その結果、snap-schedule manager
モジュールは mds_max_snaps_per_dir
設定を強制せず、デフォルトの制限である 100 を強制していました。
この修正により、設定項目は MDS から正しく取得されます。snap-schedule manager
モジュールが、グローバル mds_max_snaps_per_dir
設定オプションを正しく適用するようになりました。
CephFS FUSE クライアントが、指定された mds auth caps
パスに正しくアクセスできるようになる
以前は、mds auth caps
の検証中にパスを解析する際、FUSE クライアントは特定のパスにアクセスできませんでした。たとえそのパスが mds auth caps
で rw
と指定されていた場合でも、アクセスできませんでした。
この修正により、mds auth caps
の検証中のパスの解析問題が修正され、期待どおりにパスにアクセスできるようになりました。
4.4. Ceph Object Gateway
JSON ステートメントに対する SQL クエリーは、key
を array
または object
と混同しなくなりました。
以前は、JSON 構造の SQL ステートメントの結果が、key
を array
または object
と混同する場合がありました。その結果、`venue オブジェクト内に id
を key
値として持つ定義されたとおりの venue.id
が存在せず、JSON オブジェクト全体をトラバースし続けることになりました。
この修正により、SQL エンジンが修正され、key
が array
または object
と混同することがなくなり、クエリーに従って正しい結果が返されるようになりました。
ローカル認証エンジンのエラーコードが正しく返されるようになる
以前は、ローカル認証エンジンが認証順序の最後に指定され、前の認証エンジンが適用できない場合に、不正なエラーコードが返されていました。その結果、誤ったエラーコードが返されました。
この修正により、以前の外部認証エンジンがリクエストの認証に適用できない場合、コードはローカル認証エンジンのエラーコードを返し、正しいエラーコードが返されるようになります。
"日付" を含むルールでライフサイクル遷移が機能するようになる
以前は、ライフサイクル移行コードのバグにより、"日付" を含むルールが処理されず、条件を満たすオブジェクトが他のストレージクラスに移行されませんでした。
この修正により、"日付" を含むルールに対してライフサイクルの移行が機能するようになります。
ライフサイクルの移行時に通知が送信されるようになる
以前は、移行時にディスパッチするロジック (有効期限とは別) が欠落していました。このため、移行時に通知が表示されませんでした。
この修正により、新しいロジックが追加され、ライフサイクルの移行時に通知が送信されるようになりました。
IAM ポリシー権限によるバッチオブジェクトの削除が許可される
以前は、バッチ削除プロセス (マルチオブジェクト削除とも呼ばれる) 中に、明示的または暗黙的な拒否が存在しない場合は、IAM ポリシーの誤った評価により、AccessDenied
出力が返されていました。許可権限があっても、AccessDenied
が発生しました。その結果、バッチ削除は AccessDenied
エラーで失敗していました。
この修正により、IAM ポリシーが有効になっている場合、ポリシーは期待どおりに評価され、バッチ削除が正常に行われます。
S3 オブジェクトを削除すると、ストレージスペースが適切に解放されるようになる
以前は、CopyObject を削除したときにサイズが 4 MB を超える場合、そのオブジェクトによって使用されていたすべてのストレージ領域が適切に解放されないことがありました。この修正により、ソースハンドルと宛先ハンドルがさまざまな RGWRados 呼び出しパスに明示的に渡され、期待どおりにストレージが解放されます。
一時的な認証情報を使用した S3 要求に対して、assume-role のクォータおよびレート制限設定が適切に適用される
以前は、一時的な認証情報を使用して S3 リクエストを処理する際に、assume-role を使用しているユーザーの情報がバックエンドストアから正常にロードされませんでした。その結果、一時認証情報ではユーザークォータまたはレート制限設定は適用されませんでした。
この修正により、一時認証情報で認証し、すべての設定が正常に適用される場合でも、情報はバックエンドストアからロードされるようになりました。
事前署名された URL が Keystone EC2 認証で受け入れられるようになる
以前は、適切に構築された事前署名された HTTP PUT URL は、403/Access Denied
エラーを表示して予期せず失敗していました。これは、CORS を含む HTTP OPTIONS リクエストの処理で、認証が Keystone EC2 (Swift S3 エミュレーション) 経由であった場合に、一部の事前署名された URL の暗黙的な AWSv4 要求署名の計算を変更していたために発生しました。
この修正により、Keystone EC2 の場合に CORS HTTP OPTIONS の新しいワークフローが導入され、事前に署名された URL が失敗しなくなりました。
radosgw-admin 通知出力の不正な JSON が修正される
以前は、バケット通知がメタデータおよびタグフィルターで設定されている場合、get/list 出力の radosgw-admin
通知の出力は不正な JSON 形式で返されていました。その結果、出力を読み取る jquery などの JSON パーサーが失敗しました。
この修正により、radosgw-admin
の JSON 出力が修正されました。
クラスターが QAT と QAT 以外の Ceph Object Gateway デーモンの両方で設定できるようになる
以前は、QAT は新しいセットアップでのみ設定できました (Greenfield のみ)。そのため、QAT の Ceph Object Gateway デーモンは、非 QAT (通常の) Ceph Object Gateway デーモンと同じクラスターで設定できませんでした。
この修正により、QAT デーモンと非 QAT の Ceph Object Gateway デーモンの両方を同じクラスターに設定できます。
Ceph Object Gateway は、チェックサムおよびその他の仮のトラフィックと共に minio SDK を許容するようになる
以前は、minio クライアント SDK の一部のバージョンに、multipart オブジェクトの追加されたパート番号がありませんでした。これにより、multipart アップロードで予期しないエラーが発生しました。
この修正により、パート番号接尾辞の有無にかかわらずチェックサムが許可されます。この修正により、パートアップロードでチェックサムがアサートされていない場合、チェックサムタイプが init-multipart から推測できるようになります。
空のインスタンスを含む最新バージョン以外のオブジェクトのライフサイクルの移行が失敗しなくなる
以前は、バケットのバージョン管理が有効になっている場合、古いプレーンオブジェクトエントリーは、その raw データのヘッドや古いオブジェクトでインスタンスを "null" に更新することでバージョン管理されるように変換されていました。このため、インスタンスが空の最新バージョン以外のオブジェクトではライフサイクルの移行に失敗します。
この修正により、コードが修正され、バケットインデックスエントリーの更新時にインスタンスを空のままにし、バージョン管理に変換されるすべてのプレーンエントリーに対してライフサイクルの移行が機能するようになりました。
AST 構造 SQL ステートメントがクラッシュしなくなる
以前は、誤ったセマンティックが Parquet フローと組み合わされたため、SQL エンジンによって生成される AST 作成が間違っており、クラッシュが発生する場合がありました。
この修正により、AST 構造に対して安全チェックがより多く行われ、ステートメント処理時間が固定され、クラッシュが回避されます。
バケットポリシーの認可が期待どおりに機能するようになる
以前は、バケットの所有者のみが、バケットからのバケット通知の設定を実行、取得、および削除できました。これは、バケットポリシーがこれらの操作を実行する別のユーザーに承認した場合でも該当します。
この修正により、バケット通知を設定するための承認が期待どおりに機能するようになりました。
バケットポリシー評価が想定どおりに機能し、ポリシーで許可されるアクションのクロステナントアクセスが許可されるようになりました。
以前は、誤った値のバケットテナントが原因で、バケットポリシーの評価中に、S3 操作がバケットポリシーで明示的に許可されていてもアクセスが定義されていました。その結果、バケットポリシーの評価が失敗し、バケットポリシーによって許可済みとマークされた S3 操作は拒否されました。
この修正により、バックエンドストアからバケットポリシーを取得する際に、要求されたバケットテナント名が正しく渡されるようになりました。その後、テナントは S3 オペレーション要求の一部として渡されたバケットテナントと照合され、S3 操作は期待どおりに機能します。
SSL セッションは、複数のオブジェクトをアップロードするために接続を再利用できるようになる
以前は、SSL を使用した連続したオブジェクトのアップロード時に、各オブジェクトに対して暗号ネゴシエーションが発生していました。その結果、1 秒の転送レートごとのオブジェクトのパフォーマンスが低下します。
この修正により、SSL セッションの再利用メカニズムがアクティブになり、サポートするクライアントが既存の SSL 接続を再利用して複数のオブジェクトをアップロードできます。これにより、各オブジェクトごとに SSL 接続を再交渉する際のパフォーマンスのペナルティーを回避できます。
4.5. マルチサイトの Ceph Object Gateway
2 番目のサイトでは、null バージョン ID を持つオブジェクトが削除される
以前は、null バージョン ID のオブジェクトは 2 番目のサイトで削除されませんでした。マルチサイト環境では、サイトの 1 つで null バージョン ID を持つオブジェクトを削除しても、2 番目のサイトのオブジェクトは削除されませんでした。
この修正により、2 番目のサイトで null バージョン ID のオブジェクトが削除されます。
セカンダリーゾーンでのバケット作成が失敗しなくなる
以前は、セカンダリーゾーンがロケーションの制約で create_bucket
要求を転送すると、バケットは content_length
をゼロ以外の値に設定していました。ただし、セカンダリーゾーンから転送された際、content_length
はプライマリーゾーンで解析されませんでした。その結果、create_bucket
操作を実行し、content_length
が既存のペイロードハッシュで 0
の場合、バケットはレプリケートできませんでした。
この修正により、CreateBucket
操作がプライマリーゾーンに転送され、バケットが期待どおりに作成されると、要求本文が含まれるようになりました。
CopyObject リクエストが期待どおりにレプリケートされるようになる
以前は、copy_object
はデフォルトでソース属性を保持していました。その結果、RGW_ATTR_OBJ_REPLICATION_TRACE
の確認中に、宛先ゾーンがトレースにすでに存在すると、NOT_MODIFIED
エラーが発生しました。これにより、コピーしたオブジェクトのレプリケートに失敗していました。
この修正により、copy_object
の間にソースオブジェクト RGW_ATTR_OBJ_REPLICATION_TRACE
属性が削除され、CopyObject
要求が期待どおりにレプリケートされるようになりました。
4.6. RADOS
新しく追加された容量が割り当て済みとしてマークされなくなる
以前は、新規に追加された容量は自動的に割り当て済みとマークされていました。その結果、追加されたディスク容量は使用可能な領域を追加しませんでした。
この修正により、追加された容量は空きとマークされて利用可能となり、OSD の再起動後、新しく追加された容量が期待どおりに追加された領域として認識されるようになりました。
Bugzilla:2296247
BlueStore が OSD で期待通りに動作するようになる
以前は、ceph-bluestore-tool show-label
はマウントされた OSD で機能せず、ceph-volume lvm zap
コマンドは OSD の ID を消去できませんでした。この修正により、show-label
属性にはディスクへの排他的アクセスが不要になりました。さらに、ceph-volume
コマンドは ceph-bluestore-tool zap
を使用して OSD デバイスをクリアするようになりました。
BlueStore がラベルを上書きしなくなる
以前は、BlueFS はラベル用に予約されているロケーションへの書き込みを行いました。その結果、OSD は期待どおりに起動しませんでした。
この修正により、ラベルのロケーションは reserved とマークされ、上書きされなくなりました。BlueStore がマウントされ、OSD が期待どおりに起動するようになりました。
RocksDB ファイルが必要なスペースだけを使用するようになる
以前は、RocksDB ファイルは十分に事前に割り当てられていましたが、切り捨てられることはありませんでした。その結果、決して使用されないファイルに割り当てられたディスク領域が無駄になりました。
この修正により、適切な切り捨てが実装され、未使用の割り当てが空きプールに戻されます。
クラッシュまたはシャットダウンテスト中に Monitor が選択でスタックしなくなる
以前は、MonitorMap の disallowed_leaders
属性が stretch_mode
に入る場合にのみ条件付きで入力されていました。ただし、復活直後の Monitor が probing
状態にあるため、すぐには stretch_mode
に入らない場合がありました。これが原因で、クラスター全体のモニター間で disallowed_leaders
の設定が一致しなくなりました。このため、Monitor はリーダーを選出できず、選択がスタックし、Ceph が応答しなくなります。
この修正により、disallowed_leaders
属性に対応するために Monitor を stretch_mode
にする必要がなくなりました。クラッシュまたはシャットダウンテスト中に Monitor が選択でスタックしなくなります。
4.7. RADOS ブロックデバイス (RBD)
librbd
は、破棄 I/O 要求を処理するときにクラッシュしなくなる
以前は、実装上の欠陥により、ジャーナリング機能が有効になっているイメージ上の複数の RADOS オブジェクトにまたがる破棄 I/O 要求を処理すると、librbd
がクラッシュしていました。回避策は、rbd_skip_partial_discard
オプションを ‘false (デフォルトは true) に設定することでした。
この修正により、実装上の欠陥が修正され、librbd
がクラッシュしなくなり、回避策が不要となりました。
rbd du
コマンドは、サイズが 0 のブロックデバイスイメージに遭遇してもクラッシュしなくなる
以前は、実装上の欠陥により、0 サイズの RBD イメージが発生すると rbd du
コマンドがクラッシュしていました。
この修正により、実装上の欠陥が修正され、0 サイズの RBD イメージが発生しても rbd du
コマンドがクラッシュしなくなりました。
rbd_diff_iterate2()
API は、LUKS 暗号化がロードされたブロックデバイスイメージに対して正しい結果を返す
以前は、実装上の欠陥により、rbd_diff_iterate2()
API が LUKS 暗号化がロードされた RBD イメージについて誤った結果を返していました。
この修正により、rbd_diff_iterate2()
API が LUKS 暗号化がロードされた RBD イメージの正しい結果を返すようになりました。
Bugzilla:2292562
インポートまたはライブマイグレーション後に暗号化されたイメージの復号化がスキップされなくなる
以前は、実装上の欠陥により、ライブマイグレーションまたはインポートされた暗号化されたイメージから読み取ると、復号が省略されていました。その結果、実際に保存されたデータ (plaintext) ではなく、暗号化されたバッファー (ciphertext) がユーザーに返されました。
この修正により、ライブマイグレーションまたはインポートされている暗号化されたイメージからの読み取り時に復号化が省略されなくなり、期待どおりに実際の保存されたデータ (plaintext) がユーザーに返されます。
Bugzilla:2303528
暗号化仕様は常に移行元に伝播されるようになる
以前は、実装上の欠陥により、ライブマイグレーションまたはインポートされている暗号化されたクローンイメージを開くと、暗号化仕様が移行ソースに伝播されませんでした。その結果、ライブマイグレーションまたはインポート中の暗号化されたクローンイメージが開きませんでした。ユーザーにとって唯一の回避策は、暗号化仕様を重複させて二重に渡すことでした。
この修正により、暗号化仕様は常に移行ソースに伝播されるようになりました。
Bugzilla:2308345
4.8. RBD ミラーリング
rbd-mirror
デーモンは古くなった PoolReplayer
インスタンスを適切に処分するようになる
以前は、実装上の欠陥により、rbd-mirror
デーモンは、ミラーピア設定を更新するときに特に古い PoolReplayer
インスタンスを適切に破棄しませんでした。これにより、不要なリソース消費が発生し、複数の PoolReplayer
インスタンスが相互に競合することで、rbd-mirror
デーモンの健全性が ERROR と報告され、いくつかのケースではレプリケーションが停止することがありました。レプリケーションを再開するには、管理者が rbd-mirror
デーモンを再起動する必要があります。
この修正により、実装上の欠陥が修正され、rbd-mirror デーモンが古い PoolReplayer
インスタンスを適切に破棄するようになりました。
4.9. NFS Ganesha
設定リロードプロセスで消費されたすべてのメモリーが解放される
以前は、リロードエクスポートでは、設定リロードプロセスによって消費されたメモリーがすべて解放されず、メモリーフットプリントが増加していました。
この修正により、設定リロードプロセスによって消費されるすべてのメモリーが解放され、メモリーフットプリントが削減されます。
reap_expired_client_list
がデッドロックを引き起こさなくなる
以前は、場合によっては、reap_expired_client_list
によってデッドロックが発生することがありました。これは、ロックを取得するために相互に待機している 2 つのスレッドが原因で発生します。
この修正により、ロックの順序が解決され、デッドロックは発生しなくなりました。
ファイルの解析と起動時間が大幅に短縮される
以前は、解析されたトークンの管理が不十分だったため、設定ファイルの解析が非常に遅くなっていました。
この修正により、トークン検索が AVL ツリーに置き換えられ、解析時間と起動時間が短縮されます。
第5章 テクノロジープレビュー
このセクションでは、この Red Hat Ceph Storage リリースで導入または更新されたテクノロジープレビュー機能の概要を説明します。
テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能では、最新の製品機能をいち早く提供します。これにより、お客様は開発段階で機能をテストし、フィードバックを提供できます。
Red Hat のテクノロジープレビュー機能のサポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
ユーザーは古いデータを AWS バケットにアーカイブできます。
今回のリリースでは、ユーザーはライフサイクル設定の一部として、Amazon Web Services (AWS) などのリモートクラウドサービスへのデータ移行を有効にすることができます。詳細は、Amazon S3 クラウドサービスへのデータの移行 を参照してください。
S3 select のアプリケーションを Apache Parquet 形式に拡張します。
今回のリリースでは、CSV 用と Parquet 用の 2 つの S3 選択ワークフローがあり、CSV オブジェクトと Parquet オブジェクトを使用した S3 選択操作を提供します。詳細は、Red Hat Ceph Storage 開発者ガイド の S3 選択操作 を参照してください。
バケットの詳細なマルチサイト同期ポリシーがサポートされるようになりました
Red Hat は、バケットの詳細なマルチサイト同期ポリシーをサポートするようになりました。詳細は、Red Hat Ceph Storage Object Gateway ガイド の マルチサイト同期ポリシーの使用 セクションを参照してください。
サーバー側の暗号化がサポートされるようになりました。
今回のリリースでは、Red Hat はサーバー側の暗号化を管理するためのサポートを提供します。これにより、S3 ユーザーは、Amazon S3 が管理する暗号化キー (SSE-S3) を使用したサーバー側の暗号化を通じて、一意のキーで保存データを保護できるようになります。
ユーザーは、PutBucketEncryption S3
機能を使用して、オブジェクト暗号化を適用できます。
以前のリリースでは、データを保護するためにオブジェクトを強制的に暗号化するには、各リクエストにヘッダーを追加する必要がありましたが、これはすべての場合に不可能でした。
このリリースでは、PutBucketEncryption S3
アクションをサポートするように Ceph Object Gateway が更新されました。ユーザーは、各リクエストにヘッダーを追加せずに、Ceph Object Gateway で PutBucketEncryption S3
機能を使用できます。これは Ceph Object Gateway によって処理されます。
5.1. Cephadm ユーティリティー
統一アクセスと高可用性のための新しい Ceph Management ゲートウェイと OAuth2 Proxy サービス
この機能拡張により、Ceph Dashboard で Ceph Management ゲートウェイ (mgmt-gateway
) および OAuth2 Proxy サービス (oauth2-proxy
) が導入されました。Ceph Management ゲートウェイ (mgmt-gateway
) および OAuth2 Proxy (oauth2-proxy
) が設定されていると、nginx
は、シングルサインオン (SSO) が設定されている場合、oauth2-proxy
を介して、設定されたアイデンティティープロバイダー (IdP) に自動的にユーザーを転送します。
5.2. Ceph Dashboard
新しい OAuth2 SSO
OAuth2 SSO は、oauth2-proxy
サービスを使用して Ceph Management ゲートウェイ (mgmt-gateway
) と連携し、アクセスを統合してユーザーエクスペリエンスを向上させます。
5.3. Ceph Object Gateway
Ceph Object Gateway の新しいバケットロギングサポート
バケットロギングは、バケットへのすべてのアクセスをログに記録するメカニズムを提供します。ログデータを使用すると、バケットアクティビティーの監視、不正アクセスの検出、バケットの使用状況の把握、ログのバケット変更のジャーナルとしての使用が可能となります。ログレコードは別のバケット内のオブジェクトに保存され、後で分析できます。ロギング設定はバケットレベルで行われ、いつでも有効化または無効化できます。ログバケットは複数のバケットからのログを蓄積できます。設定された prefix
は、異なるバケットからのログを区別するために使用できます。
パフォーマンス上の理由から、ログレコードは永続ストレージに書き込まれるものの、ログオブジェクトがログバケットに表示されるのは、設定可能な時間が経過した後、または最大オブジェクトサイズである 128 MB に達したときのみです。ログオブジェクトをログバケットに追加する際に、そのオブジェクトにこれ以上記録が書き込まれない場合、設定された時間が経過してもログバケットの外に留まる可能性があります。
ロギングには、standard
と journal
の 2 つのタイプがあります。デフォルトのロギングタイプは standard
です。
standard
に設定すると、バケット操作が完了した後にログレコードがログバケットに書き込まれます。その結果、クライアントに表示されることなくロギング操作が失敗する場合があります。
journal
に設定すると、バケット操作の完了前にレコードがログバケットに書き込まれます。その結果、ロギングアクションが失敗し、エラーがクライアントに返される場合、操作は実行されません。
enable、disable、および get のバケットロギングアクションを実行できます。
Identity and Access Management (IAM) によるユーザーアカウントのサポート
このリリースでは、Ceph Object Gateway はオプション機能としてユーザーアカウントをサポートし、AWS Identity and Access Management (IAM) と同様のユーザー、グループ、およびロールのセルフサービス管理を可能にします。
cloud-restore
機能を使用して、リモートクラウドエンドポイントに移行されたオブジェクトを Ceph Object Gateway に復元する
このリリースでは、cloud-restore
機能が実装されています。この機能により、ユーザーは、S3 restore-object API を使用するか、または read-through オプションを使用して rehydrating することで、リモートクラウドエンドポイントに移行されたオブジェクトを Ceph Object Gateway に復元できます。
第6章 既知の問題
このセクションでは、Red Hat Ceph Storage の今回リリースで見つかった既知の問題を説明します。
6.1. Cephadm ユーティリティー
Ingress 仕様で haproxy_qat_support
設定を使用すると、haproxy デーモンがデプロイメントに失敗する
現在、haproxy_qat_support
は存在しますが、Ingress 仕様では機能しません。これは、パフォーマンスを向上させることを目的として、QAT ハードウェアを搭載したマシンでの暗号化操作を HAProxy にオフロードできるようにするために追加されました。コードの更新が不完全であるため、追加された関数は意図したとおりに動作しません。haproxy_qat_support
設定を使用すると、haproxy デーモンのデプロイに失敗します。
この問題を回避するには、今後のリリースで修正されるまでこの設定を使用しないでください。
Cephadm が最初に Prometheus をデプロイする際に、PROMETHEUS_API_HOST
が設定されない可能性がある
現時点で、Cephadm が最初に Prometheus をデプロイする際に PROMETHEUS_API_HOST
が設定されない可能性があります。この問題は、--skip-monitoring-stack
でクラスターをブートストラップし、後で Prometheus をデプロイする場合に最も一般的に見られます。このため、いくつかのモニタリング情報が利用できない場合があります。
回避策として、コマンド ceph orch redeploy prometheus
を使用して、Prometheus デーモンを再デプロイする際に PROMETHEUS_API_HOST
を設定します。また、この値は、ceph dashboard set-prometheus-api-host <value>
コマンドを使用して手動で設定できます。
6.2. Ceph Manager プラグイン
ceph-mgr
モジュールが一時的に利用できなくなり、そのコマンドが失敗する場合がある
ceph-mgr
の再起動後、バランサーモジュールのロードに時間がかかる場合があります。その結果、他の ceph-mgr
モジュールは一時的に利用できなくなり、そのコマンドが失敗します。
以下に例を示します。
[ceph: root@host01 /]# ceph crash ls Error ENOTSUP: Warning: due to ceph-mgr restart, some PG states may not be up to date Module 'crash' is not enabled/loaded (required by command 'crash ls'): use `ceph mgr module enable crash` to enable it
回避策として、ceph-mgr
の再起動後、特定の ceph-mgr
モジュールからのコマンドが失敗する場合は、ceph balancer status
コマンドを使用してバランサーのステータスを確認します。これは、たとえばアップグレード中に発生する可能性があります。* バランサーは以前はアクティブ "active": true
であったが、現在は “active": false
とマークされている場合は、再度アクティブになるまでステータスを確認し、その後他の ceph-mgr モジュールコマンドを再実行します。* その他の場合は、バランサー ceph-mgr
モジュールをオフにするようにしてください。ceph balancer off
バランサーをオフにした後、他の ceph-mgr
モジュールコマンドを再度実行します。
6.3. Ceph Dashboard
マルチサイト設定後に Ceph Object Gateway ページがロードされません
マルチサイト設定中に、ダッシュボードが新しいレルムの正しいアクセスキーとシークレットキーを見つけることができないため、Ceph Object Gateway ページがロードされません。
回避策として、ceph dashboard set-rgw-credentials
コマンドを使用してキーを手動で更新します。
サブボリュームタブに移動する際に、CephFS パスが正しいサブボリュームパスで更新されます。
CephFS の Create NFS Export フォームでは、CephFS パスはサブボリュームではなくサブボリュームグループパスを更新しています。
現在、回避策はありません。
マルチサイト自動化ウィザードには、Red Hat 製品と IBM Storage Ceph 製品の両方のマルチクラスターが言及されています。
マルチサイトの自動化ウィザード内では、Red Hat 製品と IBM Storage Ceph 製品の両方が、マルチクラスターへの参照として言及されています。IBM Storage Ceph のみがマルチクラスターをサポートします。
非推奨の iSCSI 機能が Ceph Dashboard に表示される
現在、iSCSI は非推奨の機能ですが、Ceph Dashboard に表示されます。
iSCSI 機能の UI は使用できません。
6.4. Ceph Object Gateway
匿名ユーザーは、Swift SLO としてアップロードされたオブジェクトをダウンロードできない
匿名ユーザーは、Swift SLO としてアップロードされたオブジェクトをダウンロードできません。
現在、この問題に対する回避策はありません。
すべての一見適格な読み取り操作がローカルで実行できるわけではありません。
現時点では、RADOS オブジェクトが最近作成され、場合によっては変更された場合、そのオブジェクトをすぐにローカルで読み取ることはできません。正しく設定され動作している場合でも、すべての適格な読み取りをローカルで実行できるわけではありません。これは RADOS プロトコルの制限が原因です。テスト環境では、多くのオブジェクトが作成されるため、read-local I/O の代表的でないサンプルが作成されやすいです。
6.5. マルチサイトの Ceph Object Gateway
テナントユーザーが作成したバケットが正しくレプリケートされない
現在、テナントユーザーが作成したバケットは正しくレプリケートされません。
この問題を回避するには、バケットの所有者はテナントユーザーを使用してセカンダリーゾーンにバケットを作成しないようにする必要があります。代わりにマスターゾーンでのみ作成します。
Red Hat Ceph Storage 8.0 を実行しているセカンダリーゾーンが 8.0 より前のメタデータマスターゾーンからユーザーメタデータをレプリケートすると、それらのユーザーのアクセスキーが誤って「非アクティブ」とマークされます。
現在、Red Hat Ceph Storage 8.0 を実行しているセカンダリーゾーンが 8.0 より前のメタデータマスターゾーンからユーザーメタデータをレプリケートすると、それらのユーザーのアクセスキーが誤って「非アクティブ」とマークされます。非アクティブなキーを使用して要求を認証できないため、これらのユーザーはセカンダリーゾーンへのアクセスが拒否されます。
回避策として、他のサイトの前に現在のプライマリーゾーンをアップグレードする必要があります。
6.6. RADOS
配置グループは upmap-read
および read
バランサーモードでスケールダウンされない
現在、pg-upmap-primary
エントリーは、マージが保留中の配置グループ (PG) に対して適切に削除されません。たとえば、プールで bulk フラグが削除されたとき、またはプール内の PG の数が減少する場合。その結果、PG スケールダウンプロセスがスタックし、影響を受けるプール内の PG の数が期待どおりに減少しなくなりました。
回避策として、影響を受けるプールの OSD マップの pg_upmap_primary
エントリーを削除します。エントリーを表示するには、ceph osd dump
コマンドを実行してから、影響を受けるプールの PG に到達するために ceph osd rm-pg-upmap-primary PG_ID
を実行します。
回避策を使用した後、PG スケールダウンプロセスは期待どおりに再開します。
第7章 非同期エラータの更新
このセクションでは、z-stream リリースのバグ修正、既知の問題、機能拡張を説明します。
7.1. Red Hat Ceph Storage 8.0z3
Red Hat Ceph Storage リリース 8.0z3 が利用可能になりました。この更新に含まれるバグ修正は RHSA-2025:3635 および RHBA-2025:3638 アドバイザリーに記載されています。
7.1.1. 機能拡張
7.1.1.1. Cephadm ユーティリティー
クラッシュしたサービス向けのコアダンプが利用可能になりました
以前は、クラッシュ時にコアダンプが生成または切り捨てられず、ダンプを再現することが困難でした。その結果、ユーザーにとって貴重なデバッグ情報が失われました。
この機能強化により、関連するコアダンプと cephadm のサイズが増加し、ユーザーは期待どおりにクラッシュしたサービスのコアダンプにアクセスできるようになります。
7.1.1.2. Ceph Object Gateway
バケット通知がマルチノード Kafka クラスターに送信されるように
以前は、Ceph Object Gateway はシングルノードの Kafka クラスターにのみメッセージを送信できました。
この機能強化により、バケット通知をマルチノードの Kafka クラスターに送信できるようになりました。マルチノード Kafka クラスターのサポートにより、クラスターの高可用性 (HA) が適切に利用されるようになりました。ノードが down
の状態であっても、他の Kafka ノードが up
の場合には、メッセージを送信できるようになりました。さらに、Ceph Object Gateway が各ノードに接続されるようになったため、トピックパーティションがすべてのノードに複製されないことが原因でバケット通知の問題が発生しなくなりました。
7.2. Red Hat Ceph Storage 8.0z2
Red Hat Ceph Storage リリース 8.0z2 が利用可能になりました。この更新に含まれるバグ修正は RHBA-2025:2457 および RHBA-2025:2458 アドバイザリーに記載されています。
7.2.1. 機能拡張
7.2.1.1. Ceph File System
quota.max_bytes がよりわかりやすいサイズ値に設定されるようになりました
以前は、quota.max_bytes
値はバイト単位で設定されていたため、サイズの値が非常に大きくなることが多く、設定や変更が困難でした。
この機能強化により、quota.max_bytes 値を K/Ki、M/Mi、G/Gi、T/Ti などのわかりやすい値に設定できるようになりました。たとえば、10GiB
または 100K
です。
Ceph ファイルシステムのミラーリング用に設定されたディレクトリーは、ceph fs
コマンドを使用してリスト表示できるようになりました。
以前は、ミラーリング用に設定されたディレクトリーをリスト表示するには、ユーザーはピアリストを確認する必要がありました。
この機能拡張により、ユーザーは ceph fs snapshot mirror ls FS_NAME
コマンドを使用して、ミラーリング用に設定されたディレクトリーをリスト表示できるようになりました。これにより、ミラーリング用に設定されたディレクトリーの直接リストが提供されます。
7.2.1.2. Ceph Object Gateway
名前空間付きバケットインデックスエントリーを使用した順序付きバケットリストの効率が向上しました。
以前は、名前空間バケットインデックスエントリーを無視しているにもかかわらず、その無視したエントリーにもコードがアクセスしていました。その結果、無視されたリストで不要な遅延が発生しました。
この機能強化により、コードは無視されたエントリーへのアクセスを回避するようになり、順序付けられたバケットリストの効率が向上します。
radosgw-admin コマンドラインを使用して、キーなしでユーザーを作成できます。
以前は、radosgw-admin コマンドラインを使用してキーなしで Ceph Object Gateway (RGW) ユーザーを作成する仕組みはありませんでした。この機能は adminops のみが利用可能でした。
この機能強化により、--generate-key false
フラグが radosgw-admin user create
に設定されている場合に、コマンドラインでキーなしで RGW ユーザーを作成する機能が提供されるようになりました。
7.2.1.3. RADOS
admin socket コマンドがデフォルトのパラメーターで動作するようになりました。
以前は、bluefs-db
および bluefs-wal
をデフォルトのパラメーターのまま使用した場合に、allocator histogram = admin socket
を指定して bluestore アロケーターフラグメンテーションヒストグラムをリストできませんでした。
この機能強化により、admin socket
コマンドはデフォルトのパラメーターで動作するようになりました。
管理ソケットコマンドによるディスクアロケーターの状態の検査
この機能強化により、単一の数値を示すアロケータースコアと、すべての空きチャンクをリスト表示するアロケーターダンプの中間点が提供されます。
その結果、フラグメーションヒストグラムは空きチャンクをサイズ別にグループ化し、アロケーターの状態をある程度概算します。これにより、現在のフラグメンテーションの深刻度を推定する機会が得られます。フラグメンテーションヒストグラムは block/bluefs-db/bluefs-wal
アロケーターで機能します。追加パラメーター disk_alloc
は、disk_alloc
境界に揃えられていない空きチャンクの数の計算に影響します。追加パラメーター num_buckets はヒストグラムのサイズを決定しますが、粒度は同じままです。以下に例を示します。
bluestore allocator fragmentation histogram block 4096 12
7.2.2. 既知の問題
7.2.2.1. Ceph Object Gateway
AWS CLI を使用してマルチパートアップロードを実行すると、Ceph Object Gateway がクラッシュします。
現在、AWS CLI を使用したマルチパートアップロード中に、AWS S3 および AWS SDK で導入された新しいチェックサムアルゴリズムとレポート動作、具体的には新しい CRC64NVME チェックサムアルゴリズムが原因で RGW がクラッシュします。
回避策として、AWS CLI クライアントの以前のバージョンを使用します。
詳細は、RGW services crashing during multipart upload in RGWPutObj_Cksum
function を参照してください。
radosgw-admin user stats --reset-stats ERROR: value too large for defined data type のエラー。
現在、RADOS RETURNVEC
のデフォルトサイズ (64 バイト) は、safe user rest stats を実行している一部の環境では小さすぎます。
回避策として、osd_max_write_op_reply_len
を 128
(テストされた最大値) に増やします。この変更により、user reset stats が正常に完了します。
7.3. Red Hat Ceph Storage 8.0z1
Red Hat Ceph Storage release 8.0z1 が利用可能になりました。この更新に含まれるセキュリティー更新とバグ修正は、RHSA-2024:10956 および RHSA-2024:10957 アドバイザリーに記載されています。
第8章 ソース
更新された Red Hat Ceph Storage ソースコードパッケージは、以下の場所から入手できます。
- Red Hat Enterprise Linux 9 の場合: https://ftp.redhat.com/redhat/linux/enterprise/9Base/en/RHCEPH/SRPMS/