第6章 バグ修正
このセクションでは、Red Hat OpenShift Data Foundation 4.9 で導入された主なバグ修正について説明します。
アンインストール時に削除された Multicloud Object Gateway ストレージクラス
以前のバージョンでは、OpenShift Data Foundation デプロイメントの一部としてデプロイされた Multicloud Object Gateway(MCG) ストレージクラスは、アンインストール時に削除されませんでした。
今回の更新により、OpenShift Data Foundation のアンインストール時に Multicloud Object Gateway(MCG) ストレージクラスが削除されるようになりました。
OpenShift Container Storage のクォーラムが失われた場合の OpenShift Container Platform アラート
以前のバージョンでは、mon
クォーラムが失われそうになると、CephMonQuorumAtRisk
アラートが発生しましたが、クォーラムを失った後にトリガーされるアラートはありませんでした。このため、mon
クォーラムが完全に失われても通知が送信されませんでした。
このリリースでは、新しいアラートである CephMonQuorumLost
が導入されました。このアラートは、ノードが 1 つだけ残っていて、そのノードで 1 つのmon
が実行されている場合にトリガーされます。ただし、この時点でクラスターは回復不能な状態になり、アラートは問題の通知として機能します。
(BZ#1944513)
mon_data_avail_warn
を 30 % から 15% に減らす
以前のバージョンでは、mon
ストアが 30% 未満で、OpenShift Container Platform のイメージ用ガベージコレクターのしきい値である 15% と一致しなかった場合に、mon_data_avail_warn
アラートがトリガーされていました。今回のリリースにより、mon
ストアの場所で利用可能なストレージが 15% 未満および 30% 以上の場合に、アラートが表示されるようになりました。
(BZ#1964055)
初回のデプロイメントが OpenShift Container Storage 4.4 の場合、OSD Pod は何もログに記録しない
以前のバージョンでは、OpenShift Container Storage 4.4 がデプロイされたときに、Object Storage Daemon (OSD) ログが生成されませんでした。今回の更新により、OSD ログが適切に生成されるようになりました。
(BZ#1974343)
Multicloud Object Gateway は、新規デプロイメントで初期化できなかった
以前のバージョンでは、MongoDB から PostgreSQL への内部データベースの変更後に、Multicloud Object Gateway(MCG) が機能していなかったため、一意であるはずの重複エンティティーをデータベースに追加することができました (MongoDB は以前、重複エンティティーを阻止していました)。今回のリリースにより、重複するエンティティーは阻止されるようになりました。
(BZ#1975645)
PVC は、暗号化された親に 2 つの異なるバックエンドパスを使用する場合に復元される
以前のバージョンでは、ボリュームスナップショットから異なる暗号化 KMSID
を持つ異なるストレージクラスに永続ボリューム要求 (PVC) を復元する際に、復元された PVC は Bound
状態になり、復元された PVC は Pod に割り当てられませんでした。これは、暗号化パスフレーズが親 PVC のストレージクラスの暗号化 KMSID
config
でコピーされたためでした。今回のリリースにより、復元された PVC の暗号化パスフレーズが、宛先ストレージクラスからの正しい暗号化 KMSID
config
でコピーされるようになりました。そのため、PVC は、親 PVC とは異なる暗号化 KMSID
を持つストレージクラスに正常に復元されます。
(BZ#1975730)
ストレージクラスターが満杯になると、データの削除が許可される
以前は、ストレージクラスターが満杯になると、設定ファイルの読み取り中に Ceph Manager がプールパーミッションのチェックでハングしていました。Ceph Metadata Server (MDS) では、Ceph OSD が満杯になると書き込み操作の実行が許可されていなかったため ENOSPACE
エラーが発生しました。ストレージクラスターがフル比率に達すると、Ceph Manager および ceph-volume
プラグインを使用して、データを削除して領域を解放できませんでした。
今回のリリースで、新しい FULL 機能が導入されました。この機能により、Ceph Manager の FULL 機能が提供され、Ceph OSD のフルチェックを回避します。さらに、client_check_pool_permission
オプションを無効にすることもできます。Ceph Manager に FULL 機能がある場合、MDS は Ceph Manager の呼び出しをブロックしなくなりました。これにより、ストレージクラスターがいっぱいになると、サブボリュームおよびスナップショットを削除することにより、Ceph Manager が領域を解放できるようになります。
(BZ#1978769)
キーは、kv-v2
シークレットエンジンの使用時に、暗号化された永続ボリューム要求 (PVC) を削除した後に Vault で完全に破棄される
HashiCorp Vault は、キー/値のストア v2 に機能を追加しました。この機能では、保存されたキーを削除すると、削除されたキーのメタデータが別の手順で削除されない場合にコンテンツを復元できます。Hashicorp Vault のシークレットにキー/値 v2 ストレージを使用する場合、ボリュームを削除しても、暗号化パスフレーズのメタデータは KMS から削除されませんでした。
今回の更新により、PVC が削除されると、HashiCorp Vault のキーはデフォルトで完全に破棄されるようになりました。新しい設定オプション VAULT_DESTROY_KEYS
を false
に設定して、以前の動作を有効にすることができます。この場合、キーのメタデータは HashiCorp Vault に保持されるため、削除された PVC の暗号化パスフレーズを復元できます。
Multicloud Object Gateway オブジェクトバケットの作成が Pending フェーズに進む
以前のバージョンでは、内部データベースを MongoDB から PostgreSQL へ変更した後に、一意であるはずの重複エントリーをデータベースに追加することができました (MongoDB は以前、重複エントリーを阻止していました)。その結果、バケット、バッキングストアなどの新規リソースの作成に失敗しました。今回のリリースにより、重複するエントリーは阻止されるようになりました。
(BZ#1980299)
CephBlockPool
の削除がスタックし、新規プールの作成をブロックする
以前のバージョンでは、Multus が有効になっているクラスターでは、Rook Operator はネットワークアノテーションがないため、Object Storage Daemon (OSD) ネットワークにアクセスできませんでした。その結果、OSD と通信できないため、プールのクリーンアップ中に rbd
type コマンドがハングアップしていました。
今回のリリースにより、Operator は、mgr
Pod のサイドカーコンテナーを介して rbd
コマンドをプロキシーし、プールのクリーンアップ中に正常に実行されるようになりました。
スタンドアロンの Multicloud Object Gateway が接続に失敗する
以前は、内部 DB が MongoDB から PostgreSQL に変更されたため、Multicloud Object Gateway(MCG)CR が適切に更新されていませんでした。これにより、特定のフローで問題が発生しました。その結果、MCG コンポーネントは相互に通信できず、アップグレード時に MCG に障害が発生していました。
今回のリリースにより、MCG CR の問題が修正されました。
外部モードの CephCluster リソースでモニターリング仕様がリセットされる
以前のバージョンでは、OpenShift Container Storage がアップグレードされると、モニターリングエンドポイントは外部の CephCluster のモニターリング仕様でリセットされていました。これは予想された動作ではなく、モニターリングエンドポイントが CephCluster に渡される方法が原因でした。今回の更新で、エンドポイントを渡す方法が変更になりました。CephCluster を作成する前に、エンドポイントは JSON シークレットである rook-ceph-external-cluster-details
から直接アクセスされ、CephCluster 仕様が更新されます。その結果、OpenShift Container Storage のアップグレード後も、CephCluster のモニターリングエンドポイント仕様が適切な値で適切に更新されます。
hugepages
を有効にする際の noobaa-db-pg-0
Pod の CrashLoopBackOff
状態
以前のバージョンでは、OpenShift Container Platform クラスターで hugepages
を有効にすると、Multicloud Object Gateway(MCG) データベース Pod が CrashLoopBackOff
状態になりました。これは、PostgreSQL の初期化が間違っていたことが原因でした。今回のリリースにより、MCG データベース Pod の PostgreSQL の初期化が修正されました。
Multicloud Object Gateway が新規の Object Bucket Claim(オブジェクトバケット要求) を作成できない
以前は、Multicloud Object Gateway(MCG)DB に対して作業する際のパフォーマンスの低下により、すべての MCG コンポーネントにバックプレッシャーが発生し、設定フローや I / O フローなどのシステム内のフローの実行に失敗していました。
この更新により、最も時間のかかるクエリーが修正され、DB が迅速にクリアされ、バックプレッシャーが作成されなくなりました。
割り当てられたリソースの確認に関する問題が原因でバケットが作成時に失敗する
以前のバージョンでは、作成時にバケットに割り当てられたリソースをチェックする問題が原因で、バケットの作成に失敗していました。バケット作成時のリソース検証の条件が修正され、バケットが想定どおりに作成されます。
NooBaa Operator は、アップグレード後も noobaa-db
サービスを引き続き確認する
以前のバージョンでは、OpenShift Container Storage がバージョン 4.6 から更新された際、移行目的で新旧の noobaa-db
StatefulSets を保持する必要がありました。コードは引き続きセットの両方の名前をサポートします。コードの小さな問題が原因で、古い noobaa-db
StatefulSet に失敗のメッセージが生成されました。これにより、Operator は、関連性がなくなったにもかかわらず、古い noobaa-db
StatefulSet のステータスを確認していました。
今回の更新により、Operator は古い noobaa-db
StatefulSet のステータス確認を停止しました。
(BZ#2008821)
Multicloud Object Gateway(MCG)DB Pod の設定マップへの変更がアップグレード後に調整されない
以前のバージョンでは、MCG DB Pod の設定マップへの変更は、アップグレード後には適用されませんでした。DB Pod の設定マップから変数を適切に取得するようにフローが修正されました。
(BZ#2012930)