4.16 リリースノート


Red Hat Ceph Storage 6.1

Red Hat Ceph Storage 6.1 のリリースノート

Red Hat Ceph Storage Documentation Team

概要

本リリースノートでは、Red Hat Ceph Storage 6.1 製品リリース向けに実装された主要な機能、機能拡張、既知の問題、バグ修正を説明します。
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

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

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/6 から入手できます。

第2章 謝辞

Red Hat Ceph Storage バージョン 6.1 には、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 の今回のリリースで導入された主要な更新、機能拡張、新機能のリストを紹介します。

本リリースで追加された主な機能は以下のとおりです。

msgr2 プロトコルを使用した有線圧縮が利用可能になりました

今回のリリースでは、ストレージクラスター内のネットワーク操作を保護するために、ネットワーク上の暗号化に加えて、ネットワーク上の圧縮もサポートされています。

詳細は Red Hat Ceph Storage データセキュリティーおよび強化ガイド暗号化とキー管理 セクションを参照してください。

Python 通知が効率化されました

以前のリリースでは、現時点ではモジュールを必要としない未使用の通知がいくつかありました。これにより非効率が生じていました。

今回のリリースでは、NotifyType パラメーターが導入されました。これには、現時点でどのイベントモジュールが消費しているかがアノテーションとして付けられます (例: NotifyType.mon_mapNotifyType.osd_map)。結果として、モジュールが要求するイベントのみがキューに入れられます。どのモジュールも消費しないイベントが発行されます。上記の変更により、Python 通知がより効率的になりました。

pg_num への変更が制限されました。

以前のリリースでは、pgp_num を超える大規模な変更が pg_num に加えられた場合に、OSD 別の配置グループの制限に達し、エラーが発生する可能性がありました。

このリリースでは、OSD ごとの配置グループ制限の問題を回避するために、pg_num への変更が制限されています。

新しい pg_progress 項目が作成されて進行状況の更新に関する配置グループの統計すべてがダンプされなくなります。

以前のリリースでは、pg_dump 項目には不要なフィールドが含まれており、python-land にコピーすると CPU を浪費していました。これが原因で、ClusterState::lock の保持時間が長くなっていまし、ms_dispatch 遅延が伸びて一般的にプロセスが遅くなる傾向がありました。

今回のリリースでは、新しい pg_progress の項目が作成され、mgr tasks または progress が必要とするフィールドだけがダンプされるようになります。

mgr_ip は再フェッチされなくなりました

以前のリリースでは、アクティブな Ceph Manager モジュールの有効な間に mgr_ip を再フェッチする必要がありました。

今回のリリースでは、アクティブな Ceph Manager モジュールの有効な間に、mgr_ip は変更されないため、Ceph Manager にコールバックして再フェッチする必要はありません。

Ceph OSD の QoS はデフォルトで mClock アルゴリズムに基づいています。

以前は、スケジューラーはデフォルトで Weighted Priority Queue (WPQ) に設定されていました。mClock アルゴリズムに基づくサービス品質 (QoS) は実験段階にあり、実稼働環境にはまだ推奨されていませんでした。

今回のリリースでは、mClock ベースの操作キューにより、クライアントの入出力 (I/O) やリカバリーまたはバックフィルなどの Ceph OSD 固有の操作や、pg scrubsnap trim、および pg deletionの他のバックグラウンド操作に QoS 制御を適用できるようになります。各サービスへのリソースの割り当ては、各 Ceph OSD の 1 秒あたりの入出力操作 (IOPS) 容量に基づいており、組み込みの mClock プロファイルを使用して実現されます。

本リリースには、以下の拡張機能が含まれます。

  • OSD の自動化ベースラインパフォーマンス測定を使用することで、Ceph OSD IOPS 容量が決定されます。これには、現実的ではない計測が検出された場合にデフォルトの容量にフォールバックする予防策が備えられています。
  • バックグラウンドタスクのスリープスロットルを設定する必要がなくなりました。
  • リカバリーおよび最大バックフィルオプションのデフォルト値が高く、オーバーライドフラグを使用してそれらをオーバーライドできるようになりました。
  • mClock プロファイルを使用した設定セットでは、mClock および Ceph パラメーターの調整に関する複雑さを抑えることができます。

詳細は、Red Hat Ceph Storage 管理ガイドmClock OSD スケジューラー を参照してください。

WORM コンプライアンス認証がサポートされるようになりました

Red Hat は、WORM コンプライアンス認証をサポートするようになりました。

詳細は、S3 のオブジェクトロックの有効化 を参照してください。

ユーザーとバケットにレート制限を設定する

このリリースでは、Red Hat Ceph Storage クラスターでの操作に基づいて、ユーザーとバケットにレート制限を設定できます。詳細は、データ取り込みのレート制限 を参照してください。

persistent write log cache という名前の librbd プラグインでレイテンシーを軽減する

このリリースでは、Persistent Write Log Cache (PWL) という名前の新しい librbd プラグインが、SSD デバイスを対象とした永続的でフォールトトレラントなライトバックキャッシュを提供します。レイテンシーが大幅に短縮され、低い io_depths でのパフォーマンスも向上します。このキャッシュは、チェックポイントを内部で維持するログ順のライトバック設計を使用しているため、クラスターにフラッシュバックされる書き込みは、常にクラッシュ整合性が保たれます。クライアントキャッシュが完全になくなった場合でも、ディスクイメージには整合性がありますが、データは古くなったように見えます。

Ceph File System (CephFS) が、スナップショットの高可用性非同期レプリケーションをサポートするようになりました

以前は、ストレージクラスターごとに 1 つの cephfs-mirror デーモンのみがデプロイされていたため、CephFS はスナップショットディレクトリーの非同期レプリケーションのみをサポートしていました。

このリリースでは、複数の cephfs-mirror デーモンを 2 つ以上のノードにデプロイしてスナップショット同期の同時実行を実現できるため、高可用性が提供されます。

詳細は、Red Hat Ceph Storage File System GuideCeph File System ミラーリング セクションを参照してください。

BlueStore は V3 にアップグレードされました

このリリースでは、BlueStore オブジェクトストアが V3 にアップグレードされました。次の 2 つの機能があります。

  • 割り当てメタデータは RocksDB から削除され、OSD 割り当てを使用してアロケーターオブジェクトの完全なデステージとして実行されるようになりました。
  • キャッシュエイジビニングを使用すると、古いオノードには、ホットなワークロードデータよりも低い優先度が割り当てられる場合があります。詳細は、Ceph BlueStore を参照してください。

cephadm を使用してオペレーティングシステムのチューニングプロファイルを管理する

このリリースでは、cephadm を使用して、Red Hat Ceph Storage クラスターのパフォーマンスを向上させるためのオペレーティング susyem チューニングプロファイルを作成および管理できます。詳細は、`cephadm` を使用したオペレーティングシステムのチューニングプロファイルの管理 を参照してください。

Red Hat Ceph Storage 5 から Red Hat Ceph Storage 7 への直接のアップグレードが利用可能になります

アップグレード計画を認識するために、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 7 への直接アップグレード (N=2) が利用可能になります。

ファイルシステムを名前でマウントするための新しい cephfs-shell オプションが導入されました。

以前のリリースでは、cephfs-shell はデフォルトのファイルシステムのみをマウントできました。

今回のリリースでは、CLI オプションが cephfs-shell に追加され、kclient および ceph-fusemds_namespace= または fs= オプション のように、別のファイルシステムを名前を指定してマウントできるようになります。

Day 2 タスクは Ceph Dashboard から実行できるようになりました。

このリリースでは、Ceph ダッシュボードで、ユーザーは毎日または毎週のアクションの頻度を必要とするタスクを毎日 2 回実行できるようになりました。今回の機能強化により、ダッシュボードの評価機能と顧客エクスペリエンスが向上し、その使いやすさと成熟度が強化されます。これに加えて、ユーザーがタスクを完了するための追加情報を取得する際に役立つ新しい画面上の要素も含まれています。

3.1. Cephadm ユーティリティー

Ceph デーモンの認証キーをローテーションできるようになりました。

セキュリティー上の理由から、ユーザーによっては、ストレージクラスター内のデーモンに使用される認証キーを時々ローテーションすることを希望する場合があります。

今回のリリースにより、ceph orch daemon rotate-key DAEMON_NAME コマンドを使用して ceph デーモンの認証キーをローテーションする機能が導入されました。MDS、OSD、および MGR デーモンの場合、デーモンを再起動する必要はありません。ただし、Ceph Object Gateway デーモンなどの他のデーモンの場合は、デーモンを再起動して新しいキーに切り替える必要がある場合があります。

