第4章 バグ修正

このセクションでは、Red Hat OpenShift Container Storage 4.7 で導入された主なバグ修正について説明します。

MON がダウンしても MGR Pod が再起動する

以前のバージョンでは、ノードを再起動すると MGR Pod が Pod の初期状態のままになり、新しい永続ボリューム(PV)を作成できませんでした。今回の更新により、MON がダウンしても MGR Pod が再起動するようになりました。

(BZ#2005515)

Huge PageがOpenShift Container Platformで有効になっている場合にMulticloud Object Gatewayを使用できるようになりました

以前のバージョンでは、Huge Page が有効になっている場合に Postgres が kubernetes での実行に失敗したため、Multicloud Object Gateway (MCG) db Pod がクラッシュしていました。現在の更新では、MCG Postgres Pod の Huge Page が無効になるため、MCG db Pod がクラッシュしなくなりました。

(BZ#1968438)

PodDisruptionBudget アラートが継続的に表示されなくなる

以前のバージョンでは、OpenShift Container Platform アラートであるPodDisruptionBudget アラートは、オブジェクトストレージデバイス (OSD) について継続的に表示されました。根本的な問題が修正され、アラートが表示されなくなりました。

(BZ#1788126)

must-gather ログ収集の失敗

以前のバージョンでは、コピー Pod は一定間隔でデータの再フラッシュを試行しませんでした。そのため、デフォルトの 10 分のタイムアウト後に must-gather コマンドが失敗しました。今回の更新により、コピー Pod は must-gather コマンドで生成される定期的な間隔でデータの収集を試行し続け、must-gather コマンドが完了するまで実行されるようになりました。

(BZ#1884546)

volumesnapshotclass がない場合に PVC をボリュームスナップショットから PVC を作成できない

PVC は、volumesnapshotclass がない場合にボリュームスナップショットから作成することはできません。この問題は、ボリュームスナップショットのステータスが volumesnapshotclass の削除時に not ready 状態に変更されるために生じます。この問題は OCP 4.7.0 以降で修正されています。

(BZ#1902711)

プロセスのクラッシュ時に、コアダンプは伝播しない

以前のバージョンでは、プロセスがクラッシュした場合にコアダンプが伝播されませんでした。今回のリリースにより、メインの ceph デーモンの次に実行されるサイドカーの log-collector が導入されました。ここでは ShareProcessNamespace フラグが有効になり、このフラグを使用すると、シグナルをコンテナー間でインターセプトでき、コアダンプを生成できます。

(BZ#1904917)

複数の OSD 削除ジョブが失敗しなくなる

以前のバージョンでは、複数の OSD の削除についてのジョブをトリガーする場合、テンプレートにはジョブ名に含まれる OSD ID と共にコンマが含まれていました。これにより、ジョブテンプレートが失敗しました。今回の更新により、有効な形式を維持するために、OSD ID がジョブ名から削除されました。ジョブ名が ocs-osd-removal-${FAILED_OSD_IDS} から ocs-osd-removal-job に変更になりました。

(BZ#1908678)

mon フェイルオーバータイムアウトの増加

今回の更新により、IBM Cloud での mon のフェイルオーバーのタイムアウトが 15 分に増えました。以前のバージョンでは、mons は稼働中の場合でもフェイルオーバーを開始していました。

(BZ#1922421)

Rook は、以前の OpenShift Container Storage インストールから不完全なディスクを検出すると、メッセージを出して OSD のデプロイを拒否します。

以前のバージョンでは、OpenShift Container Storage の以前のインストールから消去されていないディスクを再利用すると、Rook は突然失敗しました。今回の更新により、Rook はディスクが別のクラスターに属することを検知し、エラーメッセージを出してそのディスクでの OSD のデプロイを拒否するようになりました (BZ#1922954)

mon フェイルオーバーにより Ceph がアクセス不可能になる

以前のバージョンでは、mom が別の mon がフェイルオーバーしている間にダウンした場合、mom のクォーラム (定足数) が失われました。mom がクォーラム (定足数) を失うと Ceph はアクセス不可能なります。今回の更新により、mon がフェイルオーバーしている間に、任意の mon のドレイン (解放) が阻止され、Ceph がアクセス不可能になりました。

(BZ#1935065)

cpehcsi ノードプラグイン Pod が GRPC メトリクスのためにポートを占有する

以前のバージョンでは、cephcsi Pod はデバッグ目的で GRPC メトリクスを公開するため、cephcsi ノードプラグイン Pod は RBD にポート 9090 を使用し、CephFS にポート 9091 を使用しました。その結果、cephsi Pod はポートが利用できないために起動しませんでした。今回のリリースにより、GRPC メトリクスはデバッグの目的でのみ必要とされるためにデフォルトで無効になり、cephcsi はノードプラグイン Pod が実行されているノードでポート 9091 および 9090 を使用しなくなりました。

(BZ#1937245)

rook-ceph-mds はモニターサーバーに Pod IP を登録しない

以前のバージョンでは、rook-ceph-mds はモニターサーバーで Pod IP を登録しないため、ファイルシステム上のすべてのマウントがタイムアウトになり、PVC はプロビジョニングできず、CephFS ボリュームのプロビジョニングが失敗しました。今回のリリースにより、ホストネットワークが有効でない場合に引数 --public-addr=podIP が MDS Pod に追加されるようになりました。したがって、CephFS ボリュームのプロビジョニングは失敗しなくなりました。

(BZ#1939272)

ルール評価の失敗による must gather のエラー

以前のバージョンでは、記録ルールのレコード cluster:ceph_disk_latency:join_ceph_node_disk_irate1m は、many-to-many 一致が Prometheus で許可されないために評価されませんでした。このルール評価の失敗により、エラーが must gather とデプロイメントに生じました。今回のリリースにより、記録ルールのクエリーが更新され、many-to-many 一致のシナリオが排除され、これにより Prometheus ルール評価が失敗せず、デプロイメントでエラーが確認されなくなりました。

(BZ#1904302)