Bugzilla:1783271

ブートストラップログが STDOUTに記録されるようになりました。

今回のリリースにより、潜在的なエラーを減らすために、ブートストラップのシナリオが成功した場合に、ブートストラップログが STDERR ではなく、STDOUT に記録されるようになりました。

Bugzilla:1932764

オーケストレーターが使用する仕様で Ceph Object Gateway ゾーングループを指定できるようになりました。

以前のリリースでは、オーケストレーターは、Ceph Object Gateway のレルムおよびゾーンの設定を処理することができました。ただし、ゾーングループの設定はサポートされていませんでした。

今回のリリースにより、オーケストレーターが使用する仕様で rgw_zonegroup パラメーターを指定できるようになりました。Cephadm は、仕様からデプロイされた Ceph Object Gateway デーモンのゾーングループを設定します。

Bugzilla:2016288

ceph orch デーモン add osd は、 OSD のデプロイメントに指定されたホスト名が不明であるかどうかを報告するようになりました

以前のリリースでは、ceph orch daemon add osd コマンドでは出力がなかったため、ホスト名が間違っていてもユーザーは気づきませんでした。そのため、Cephadm は コマンドを破棄していました。

このリリースでは、OSD のデプロイメントに指定されたホスト名が不明な場合に、ceph orch daemon add osd コマンドでユーザーに報告されるようになりました。

Bugzilla:2016949

cephadm シェル コマンドは、起動時にシェルに使用されているイメージを報告するようになりました。

以前のバージョンでは、ユーザーは、シェルに使用されているイメージを常に認識しているわけではありませんでした。これは、シェル内で実行されるコマンドに使用されるパッケージに影響します。

今回のリリースでは、cephadm shell コマンドが、起動時にシェルに使用されるイメージを報告するようになりました。ユーザーは、使用されているコンテナーイメージと、シェルの起動時にそのイメージがいつ作成されたかを確認できるため、シェル内で使用されているパッケージを確認できるようになりました。

Bugzilla:2029714

` /var/log/ceph` の下のクラスターログが削除されるようになりました。

このリリースでは、ノードから Ceph クラスターを削除する一環としてノードをより適切にクリーンアップするために、cephadm rm-cluster コマンドの実行時に /var/log/ceph の下のクラスターログが削除されます。--keep-logsrm-cluster コマンドに指定されていない限り、クラスターログは削除されます。

注記

cephadm rm-cluster コマンドがまだ存在するクラスターに含まれるホストで実行され、そのホストの管理が Cephadm により行われ、Cephadm mgr モジュールがまだ有効で実行されている場合に、Cephadm は新しいデーモンのデプロイをすぐに開始し、ログが表示される可能性があります。

Bugzilla:2036063

デーモン名が ceph orch restart コマンドに渡されるときのエラー処理が改善されました。

以前のリリースでは、ceph orch restart コマンドに渡されるデーモンが haproxy または keepalived デーモンである場合に、トレースバックを返していました。そのため、ユーザーは自分の間違いなのか、Cephadm が別の方法で失敗したのかがわかりにくくなっていました。

このリリースでは、ユーザーが予期されるサービス名ではなくデーモン名を ceph orch restart コマンドに渡したことを識別するための、より適切なエラー処理が導入されました。デーモン名を検出すると、Cephadm はレポートを報告し、通過する有効なサービスについて ceph orch ls をチェックするようにユーザーに要求します。

Bugzilla:2080926

ceph rgw realm bootstrap -i rgw_spec.yaml コマンドを使用して、Ceph Object Gateway レルム、ゾーン、およびゾーングループを作成できるようになりました。

今回のリリースでは、Red Hat Ceph Storage クラスター上で Ceph Object Gateway をセットアップするプロセスを効率化するために、ユーザーは ceph rgw realm bootstrap -i rgw_spec.yaml コマンドを使用して Ceph Object Gateway レルム、ゾーン、およびゾーングループを作成できます。仕様ファイルは、オーケストレーターで Ceph Object Gateway デーモンをデプロイするために使用されるものと同じモデルである必要があります。次に、コマンドはレルム、ゾーン、およびゾーングループを作成し、その仕様をオーケストレーターに渡し、オーケストレーターは、Ceph Object Gateway デーモンをデプロイします。

rgw_realm: myrealm
rgw_zonegroup: myzonegroup
rgw_zone: myzone
placement:
  hosts:
   - rgw-host1
   - rgw-host2
spec:
  rgw_frontend_port: 5500

Bugzilla:2109224

crush_device_class および location フィールドはそれぞれ OSD 仕様およびホスト仕様に追加されました。

このリリースでは、crush_device_class フィールドが OSD 仕様に追加され、ホストの初期クラッシュ位置を参照する location フィールドがホスト仕様に追加されます。ユーザーがホスト仕様に location フィールドを設定すると、cephadm はホスト名と指定された場所を使用して ceph osd crash add-bucket を実行し、クラッシュマップにバケットとして追加します。OSD の場合は、作成時にクラッシュマップ内で、特定の crash_device_class を使用して設定されます。

注記

これは、フィールドが設定された仕様に基づいて作成された OSD のみが対象です。すでにデプロイされている OSD には影響しません。

Bugzilla:2124441

ユーザーは Ceph Object Gateway Manager モジュールを有効にできます。

今回のリリースでは、Ceph Object Gateway Manager モジュールが利用可能になり、ceph mgr module enable rgw コマンドを使用して有効にすると、ceph rgw realm bootstrap などの Ceph Object Gateway Manager モジュールおよび ceph rgw レルムトークン コマンドの機能にアクセスできるようになります。

Bugzilla:2133802

ユーザーは node-exporter デーモンの別のメトリックを有効にできます。

今回のリリースでは、ユーザーが個々のオプションの明示的なサポートを必要とせずに node-exporter デプロイメントをさらにカスタマイズできるようにするために、extra_entrypoint_args フィールドを使用して、Cephadm によってデプロイされた node-exporter デーモンに対して有効にできる追加のメトリックが導入されました。

service_type: node-exporter service_name: node-exporter placement: label: "node-exporter" extra_entrypoint_args: - "--collector.textfile.directory=/var/lib/node_exporter/textfile_collector2" ---

Bugzilla:2142431

Ceph モニターのクラッシュ位置を設定して、タイブレーカーモニターを置き換えできます。

今回のリリースでは、ユーザーはホストにデプロイメントされたモニターのクラッシュの場所を設定できます。mon 仕様ファイルで割り当てる必要があります。

service_type: mon
service_name: mon
placement:
  hosts:
  - host1
  - host2
  - host3
spec:
  crush_locations:
    host1:
    - datacenter=a
    host2:
    - datacenter=b
    - rack=2
    host3:
    - datacenter=a

これは主に、Cephadm によってデプロイされたストレッチクラスター内のタイブレーカーモニターデーモンを置き換えることができるように追加されました。この変更がなければ、タイブレーカーモニターはクラッシュの場所を宣言しないと参加できないため、Cephadm によって書き込まれたファイルを手動で編集してタイブレーカーモニターをデプロイメントする必要があります。

Bugzilla:2149533

crash_device_class を OSD 仕様のパスごとに指定できるようになりました。

今回のリリースでは、ユーザーが Cephadm を通じて OSD をデプロイメントする際 crash_device_class 設定をより柔軟に行えるように、OSD 仕様内のパスごとに指定できるようになりました。OSD サービス全体の crash_device_class とともに、これらのパスごとの crash_device_class を提供することもサポートされています。サービス全体の crush_device_class の場合に、設定はデフォルトと見なされ、パス指定の設定が優先されます。

 service_type: osd
    service_id: osd_using_paths
    placement:
      hosts:
        - Node01
        - Node02
    crush_device_class: hdd
    spec:
      data_devices:
        paths:
        - path: /dev/sdb
          crush_device_class: ssd
        - path: /dev/sdc
          crush_device_class: nvme
        - /dev/sdd
      db_devices:
        paths:
        - /dev/sde
      wal_devices:
        paths:
        - /dev/sdf

Bugzilla:2151189

Cephadm は、アップグレード中にホストがオフラインになった場合に、特定の正常性の警告 UPGRADE_OFFLINE_HOST を生成するようになりました。

以前は、ホストがオフラインになると、一般的な UPGRADE_EXCEPTION の正常性の警告が表示されましたが、内容が曖昧すぎて理解しづらいものでした。

このリリースでは、ホストがオフラインであるためにアップグレードが失敗した場合、Cephadm は特定の正常性に関する警告 UPGRADE_OFFLINE_HOST を生成し、問題がユーザーに透過的に表示されるようになりました。

Bugzilla:2152963

--verbose が指定されていない場合は、Cephadm のログすべてが cephadm.log に記録されなくなりました。

以前は、Gather-facts などの一部の Cephadm コマンドは、実行されるたびに大量のコマンド出力をログにスパム送信していました。場合によっては、1 分に 1 回でした。

今回のリリースでは、--verbose が指定されていない場合に、Cephadm ではすべてのログが cephadm.log に記録されなくなりました。以前に書き込まれたスパムのほとんどが存在しなくなったため、cephadm.log が読みやすくなりました。

Bugzilla:2180110

3.2. Ceph Dashboard

OSD のブロックリスト数に新しいメトリクスが追加されます。

今回のリリースでは、対応するアラートを設定するために、新しいメトリクス ceph_cluster_osd_blocklist_count が Ceph Dashboard に追加されました。

Bugzilla:2067709

ceph-exporter デーモンの導入

今回のリリースでは、すべての Ceph デーモンのパフォーマンスカウンターを収集し、Prometheus メトリックとして公開する ceph-exporter デーモンが導入されました。これは、大規模なクラスターでパフォーマンスを保つためにクラスターの各ノードにデプロイされます。

Bugzilla:2076709

Dashboard を使用した RBD ミラーリングの強制プロモートのサポート

以前のリリースでは、RBD ミラーのプロモート/デモートは Ceph Dashboard に実装されていましたが、強制的にプロモートするオプションはありませんでした。

今回のリリースでは、Ceph ダッシュボードを通じて RBD ミラーリングを強制的にプロモートするためのサポートが追加されました。Ceph ダッシュボードでプロモーションが失敗した場合、ユーザーはプロモーションを強制するオプションを選択できます。

Bugzilla:2133341

ラベル付きパフォーマンスカウンターの収集および公開のサポート

今回のリリースでは、Ceph デーモンのラベル付きパフォーマンスカウンターをラベル付きの Prometheus メトリックとして収集および公開するためのサポートが導入されました。

Bugzilla:2146544

3.3. Ceph ファイルシステム

クライアントの読み込みを増やすために cephfs-top の上限を引き上げました。

以前のリリースでは、cephfs-top ユーティリティーの制限により、一度にロードできるクライアントの数は 100 未満のみで、それ以上のクライアントがロードされるとスクロールできず、ハングすることもありました。

今回のリリースでは、cephfs-top ユーザーは垂直および水平方向にスクロールできるようになりました。これにより、cephfs-top は約 10,000 のクライアントを読み込むことができます。ユーザーはロードされたクライアントをスクロールして、画面上に表示できます。

Bugzilla:2138793

cephfs-top で選択したフィールドに基づいてクライアントを並べ替えることができるようになりました。

今回のリリースでは、cephfs-top で選択したフィールドに基づいてクライアントをソートするオプションが追加され、表示するクライアントの数を制限できるようになりました。これにより、ユーザーは要件に応じてフィールドの順序をもとにメトリックを分析できるようになります。

Bugzilla:2158689

ヘッド以外の omap エントリーが omap エントリーに含まれるようになりました。

以前のリリースは、フラグメントのマージまたは分割を決定するときにヘッドスナップショット以外のエントリーが考慮されなかった場合に、ディレクトリーフラグメントは分割されませんでした。このため、ディレクトリーオブジェクト内の omap エントリーの数が特定の制限を超え、クラスター警告が発生します。

今回のリリースでは、制限を超えないようにディレクトリーフラグメントのマージまたは分割を決定する時に、ヘッド以外の omap エントリーが omap エントリーの数に含まれるようになりました。

Bugzilla:2159294

3.4. Ceph Object Gateway

別のゾーンから複製されたオブジェクトがヘッダーを返すようになりました。

今回のリリースでは、マルチサイト設定で、別のゾーンから複製されたオブジェクトは、x-amz-replication-status=REPLICA ヘッダーを返し、オブジェクトがローカルに複製されたかどうかを、マルチサイトのユーザーが識別できるようになりました。

Bugzilla:1467648

AWS PublicAccessBlock のサポート

今回のリリースでは、Ceph Object Storage は PutPublicAccessBlock などの AWS パブリックアクセスブロック S3 API をサポートするようになりました。

Bugzilla:2064260

Swift オブジェクトストレージ方言に SHA-256 および SHA-512 ダイジェストアルゴリズムのサポートが含まれるようになりました

以前は、ダイジェストアルゴリズムのサポートが 2022 年に OpenStack Swift によって追加されましたが、Ceph Object Gateway はそれらを実装していませんでした。

今回のリリースでは、Ceph Object Gateway の Swift オブジェクトストレージ方言に、tempurl 操作での SHA-256 および SHA-512 ダイジェストメソッドのサポートが含まれるようになり、Ceph Object Gateway は、最近の OpenStack Swift クライアントによる tempurl 操作を正しく処理できるようになりました。

Bugzilla:2105950

3.5. マルチサイトの Ceph Object Gateway

オブジェクトがゾーンに同期されるとバケット通知が送信されます。

今回のリリースでは、オブジェクトがゾーンに同期されるときにバケット通知が送信され、外部システムがオブジェクトレベルでゾーン同期ステータスの情報を受信できるようになります。s3:ObjectSynced:* および s3:ObjectSynced:Created のバケット通知イベントタイプが追加されました。バケット通知メカニズムが設定されている場合、オブジェクトの同期が成功すると、同期された Ceph Object Gateway から通知イベントが送信されます。

注記

トピックと通知設定はどちらも、通知イベントの送信元を確認するゾーンごとに個別に実行する必要があります。

Bugzilla:2053347

ゾーンがデフォルトで複製される場合は、バケットごとの複製を無効にします。

今回のリリースでは、デフォルトでゾーンが複製されるときに、マルチサイト同期ポリシーを使用してバケットごとの複製を無効にする機能が導入され、選択したバケットをオプトアウトできるようになりました。

Bugzilla:2132554

第4章 バグ修正

本セクションでは、今回リリースされた Red Hat Ceph Storage で修正されたユーザーに大きな影響を及ぼすバグを説明します。また、セクションでは、以前のバージョンで見つかり修正された既知の問題を説明します。

4.1. Cephadm ユーティリティー

Ceph の初期設定で引用符で囲まれた IP のコンマ区切りリストがパブリックネットワークとして渡された場合に、ブートストラップが失敗しなくなりました。

以前のリリースでは、リストが引用されている場合に、cephadm ブートストラップは IP アドレスのコンマ区切りリストを誤って解析していました。このため、引用符で囲まれた IP アドレスのコンマ区切りのリスト (例: '172.120.3.0/24,172.117.3.0/24,172.118.3.0/24,172.119.3.0/24') が、--config パラメーターを使用してブートストラップに渡される Ceph 初期設定で public_network として指定された場合、ブートストラップは失敗します。

この修正により、public_network または cluster_network のブートストラップに渡される初期 Ceph 設定に、引用符で囲まれた IP のコンマ区切りのリストを入力できるようになり、想定どおりに機能するようになりました。

Bugzilla:2111680

cephadm は、指定の yaml ファイルの解析を必要以上に試行しなくなりました。

以前のリリースでは、cephadm ブートストラップは、指定された yaml ファイルを必要以上に手動で解析しようとしていました。このため、ユーザーが有効な yaml ファイルを cephadm ブートストラップに指定したとしても、個々の仕様によっては手動解析が失敗し、仕様全体が破棄されることがありました。

今回の修正により、cephadm は必要以上の yaml の解析を試行しなくなりました。ホストの仕様は、SSH キーを分散する目的でのみ検索されます。それ以外の場合、仕様は単にマネージャーモジュールに渡されます。cephadm bootstrap --apply-spec コマンドは、有効な仕様であれば期待どおりに動作するようになりました。

Bugzilla:2112309

host.containers.internal エントリーが、デプロイされたコンテナーの /etc/hosts ファイルに追加されなくなりました。

以前のリリースでは、特定の podman バージョンでデプロイされたコンテナーの /etc/hosts ファイルに host.containers.internal エントリーがデフォルトで追加されていました。このため、一部のサービスにおいて、このエントリーが実ノードの FQDN であると誤解される問題が発生しました。

今回の修正により、Cephadm はコンテナーのデプロイ時にホストの /etc/hosts ファイルをマウントするようになりました。コンテナー内の /etc/hosts ファイルに host.containers.internal エントリーは存在しなくなり、このエントリーに関連するすべてのバグが回避されますが、ユーザーはコンテナー内の名前解決のためにホストの /etc/hosts を引き続き参照できます。

Bugzilla:2133549

cephadm は、実際の変更が発生した場合にのみデバイス情報をログに記録するようになりました。

以前のリリースでは、cephadm` は、OSD に関して報告されたすべてのフィールドを比較して、新しいデバイスまたは変更されたデバイスがないかを確認します。しかし、これらのフィールドの 1 つに、毎回異なるタイムスタンプが含まれていました。そのため、`cephadm は、実際に変更されたかどうかに関係なく、ホストのデバイスを更新するたびに 'Detected new or changed devices' とログに記録していました。

今回の修正により、デバイス情報と以前の情報を比較する場合に、常に変更される可能性のあるタイムスタンプのフィールドは考慮されなくなりました。Cephadm は、デバイスに実際の変更がある場合にのみログを記録するようになりました。

Bugzilla:2136336

生成された Prometheus URL にアクセスできるようになりました。

以前のリリースでは、ホストに FQDN がない場合に、生成される Prometheus URL は http://_host-shortname :9095_ となり、アクセスできませんでした。

今回の修正により、使用可能な FQDN がない場合、短縮形でホスト IP が使用されます。Prometheus 用に生成された URL は、利用できる FQDN がないサービスにホスト Prometheus がデプロイされている場合でも、アクセス可能な形式になりました。

Bugzilla:2153726

ホストへのファイル書き込み中に cephadm のパーミッションの問題が発生しなくなりました。

以前は、cephadm は最初に /tmp ディレクトリー内にファイルを作成してから、最終的な場所に移動していました。このため、特定の設定では、ファイルの書き込み時に権限の問題が発生し、権限が変更されるまで cephadm が事実上動作できなくなっていました。

この修正により、cephadm は/tmp 内のサブディレクトリーを使用して、同じ権限の問題がないホストにファイルを書き込みます。

Bugzilla:2182035

4.2. Ceph Dashboard

Expand Cluster ウィザード の OSD 作成手順のデフォルトオプションが期待どおりに機能します。

以前のリリースは、Expand Cluster ウィザード の OSD 作成手順のデフォルトオプションがダッシュボードで機能せず、オプションが選択済みとして表示されてユーザーが誤解する原因となっていました。

今回の修正により、デフォルトのオプションが期待どおりに機能するようになりました。さらに、手順を飛ばすことができるように、「省略」ボタンが追加されました。

Bugzilla:2111751

ユーザーは通常のスナップショットまたはミラースナップショットを作成できます。

以前のバージョンでは、ユーザーが通常のイメージスナップショットを作成してイメージスナップショットをミラーリングできる場合でも、通常のイメージスナップショットを作成できませんでした。

この修正により、ユーザーは 2 つのオプションから通常またはミラーイメージのスナップショットモードを選択できるようになります。

Bugzilla:2145104

flicker がホストページで発生しなくなりました。

以前のリリースでは、複数のホストが存在する場合、ホストページが 5 秒後にちらつき、ユーザーエクスペリエンスが低下していました。

今回の修正により、API が通常どおりページを読み込むように最適化され、ちらつきは発生しなくなりました。

Bugzilla:2164327

4.3. Ceph Metrics

Ceph エクスポータと prometheus マネージャーモジュールによって生成されるメトリック名は同じです。

以前は、Ceph デーモン (パフォーマンスカウンター) からのメトリックは、Prometheus マネージャーモジュールによって生成されていました。新しい Ceph エクスポーターは Prometheus マネージャーモジュールを置き換え、生成されたメトリクス名が準拠するルールは Prometheus マネージャーモジュールで適用されるルールと同じではありませんでした。このため、同じパフォーマンスカウンターのメトリックの名前は、メトリックのプロバイダー (Prometheus マネージャーモジュールまたは Ceph エクスポーター) に応じて異なりました。

この修正により、Ceph エクスポーターは Prometheus マネージャーモジュールのルールと同じルールを使用して、Ceph パフォーマンスカウンターからメトリック名を生成します。Ceph エクスポーターと Prometheus マネージャーモジュールによって生成されるメトリックはまったく同じです。

Bugzilla:2186557

4.4. Ceph ファイルシステム

スナップショットの作成時に、スナップショットディレクトリーの mtimechange_attr が 更新されるようになりました。

以前のリリースでは、libcephfs クライアントは mtime を更新せず、スナップが作成または削除されたときに属性を変更していました。このため、NFS クライアントは CephFS NFS-Ganesha エクスポート内の CephFS スナップショットを正しくリストできませんでした。

この修正により、スナップショットが作成、削除、名前変更されるときに、スナップショットディレクトリー .snapmtimechange_attr が更新されます。mtime および change_attr を修正して、スナップショットの一覧表示で古いスナップショットエントリーを返さないようにします。

Bugzilla:1975689

cephfs-top -d --lay オプションは、1 ~ 25 の範囲の整数値のみを受け入れます。

以前のリリースでは、いくつかの新しい Curses メソッドが追加されたため cephfs-top -d --lay オプションは正しく動作しませんでした。新しい Curses メソッドは整数値のみを受け入れるため、ヘルパー関数から浮動小数点値を取得する際に例外が出力されました。

今回の修正により、cephfs-top -d [--delay] オプションは 1 から 25 までの整数値のみを受け入れ、cephfs-top ユーティリティーが期待どおりに機能するようになりました。

Bugzilla:2136031

リンク解除の完了後に同じ dentry を作成しても、MDS デーモンはクラッシュしません。

以前は、リンク解除と作成操作の間で競合状態が発生しました。このため、前回のリンク解除要求が何らかの理由で遅れ、その間に同じ dentry を作成しようとすると、MDS デーモンがクラッシュして失敗するか、新規作成は成功しても書き込まれた内容が失われます。

この修正により、ユーザーは同じ dentry を作成する場合の競合を避けるために、リンク解除が完了するまで待つ必要があります。

Bugzilla:2140784

ceph nfs cluster info CLUSTER_ID のコマンドを実行すると、存在しないクラスターが表示されなくなりました。

以前のリリースでは、ceph nfs cluster info CLUSTER_ID コマンドの実行時にクラスターの存在がチェックされないため、virtual_ipbackend、それぞれ null と empty など、存在しないクラスターの情報が表示されていました。

今回の修正により、'ceph nfs cluster info CLUSTER_ID' コマンドはクラスターの存在をチェックし、存在しないクラスターがクエリーされると Error ENOENT: cluster does not exist が出力されます。

Bugzilla:2149415

スナップスケジュールモジュールが誤ってボリュームモジュールを参照することがなくなりました。

以前のリリースでは、スナップスケジュールモジュールは、サブボリュームパスをフェッチしようとすると、誤ってボリュームモジュールを参照していました。間違ったボリュームモジュール名とリモートメソッド名を使用したため、ImportError トレースバックが表示されます。

今回の修正により、テストされていない間違ったコードが修正され、メソッドが実装されて、スナップスケジュール CLI インターフェイスメソッドから正しく呼び出されるようになりました。スナップスケジュールモジュールは、サブボリュームレベルのスケジュールを追加しようとするときに、サブボリュームパスを正しく解決するようになりました。

Bugzilla:2153196

整数オーバーフローと ops_in_flight 値オーバーフローは発生しなくなりました

以前のリリースでは、_calculate_ops は設定オプション filer_max_purge_ops に依存していましたが、これは実行中に変更することもできました。このため、ops_in_flight の値が uint64 の機能を超える値に設定されている場合は、整数オーバーフローが発生し、ops_in_flight がmax_purge_ops よりもはるかに大きくなり、適切な値に戻すことができなくなります。

今回の修正により、Filer::_do_purge_range() ですでに使用されているため、ops_in_flight での filer_max_purge_ops の使用は、無視されます。整数オーバーフローおよび ops_in_flight 値オーバーフローが発生しなくなりました。

Bugzilla:2159307

無効な OSD リクエストは RADOS に送信されなくなりました。

以前は、最初の dentry に十分なメタデータがあり、サイズが max_write_size より大きい場合に、無効な OSD リクエストが RADOS に送信されていました。このため、RADOS は無効なリクエストを失敗させ、CephFS が読み取り専用になります。

この修正により、すべての OSD リクエストには、RADOS に送信される前に検証済みの情報が入力され、無効な OSD リクエストによって CephFS が読み取り専用になることはありません。

Bugzilla:2160598

MDS は、孤立したディレクトリーエントリーを処理するようになりました。

以前のリリースでは、MDS 孤立したディレクトリー処理ロジックのバグが原因で、MDS が孤立したディレクトリーエントリーの一部の処理をスキップしていました。このため、MDS は孤立したディレクトリーエントリーを処理できず、削除されたファイルが領域を解放しません。

今回の修正により、孤立したインデックスポインターが修正され、MDS が孤立したディレクトリーをすべて処理するようになりました。

Bugzilla:2161479

Ceph ファイルシステムに接続されたプールのプールレベルのスナップは無効になります。

以前のリリースでは、プールレベルのスナップと mon 管理のスナップには独自のスナップ ID の名前空間があり、これが原因で、ID 間で競合が発生し、Ceph Monitor がプールレベルのスナップであるか、mon が管理するスナップであるかを、一意に特定できませんでした。このため、プールレベルのスナップと mon 管理のスナップのセットに存在する ID を参照するときに、間違ったスナップが削除される可能性がありました。

この修正により、Ceph ファイルシステムに接続されたプールのプールレベルのスナップが無効になり、プール ID の競合が発生しなくなります。したがって、CephFS スナップが削除されたときに、意図しないデータ損失が発生することはありません。

Bugzilla:2168541

クライアント要求が MDS とクライアント間で無制限にバウンスすることがなくなりました。

以前のリリースでは、CephFS クライアントと MDS との間で、クライアント要求の Ceph プロトコルが一致しませんでした。このため、CephFS クライアントと MDS の間で通信するときに、対応する情報が切り捨てられるか失われ、クライアント要求が MDS とクライアントの間で無制限にバウンスすることになります。

今回の修正により、クライアント要求のプロトコル内の対応するメンバーの型が同じ型になるように修正され、新しいコードは古い Ceph と互換性が確保されるようになります。クライアント要求は MDS とクライアントの間で無制限にバウンスすることはなく、十分に再試行された後に停止します。

Bugzilla:2172791

メタデータの破損を検出するためにコードアサートが Ceph Manager デーモンサービスに追加されました

以前は、Postgres などを実行するワークロードの Manager デーモンサービスによって、スナップショット関連の一種のメタデータ破損が発生していました。

この修正により、新しい破損が検出された場合にトリガーされるコードアサートが Manager デーモンサービスに追加されます。これにより、破損の拡大が軽減され、ログを収集して原因を特定できるようになります。

注記

クラスターを Red Hat Ceph Storage 6.1 にアップグレードした後にデーモンがクラッシュした場合の分析と修正措置については、Red Hat サポート に問い合わせてください。

Bugzilla:2175307

セッションマップのバージョンの不一致の問題が原因で MDS デーモンがクラッシュしなくなりました。

以前のリリースでは、MDS フェイルオーバーが発生すると、MDS セッションマップジャーナルログが正しく保持されませんでした。このため、新しい MDS がジャーナルログを再生しようとすると、セッションマップジャーナルログが MDCache 内の情報または他のジャーナルログからの情報と一致せず、MDS デーモンがアサートをトリガーして自身をクラッシュさせます。

今回の修正により、MDS デーモンをクラッシュさせずに、セッションマップバージョンを強制的に再生しようとしても、セッションマップバージョンの不一致が原因の MDS デーモンのクラッシュは発生しません。

Bugzilla:2182564

MDS はキャップ取り消しの確認を待っている間に無期限に停止することがなくなりました。

以前は、__setattrx() が失敗した場合、_write() は、CEPH_CAP_FILE_WR キャップ参照を保持し、MDS はキャップ失効確認を待機して無期限に停止していました。さらに、他のクライアントの要求も無期限に停止してしまう原因にもなっていました。

今回の修正により、__setattrx () が失敗し、MDS のキャップ取り消し要求がスタックしない場合に、CEPH_CAP_FILE_WR キャップ参照が解放されます。

Bugzilla:2182613

4.5. Ceph Volume ユーティリティー

ceph-volume 内のデータベースデバイスごとにサイズが正しく計算されます。

以前の RHCS 4.3 では、各データベースデバイスが独自の VG を持っていたため、ceph-volume は内部のすべてのデータベースデバイスを含む単一の VG を作成しませんでした。このため、データベースのサイズは LV ごとに異なる方法で計算されます。

今回のリリースでは、LVM レイアウトを備えた新しいデータベースデバイスを考慮するためにロジックが更新されました。データベースデバイスごとにサイズが正しく計算されます。

Bugzilla:2185588

4.6. Ceph Object Gateway

末尾にスラッシュを付けても付けなくてもトピックの作成が可能になりました。

以前のリリースでは、プッシュエンドポイント URL の末尾にスラッシュが 1 つある http エンドポイントはトピックの作成に失敗していました。

この修正により、トピックの作成は末尾のスラッシュの有無にかかわらず許可され、正常に作成されます。

Bugzilla:2082666

ブロックサイズが 4K に変更されます。

以前のリリースでは、GC キューを消費する 1K ブロックサイズの使用により、Ceph Object Gateway の GC 処理に過度の時間がかかりました。これにより、大規模な GC キューの処理が遅くなります。

今回の修正により、ブロックサイズが 4K に変更され、大規模な GC キューの処理が高速化されました。

Bugzilla:2142167

タイムスタンプはマルチパートアップロードバケット通知イベントで受信者に送信されます。

以前のリリースでは、マルチパートアップロードバケット通知イベントでタイムスタンプが送信されませんでした。このため、イベントの受信者は、マルチパートアップロードがいつ終了したかを分かりませんでした。

今回の修正により、マルチパートアップロードが終了したときのタイムスタンプが通知イベントで受信者に送信されます。

Bugzilla:2149259

オブジェクトのサイズと etag 値が 0/empty として送信されなくなりました。

以前のリリースでは、オブジェクトメタデータによっては、ライフサイクルからバケット通知をディスパッチする前にデコードされませんでした。このため、ライフサイクルイベントからの通知では、オブジェクトサイズと etag 値が 0/empty として送信されていました。

この修正により、オブジェクトのメタデータがフェッチされ、値が通知とともに正しく送信されるようになりました。

Bugzilla:2153533

Ceph Object Gateway が Kafka ブローカーの切断から回復するようになりました。

以前のリリースでは、Kafka ブローカーが 30 秒以上停止した場合、ブローカーが再び起動した後は再接続されませんでした。このため、バケット通知は送信されず、最終的にキューがいっぱいになると、通知を必要とする S3 操作が拒否されます。

今回の修正では、ブローカーがダウンしている時間に関係なくブローカーの再接続が行われ、Ceph Object Gateway が Kafka ブローカーの切断から回復できるようになりました。

Bugzilla:2184268

チャンク化された Transfer-Encoding を使用した S3 PUT リクエストに content-length は必要なくなりました。

以前のリリースでは、x-amz-decoded-content-length フィールドを指定せずに Transfer-Encoding:chunked を使用してオブジェクトの PUT 操作を行う S3 クライアントは失敗していました。その結果、S3 PUT リクエストは 411 Length Required http ステータスコードで失敗します。

この修正により、チャンク化された Transfer-Encoding を使用した S3 PUT リクエストで content-length を指定する必要がなくなり、S3 クライアントは期待どおりに S3 PUT リクエストを実行できるようになりました。

Bugzilla:2186760

適切な認証情報を使用してリモート S3 サービスを設定できるようになりました。

以前のリリースでは、リモートクラウド S3 オブジェクトストアサービスを設定してオブジェクトを移行する際に、数字で始まるアクセスキーが誤って解析されていました。このため、オブジェクトの遷移が失敗する可能性がありました。

今回の修正により、キーが正しく解析されるようになりました。移行用の正しい認証情報を使用してリモート S3 サービスを設定することはできません。

Bugzilla:2187394

4.7. マルチサイトの Ceph Object Gateway

バケット属性がアーカイブ同期モジュールで上書きされなくなりました。

以前のリリースでは、バケット属性はアーカイブ同期モジュールで上書きされていました。このため、archive zone sync_object() が実行されると、バケットポリシーまたはその他の属性がリセットされます。

今回の修正により、バケット属性がリセットされないようになりました。ソースに設定されたバケット属性はリセットされずにアーカイブゾーンに複製されます。

Bugzilla:1937618

ゾーングループは通知イベントのバケット ARN に追加されます。

以前のバージョンでは、通知イベントのバケット ARN にゾーングループがありませんでした。このため、通知イベントハンドラーが複数のゾーングループからイベントを受信すると、イベントのソースバケットの識別に混乱が生じていました。

今回の修正により、ゾーングループがバケット ARN に追加され、複数のゾーングループからイベントを受信する通知イベントハンドラーに必要な情報がすべて含まれるようになりました。

Bugzilla:2004175

bucket read_sync_status() コマンドは負の ret 値を返さなくなりました。

以前のリリースでは、バケット read_sync_status() は、常に負の ret 値を返していました。このため、bucket sync marker コマンドは、: ERROR: sync.read_sync_status() returned error=0 のエラーで失敗します。

今回の修正により、bucket read_sync_status() 操作からの実際の ret 値が返され、bucket sync marker コマンドが正常に実行されるようになりました。

Bugzilla:2127926

新しいバケットインスタンス情報は、新しく作成されたバケットに保存されます。

以前のリリースは、アーカイブゾーンではオブジェクトのアーカイブされたバージョンを保存するために、ソースバケットが削除されると新しいバケットが作成されていました。新しいバケットインスタンスの情報は古いインスタンスに保存され、アーカイブされたゾーン上の新しいバケットにアクセスできるようになります。

今回の修正では、バケットインスタンス情報は新しく作成されたバケットに保存されます。ソース上で削除されたバケットは、アーカイブゾーンで引き続きアクセスできます。

Bugzilla:2186774

バケットに num_shards の値が 0の場合、セグメンテーション違反が発生しなくなりました。

以前のリリースでは、バケットの num_shards 値が 0 の場合に、マルチサイト同期によりセグメンテーションの問題が発生していました。これが原因で、一貫性のない同期動作とセグメンテーション違反が発生しました。

今回の修正では、num_shards=0 がデータ同期で適切に表現され、シャード値 0 のバケットでも同期に関して問題が発生しなくなりました。

Bugzilla:2187617

4.8. RADOS

OSD の IOPS 容量をクエリーすると、基礎となるデバイスタイプに一致する設定オプションのみが測定値/デフォルト値を表示します。

以前のリリースでは、osd_mclock_max_capacity_iops_[ssd|hdd] の値は OSD の基礎となるデバイスタイプに応じて設定されていました。設定オプションには、デフォルト値があり、クエリー時に表示されていました。たとえば、OSD の基礎となるデバイスタイプが SSD の場合に、HDD オプション (osd_mclock_max_capacity_iops_hdd) のデフォルト値もゼロ以外の値で表示されました。これが原因で、クエリー時に OSD の HDD オプションと SSD オプションの両方の値を表示すると、正しいオプションの解釈に混乱が生じていました。

今回の修正により、基礎となるデバイスタイプに一致する OSD の IOPS 容量関連の設定オプションが設定され、代替/非アクティブな設定オプションが 0 に設定されます。OSD の IOPS 容量をクエリーすると、基礎となるデバイスタイプに一致する設定オプションのみが測定値/デフォルト値を表示します。代替/非アクティブオプションは、無効であることを明確に示すために 0 に設定されます。

Bugzilla:2111282

4.9. RBD ミラーリング

ネームスペース内でイメージミラーリングを有効にするときのエラーメッセージでさらなる見解が提供されるようになりました。

以前のバージョンでは、namespace 内でイメージミラーリングを有効にしようとすると、cannot enable mirroring in current pool mirroring mode エラーで失敗していました。このエラーでは、問題に関する見解や解決策が分かりませんでした。

今回の修正により、詳細にわたる情報を提供できるように、エラー処理が改善され、エラーが "cannot enable mirroring: mirroring is not enabled on a namespace" と表示するようになりました。

Bugzilla:2024444

スナップショットミラーリングが永続的に停止しなくなります。

以前は、スナップショットを完了としてマークする前に、実用的な理由で rbd-mirror デーモンが停止されたときに、プライマリースナップショット作成リクエストが rbd-mirror デーモンに転送された場合に、プライマリースナップショットは永続的に不完全な状態になりました。プライマリースナップショットの作成要求を再試行すると、librbd がそのようなスナップショットがすでに存在していることを認識するために、これが発生していました。この既存のスナップショットが完了しているかどうかは確認されませんでした。このため、スナップショットのミラーリングは永続的に停止しました。

今回の修正により、スケジューラーによるトリガーを含む次回のミラースナップショット作成の一環として、不完全なスナップショットを削除して、ミラーリングが再開されるように、チェックが行われるようになりました。

Bugzilla:2120624

第5章 既知の問題

本セクションでは、Red Hat Ceph Storage の今回リリースで見つかった既知の問題を説明します。

5.1. Ceph Object Gateway

本セクションでは、Red Hat Ceph Storage の今回リリースで見つかった既知の問題を説明します。

5.1.1. Ceph Object Gateway

Ceph Object Gateway インスタンスがクラッシュまたは強制終了により強制終了された場合、バケットのライフサイクル処理が遅延することがあります。

現在、1 つ以上のバケットのライフサイクル処理の実行中にクラッシュまたは kill -9 が原因で Ceph Object Gateway インスタンスが強制終了 (不正なシャットダウン) した場合に、2 つのスケジュール期間が経過するまで (例: 2 日)、それらのバケットでの処理が続行されない可能性があります。この時点で、バケットは古いものとしてマークされ、再初期化されます。この問題に対する回避策はありません。

Bugzilla:2072680

第6章 非同期エラータの更新

このセクションでは、z-stream リリースのバグ修正、既知の問題、機能拡張について説明します。

6.1. Red Hat Ceph Storage 6.1z7

Red Hat Ceph Storage リリース 6.1z7 が利用可能になりました。この更新に含まれるバグ修正のリストは、[advisory links] アドバイザリーにリスト表示されます。

6.1.1. 機能拡張

6.1.1.1. Ceph ファイルシステム

並行クローンの制限により、新しいクローンの作成の速度が低下しなくなりました

以前は、並列クローンの制限に到達すると、クローンの残りの部分がキューに置かれ、クローン作成が遅くなりました。

今回の機能拡張により、一度に並列クローンの制限に達すると、新しいクローン作成要求が拒否されます。この機能はデフォルトで有効になっていますが、無効にすることができます。

Bugzilla:2196829

Python librados は、オブジェクト omap キー/値の反復をサポートします。

以前は、バイナリー/ Unicode キーが発生するたびに反復が中断されていました。

このリリースでは、Python librados は unicode またはバイナリーキーを使用したオブジェクト omap キー/値の反復をサポートし、反復は予想通りに続行されます。

Bugzilla:2232161

6.1.1.2. Ceph Object Gateway

'/usr/bin/rgw-restore-bucket-index' ツールを使用した一時ファイルの配置およびエラーメッセージを改善しました。

以前は、/usr/bin/rgw-restore-bucket-index ツールは一時ファイルを /tmp ディレクトリーにだけ配置していました。これにより、ディレクトリーの容量が不足する場合に問題が発生する可能性があります。その結果、"ln: failed to access '/tmp/rgwrbi-object-list.XXX': No such file or directory" エラーが発生することがありました。

今回の機能拡張により、ユーザーは '-t' コマンドラインオプションを使用して、一時ファイルを配置する特定のディレクトリーを指定できるようになりました。また、指定したディレクトリーが満杯になると、"ERROR: the temporary directory's partition is full, prevent continuation" という問題が発生したエラーメッセージが表示されるようになりました。

Bugzilla:2270322

S3 リクエストはシャットダウン中に送信中にカットされなくなりました

以前は、いくつかのクライアントが、待機せずにシャットダウン中に S3 要求の途中で問題に直面していました。

今回の機能拡張により、Ceph Object Gateway プロセスを無条件に終了する前に、すべての未処理のリクエストが完了するまで rgw_exit_timeout_secs パラメーターで定義された期間を待機するように S3 リクエストを設定できるようになりました。Ceph Object Gateway は、実行中の S3 要求がすべて完了するまで最大 120 秒(設定可能)待機してから、無条件に終了します。この間、新しい S3 リクエストは受け入れられません。この設定は、デフォルトでは off です。

注記

コンテナー化されたデプロイメントでは、追加の extra_container_args パラメーターの設定を、--stop-timeout=120 (またはデフォルトでない場合は rgw_exit_timeout_secs パラメーターの値)も必要とされます(設定されていない場合、rgw_exit_timeout_secs パラメーターの値も必要になります)。

Bugzilla:2298708

6.1.1.3. RADOS

外部エンティティーのクラスターログレベルの詳細を制御する新しい 'mon_cluster_log_level' コマンドオプション。

以前は、デバッグの詳細度ログは、レベル設定に関係なく、すべての外部ロギングシステムに送信されていました。その結果、'/var/' ファイルシステムが急速にいっぱいになります。

今回の機能拡張により、mon_cluster_log_file_level および 'mon_cluster_log_to_syslog_level' コマンドオプションが削除されました。このリリースから、新しい汎用の 'mon_cluster_log_level' コマンドオプションのみを使用して、クラスターログファイルとすべての外部エンティティーのクラスターログレベルの詳細を制御します。

Bugzilla:2053021

6.2. Red Hat Ceph Storage 6.1z1

Red Hat Ceph Storage リリース 6.1z1 が利用可能になりました。この更新に含まれるバグ修正は、RHBA-2024:2743 および RHBA-2024:2744 アドバイザリーに記載されています。

6.3. Red Hat Ceph Storage 6.1z1

Red Hat Ceph Storage リリース 6.1z1 が利用可能になりました。この更新に含まれるバグ修正のリストは、RHBA-2024:1580 および RHBA-2024:1581 アドバイザリーにまとめられています。

6.3.1. 機能拡張

6.3.1.1. Ceph Ansible ユーティリティー

すべてのブートストラップ CLI パラメーターが cephadm-ansible モジュールで使用できるようになりました。

以前は、ブートストラップ CLI パラメーターのサブセットのみが使用可能であり、モジュールの使用が制限されていました。

この機能拡張により、すべてのブートストラップ CLI パラメーターが cephadm-ansible モジュールで使用できるようになります。

Bugzilla:2251055

6.3.1.2. RBD ミラーリング

排他ロックが利用可能な場合に rbd diff-iterate がローカルで実行されるようになりました

以前は、fast-diff モード(fast-diff イメージ機能が有効で有効なwhole_object == true )の時間(fromsnapname == NULL)と比較して、RBD diff-iterate はローカルでの実行が保証されていませんでした。

今回の機能拡張により、rbd_diff_iterate2 () API パフォーマンスの向上が実装され、排他的ロックが利用可能な場合に RBD の差分がローカルで実行されるようになりました。これにより、高速差分 イメージ機能が有効化されていることを前提と、QEMU ライブディスクの同期とバックアップのユースケースにパフォーマンスが大幅に向上します。

Bugzilla:2251055

6.3.1.3. Ceph ファイルシステム

サブボリュームに対してスナップショットスケジューリングのサポートが提供されるようになりました

この機能拡張により、サブボリュームのスナップショットスケジューリングサポートが提供されます。すべてのスナップショットスケジューリングコマンドは、適切なサブボリュームとサブボリュームグループを参照するための --subvol および --group 引数を受け入れます。サブボリュームグループ引数なしでサブボリュームが指定された場合は、デフォルトのサブボリュームグループが考慮されます。また、サブボリュームを参照するときには有効なパスを指定する必要はなく、使用される引数解析の性質上、プレースホルダー文字列だけで十分となります。

# ceph fs snap-schedule add - 15m --subvol sv1 --group g1
# ceph fs snap-schedule status - --subvol sv1 --group g1

Bugzilla:2251055

6.4. Red Hat Ceph Storage 6.1z1

Red Hat Ceph Storage リリース 6.1z1 が利用可能になりました。更新に含まれるバグ修正は、RHBA-2024:4525 アドバイザリーに記載されています。

6.4.1. 機能拡張

6.4.1.1. Ceph ファイルシステム

MDS 動的メタデータバランサーはデフォルトでオフになっています。

今回の機能拡張により、MDS 動的メタデータバランサーはデフォルトで オフ になり、max_mds ファイルシステム設定を増やすだけで、望ましくない、または意図しない方法でツリーを断片化するパフォーマンスの低下動作が改善されます。

Operator はバランサーを使用するために明示的にオンにする必要があります。

Bugzilla:2251055

MDS の常駐セグメントサイズ perf カウンター は、優先度の高いで追跡されます。

今回の機能拡張により、MDS の常駐セグメントサイズ(または RSS) perf カウンター が高い優先順位で追跡され、呼び出し元がその値を消費して、MDS RSS サイズを確認し、それに応じて動作させる有用な警告を生成できるようになりました。

Bugzilla:2251055

MDS の権限が正しくない場合、Ceph 認証コマンドはメッセージを表示します

今回の機能拡張により、MDS 機能のパーミッションが rrw、'* または all で始まるようになりました。これにより、 ceph auth addceph auth caps、ceph auth get-or-create、ceph auth get-or- create -key などの ceph auth コマンドが生成され、MDS キャップのパーミッションが正しくない場合に明確なメッセージが生成されます。

Bugzilla:2251055

6.4.1.2. Ceph Object Gateway

radosgw-admin bucket stats コマンドはバケットのバージョン管理を出力する

この機能強化により、` radosgw-admin bucket stats ` コマンドが、バケットのバージョン管理ステータスを enabled または off として出力するようになりました。バージョン管理は、作成後に有効または無効にできるためです。

Bugzilla:2251055

6.5. Red Hat Ceph Storage 6.1z1

Red Hat Ceph Storage リリース 6.1z1 が利用可能になりました。この更新に含まれるバグ修正は RHSA-2023:5693 アドバイザリーに記載されています。

6.5.1. 機能拡張

6.5.1.1. Ceph ファイルシステム

snap schedule モジュールが新しい保持仕様をサポートするようになりました。

今回の機能拡張により、ユーザーは新しい保持仕様を定義してスナップショットの数を保持できるようになりました。

たとえば、スナップショットの作成頻度に関係なく、ユーザーが 50 個のスナップショットを保持するように定義した場合、スナップショットは新規スナップショットの作成後にプルーニングが行われるため、指定された最大値より 1 未満になります。この場合、49 スナップショットは保持されるため、次の反復時にファイルシステム上に 1 つのスナップショットを作成し、システムの設定制限 mds_max_snaps_per_dir に違反しないようにします。

注記
Configure the `mds_max_snaps_per_dir`  and snapshot scheduling carefully to avoid unintentional deactivation of snapshot schedules due to file system returning a "Too many links" error if the `mds_max_snaps_per_dir limit` is breached.

Bugzilla:2251055

遅延したクライアントは、遅延した OSD がない場合にのみエビクトされるようになりました

以前は、MDS からのパフォーマンスダンプを監視すると、OSD が遅れていること (objecter.op_laggy および objecter.osd_laggy) が示されることがあり、クライアントの遅延の原因となっていました (キャップ取り消しのためにダーティーデータをフラッシュできませんでした)。

この機能拡張により、defer_client_eviction_on_laggy_osds オプションが true に設定され、OSD の遅延が原因でクライアントの遅延が発生した場合、OSD の遅延がなくなるまでクライアントエビクションは行われません。

Bugzilla:2251055

6.5.1.2. Ceph Object Gateway

rgw-restore-bucket-index ツールで、バージョン管理されたバケットのバケットインデックスを復元できるようになりました

この機能拡張により、rgw-restore-bucket-index ツールは可能な限り広範囲で動作し、バージョン管理されていないバケットとバージョン管理されたバケットのバケットインデックスを復元できるようになりました。

Bugzilla:2251055

6.5.1.3. NFS Ganesha

NFS Ganesha バージョンの V5.6 に更新されました。

NFS Ganesha の更新バージョンで機能強化により、以下の問題が修正されました。* FSAL の state_free 関数は、実際には 無料 ではありませんでした。* CEPH: Fixed cmount_path。* CEPH: 現在、client_oc true が破損しているため、強制的に false になりました。

Bugzilla:2251055

6.5.1.4. RADOS

遅延操作のサブイベントに関する新しいレポートが利用可能になりました

以前は、時間を要している操作は遅延としてマークされていましたが、詳細な説明はありませんでした。

この機能強化により、操作の遅延したサブイベントの詳細な説明を表示できるようになりました。

Bugzilla:2251055

noautoscale フラグをオン/オフに設定すると、各プールの元の自動スケールモード設定が保持される

以前は、noautoscale フラグが設定されている場合、pg_autoscaler は各プールの autoscale mode 設定に保持されませんでした。このため、noautoscale フラグのオン/オフをオンにした後、ユーザーは各プールに対して再度自動スケールモードを設定しなければなりません。

この機能拡張により、pg_autoscaler モジュールは、noautoscale flag が設定された後も、autoscaler モードの個別のプール設定を保持します。

Bugzilla:2251055

BlueStore インスタンスを 2 回開くことはできません

以前は、コンテナーの使用時に、同じブロックデバイス mknod を対象とする関連性のない inode を作成できました。これにより、複数のコンテナーが排他的アクセスであると考えることができました。

今回の機能拡張により、ブロックデバイス専用の O_EXCL open フラグを使用して強制されたアドバイザリーロックが実装され、1 つのブロックデバイスで同時に OSD の実行に対する保護が強化されました。

Bugzilla:2251055

6.6. Red Hat Ceph Storage 6.1z2

Red Hat Ceph Storage リリース 6.1z2 が利用可能になりました。この更新に含まれるバグ修正は RHSA-2023:5693 アドバイザリーに記載されています。

6.6.1. 機能拡張

6.6.1.1. Ceph Object Gateway

追加の機能と機能拡張が rgw-gap-list および rgw-orphan-list スクリプトに追加され、エンドユーザーのエクスペリエンスが向上します。

この機能拡張により、rgw-gap-list および rgw-orphan-list スクリプトでのエンドユーザーのエクスペリエンスを向上させるために、内部チェック、より多くのコマンドラインオプション、強化された出力など、多数の機能と機能拡張が追加されました。

Bugzilla:2228242

rgw-restore-bucket-index コマンドの実行時にレルム、ゾーングループ、ゾーンを指定できます。

以前は、このツールはデフォルトのレルム、ゾーングループ、およびゾーンでしか動作しませんでした。

この機能拡張により、rgw-restore-bucket-index コマンドの実行時にレルム、ゾーングループ、ゾーンを指定できるようになりました。3 つのコマンドラインオプションが追加されています。

  • "-r <realm>"
  • "-g <zone group>"
  • "-z <zone>"

Bugzilla:2183926

6.6.1.2. マルチサイトの Ceph Object Gateway

元のマルチパートアップロードをマルチサイト設定で識別できるようになりました。

6.1z1 リリースでデータ破損のバグが修正されました。このバグは、マルチサイト設定でのサーバー側暗号化を使用したマルチパートアップロードに影響を与えていたものです。

この機能拡張により、新しいツール radosgw-admin bucket resync encrypted multipart を使用して、これらの元のマルチパートアップロードを識別できるようになりました。識別されたオブジェクトの LastModified タイムスタンプが 1ns ずつ増分され、ピアゾーンがそのオブジェクトを再度レプリケートします。サーバー側の暗号化を使用するマルチサイトデプロイメントの場合、すべてのゾーンがアップグレードされた後、すべてのゾーンのすべてのバケットに対してこのコマンドを実行することを推奨します。

Bugzilla:2227842

6.6.1.3. Ceph Dashboard

ダッシュボードホストのローディングスピードが向上し、ページのロードが速くなりました。

以前は、5 つ以上のホストからなる大規模なクラスターでは、ホストページとメインページのロード時間が直線的に増加していました。

この機能拡張により、ダッシュボードホストのローディングスピードが向上し、ページのロードがはるかに速くなりました。

Bugzilla:2220922

6.7. Red Hat Ceph Storage 6.1z1

Red Hat Ceph Storage リリース 6.1z1 が利用可能になりました。この更新に含まれるバグ修正は、RHBA-2023:4473 アドバイザリーにリストされています。

6.7.1. 機能拡張

6.7.1.1. Ceph ファイルシステム

アンフェア (unfair) な Mutex ロックをフェア (fair) な Mutex に切り替える

以前は、Mutex の実装 (たとえば、C++std::mutex) はフェアネスを保証せず、lock() と呼ばれる順序でスレッドによってロックが取得されることを保証していませんでした。ほとんどの場合、これはうまく機能しましたが、過負荷の場合、クライアント要求処理スレッドと submit スレッドが長時間にわたって常に submit_mutex を正常に取得し、MDLog::trim() がスタックする原因となります。つまり、MDS デーモンはジャーナルログをメタデータプールに書き込みますが、期限切れのセグメントを時間内にトリミングできませんでした。

この機能強化により、アンフェアな Mutex ロックがフェアな Mutex に切り替えられ、すべての submit_mutex ウェイターが FIFO モードで 1 つずつウェイクアップされます。

Bugzilla:2158304

6.7.1.2. Ceph Object Gateway

バケットリスト機能を使用すると、rgw-restore-bucket-index ツールでインデックスの再作成を完了できます。

以前は、rgw-restore-bucket-index ツールは、次のユーザーがバケットをリストするまで、バケットのインデックスを部分的に復元していました。このため、インデックスの再作成が完了するまで、バケットの統計が正しく報告されませんでした。

この機能強化により、バケットリスト機能が追加され、ツールによるインデックス再作成が完了し、バケット統計が正しくレポートされるようになりました。さらに、エンドユーザーに影響を与えない小さな変更がビルドプロセスに追加されます。

Bugzilla:2182456

メタデータが変更されたオブジェクトのライフサイクル移行が失敗しなくなりました

以前は、既存のオブジェクトに ACL を設定すると、そのようなオブジェクトのライフサイクル遷移が失敗したため、その mtime が変更されました。

この修正により、コピー操作でない限り、ACL やその他の属性の設定など、オブジェクトのメタデータのみを変更する間、オブジェクトの mtime は変更されません。

Bugzilla:2213801

ブロックサイズが 4K に変更されます。

以前のリリースでは、GC キューを消費する 1K ブロックサイズの使用により、Ceph Object Gateway の GC 処理に過度の時間がかかりました。これにより、大規模な GC キューの処理が遅くなります。

今回の修正により、ブロックサイズが 4K に変更され、大規模な GC キューの処理が高速化されました。

Bugzilla:2212446

スナップショットのオブジェクトマップはスナップショットの内容を正確に反映します

以前は、実装上の欠陥により、書き込みのような操作を処理するときに古いスナップショットコンテキストが使用されていました。このため、ワークロードを静止せずにスナップショットが取得された場合、スナップショットのオブジェクトマップがスナップショットの内容を正確に反映することが保証されませんでした。差分バックアップおよびスナップショットベースのミラーリングでは、オブジェクトマップ機能や高速差分機能が有効になっているユースケースでは、宛先イメージが破損する可能性があります。

この修正により、実装上の欠陥が修正され、すべてが期待どおりに動作します。

Bugzilla:2216186

6.7.1.3. Cephadm ユーティリティー

public_network パラメーターに globalmon などの設定オプションを含めることができるようになりました

以前の cephadm では、public_network パラメーターは、この動作を変更する設定オプションを提供せずに、クラスターのブートストラップ中に常に mon 設定セクションの一部として設定されていました。

この機能強化により、Ceph 設定ファイルを利用して、クラスターのブートストラップ中に public_network パラメーターに globalmon などの設定オプションを指定できるようになりました。

Bugzilla:2156919

cephadm Manager モジュールからホスト上で実行される Cephadm コマンドにタイムアウトが発生するようになりました。

以前は、Cephadm コマンドの 1 つが無期限に停止することがあり、問題の認識および解決が困難でした。

今回のリリースでは、Cephadm mgr モジュールからホストで実行される Cephadm コマンドにタイムアウトが導入されました。コマンドの 1 つがハングした場合に、最終的に失敗するという正常性に関する警告が表示されるようになりました。タイムアウトは mgr/cephadm/default_cephadm_command_timeout 設定で設定でき、デフォルトは 900 秒です。

Bugzilla:2151908

CA 署名キーの cephadm サポートが実装されました

以前は、CA 署名キーは Red Hat Ceph Storage 5 のデプロイメント設定として機能していましたが、その機能は偶発的でテストされておらず、Red Hat Ceph Storage 5 から Red Hat Ceph Storage 6 への変更時に壊れていました。

この機能拡張により、CA 署名キーの cephadm サポートが実装されます。ユーザーは、SSH 認証スキームに通常の pubkeys ではなく、CA 署名付き鍵を使用できるようになりました。

Bugzilla:2182941

6.7.2. 既知の問題

6.7.2.1. マルチサイトの Ceph Object Gateway

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

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

Bugzilla:1871333

マルチサイトのレプリケーションがアップグレード中に停止する場合がある

アップグレードのプロセス中にクラスターが異なるバージョンにある場合に、マルチサイトのレプリケーションが停止することがあります。両方のクラスターが同じバージョンにアップグレードされるまで、同期を一時停止する必要があります。

Bugzilla:2178909

第7章 ソース

更新された Red Hat Ceph Storage ソースコードパッケージは、以下の場所から入手できます。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.