第7章 既知の問題


このセクションでは、Red Hat OpenShift Data Foundation 4.13 の既知の問題について説明します。

7.1. 障害復旧

  • フェイルオーバーアクションは、RPC エラー still in use を表示し、Pod で失敗した RADOS ブロックデバイスのイメージマウントを報告する。

    障害復旧 (DR) で保護されるワークロードをフェイルオーバーすると、フェイルオーバーしたクラスター上のボリュームを使用している Pod が、RADOS ブロックデバイス (RBD) イメージがまだ使用中であることを報告する時に停止する可能性があります。これにより、Pod が長時間 (最大数時間) 起動できなくなります。

    (BZ#2007376)

  • フェイルオーバーアクションは、RPC エラー fsck を表示し、Pod で失敗した RADOS ブロックデバイスのイメージマウントを報告する。

    障害復旧 (DR) で保護されるワークロードをフェイルオーバーすると、ボリュームにファイルシステムの整合性チェック (fsck) エラーがあると示すボリュームマウントエラーにより、Pod が起動しない可能性があります。これにより、ワークロードはフェイルオーバークラスターにフェイルオーバーできなくなります。

    (BZ#2021460)

  • マネージドクラスターのアプリケーション namespace が作成される

    アプリケーション namespace は、Disaster Recovery(DR) 関連の事前デプロイアクションのために RHACM マネージドクラスターに存在する必要があるため、アプリケーションが ACM ハブクラスターにデプロイされるときに事前に作成されます。ただし、アプリケーションがハブクラスターで削除され、対応する namespace がマネージドクラスターで削除された場合、それらはマネージドクラスターに再表示されます。

    回避策: openshift-dr は、ACM ハブのマネージドクラスター namespace に namespace manifestwork リソースを維持します。これらのリソースは、アプリケーションの削除後に削除する必要があります。たとえば、クラスター管理者として、ハブクラスターで oc delete manifestwork -n <managedCluster namespace> <drPlacementControl name>-<namespace>-ns-mw のコマンドを実行します。

    (BZ#2059669)

  • 一部のイメージで RBD ミラースケジューリングが停止する

    Ceph Manager デーモンは、さまざまな理由でブロックリストに登録されます。これにより、スケジュールされた RBD ミラースナップショットが、イメージがプライマリーであるクラスターでトリガーされなくなります。ミラーリングが有効になっている (つまり DR 保護されている) すべての RBD イメージは、rbd mirror snapshot schedule status -p ocs-storagecluster-cephblockpool を使用して調べたときにスケジュールを一覧表示しないため、ピアサイトにアクティブにミラーリングされません。

    回避策: イメージがプライマリーである管理対象クラスターで Ceph Manager のデプロイを再起動して、現在実行中のインスタンスに対するブロックリストを回避します。これは、次のように Ceph Manager のデプロイをスケールダウンしてからスケールアップすることで実行できます。

    $ oc -n openshift-storage scale deployments/rook-ceph-mgr-a  --replicas=0
    $ oc -n openshift-storage scale deployments/rook-ceph-mgr-a  --replicas=1

    結果: rbd mirror snapshot schedule status -p ocs-storagecluster-cephblockpool を使用して調べると、DR が有効で、管理対象クラスターでプライマリーとして示されているイメージがミラーリングスケジュールの報告を開始します。

    (BZ#2067095)

  • クラスターがストレッチモードの場合、ceph df が無効な MAX AVAIL 値を報告する

    Red Hat Ceph Storage クラスターのクラッシュルールに複数の実行ステップがある場合、ceph df レポートは、マップの使用可能な最大サイズを間違って表示します。この問題は、今後のリリースで修正される予定です。

    (BZ#2100920)

  • Ceph が Globalnet によって割り当てられたグローバル IP を認識しない

    Ceph は Globalnet によって割り当てられたグローバル IP を認識しないため、Globalnet を使用して重複するサービス CIDR を持つクラスター間で障害復旧ソリューションを設定することはできません。このため、サービス CIDR が重複している場合、障害復旧ソリューションは機能しません。

    (BZ#2102397)

  • 両方の DRPC が、同じ namespace で作成されたすべての永続ボリューム要求を保護する

    複数の障害復旧 (DR) で保護されたワークロードをホストする namespace は、指定されていないハブクラスター上の同じ namespace 内の各 DRPlacementControl リソースの namespace にある永続ボリュームクレーム (PVC) をすべて保護し、その spec.pvcSelector フィールドを使用してワークロードに基づいて PVC を分離します。

    これにより、複数のワークロードにわたって DRPlacementControl spec.pvcSelector に一致する PVC が生成されます。あるいは、すべてのワークロードでセレクターが欠落している場合、レプリケーション管理が各 PVC を複数回管理し、個々の DRPlacementControl アクションに基づいてデータの破損または無効な操作を引き起こす可能性があります。

    回避策: ワークロードに属する PVC に一意のラベルを付け、選択したラベルを DRPlacementControl spec.pvcSelector として使用して、どの DRPlacementControl が namespace 内の PVC のどのサブセットを保護および管理するかを明確にします。ユーザーインターフェイスを使用して DRPlacementControl の spec.pvcSelector フィールドを指定することはできません。したがって、そのようなアプリケーションの DRPlacementControl を削除し、コマンドラインを使用して作成する必要があります。

    結果: PVC は複数の DRPlacementControl リソースによって管理されなくなり、操作およびデータの不整合は発生しません。

    (BZ#2111163)

  • MongoDB Pod は、cephrbd ボリュームのデータを読み取る許可エラーのため、CrashLoopBackoff になっています

    異なるマネージドクラスターにまたがる Openshift プロジェクトには、異なるセキュリティーコンテキスト制約 (SCC) があり、特に指定された UID 範囲と FSGroups が異なります。これにより、特定のワークロード Pod とコンテナーが、ログ内のファイルシステムアクセスエラーが原因で、これらのプロジェクト内でフェイルオーバーの操作または再配置操作を開始できなくなります。

    回避策: ワークロードプロジェクトが同じプロジェクトレベルの SCC ラベルを持つすべてのマネージドクラスターで作成されていることを確認し、フェイルオーバーまたは再配置時に同じファイルシステムコンテキストを使用できるようにします。Pod は、ファイルシステム関連のアクセスエラーで DR 後のアクションに失敗しなくなりました。

    (BZ#2114573)

  • 再配置中にアプリケーションが Relocating 状態でスタックする

    マルチクラウドオブジェクトゲートウェイでは、同じ名前または namespace の複数の永続ボリューム (PV) オブジェクトを同じパスの S3 ストアに追加できました。これにより、同一の claimRef を指す複数のバージョンが検出されたため、Ramen は PV を復元しません。

    回避策: S3 CLI または同等の機能を使用して、重複する PV オブジェクトを S3 ストアからクリーンアップします。タイムスタンプがフェイルオーバーまたは再配置の時刻に近いものだけを保持します。

    結果: 復元操作が完了し、フェイルオーバーまたは再配置操作が次のステップに進みます。

    (BZ#2120201)

  • ワークロードをピアクラスターにフェイルオーバーまたは再配置すると、フェイルオーバーまたは再配置元のクラスターがクリーンアップされるまで、PeerReady 条件が true に設定される

    障害復旧 (DR) アクションを開始した後、ワークロードがピアクラスターにフェイルオーバーまたは再配置される間、PeerReady 条件は最初に true に設定されます。その後、フェイルオーバーまたは再配置元のクラスターは、今後のアクションのためにクリーンアップされるまで、false に設定されます。アクションを実行するために DRPlacementControl ステータス条件を見ているユーザーは、この中間的な PeerReady 状態を見て、ピアの準備ができていると認識し、アクションを実行する可能性があります。この場合、操作は保留中されるか失敗し、回復するためにユーザーの介入が必要になることがあります。

    回避策: アクションを実行する前に、AvailablePeerReady の両方の状態を調べます。ワークロードの DR 状態を正常にするために、両方が true である必要があります。両方の状態が true のときにアクションを実行すれば、要求された操作が進行します。

    (BZ#2138855)

  • 障害復旧のワークロードが削除されたままになる

    クラスターからワークロードを削除すると、対応する Pod が FailedKillPod などのイベントで終了しない場合があります。これにより、PVCVolumeReplicationVolumeReplicationGroup などの DR リソースに依存するガベージコレクションで遅延または障害が発生する可能性があります。また、古いリソースがまだガベージコレクションされていないため、クラスターへの同じワークロードの今後のデプロイもできなくなります。

    回避策: Pod が現在実行中で、終了状態でスタックしているワーカーノードを再起動します。これにより、Pod が正常に終了し、その後、関連する DR API リソースもガベージコレクションされます。

    (BZ#2159791)

  • ブロックリスト登録により Pod がエラー状態で停止することがある

    ネットワークの問題、または非常に過負荷/不均衡なクラスターが原因でブロックリスト登録が実行されると、テイルレイテンシーが急増します。このため、Pod は CreateContainerError でスタックし、次のメッセージが表示されます。

     Error: relabel failed /var/lib/kubelet/pods/cb27938e-f66f-401d-85f0-9eb5cf565ace/volumes/kubernetes.io~csi/pvc-86e7da91-29f9-4418-80a7-4ae7610bb613/mount: lsetxattr /var/lib/kubelet/pods/cb27938e-f66f-401d-85f0-9eb5cf565ace/volumes/kubernetes.io~csi/pvc-86e7da91-29f9-4418-80a7-4ae7610bb613/mount/#ib_16384_0.dblwr: read-only file system.

    回避策: 次の手順に従って、これらの Pod がスケジュールされ、障害が発生しているノードを再起動します。

    1. 問題のあるノードを遮断してからドレインします。
    2. 問題のあるノードを再起動します。
    3. 問題のあるノードのコードの遮断を解除します。

      (BZ#2094320)

  • マネージドクラスターが OpenShift Container Platform と OpenShift Data Foundation の異なるバージョン上にある場合、アプリケーションのフェイルオーバーが Failover 状態でハングする

    OpenShift Data Foundation 4.13 を使用した障害復旧ソリューションは、永続ボリューム (PV) データに加えて永続ボリューム要求 (PVC) データを保護および復元します。プライマリークラスターが古い OpenShift Data Foundation バージョン上にあり、ターゲットクラスターが 4.13 に更新されている場合、S3 ストアに PVC データがないため、フェイルオーバーが停止します。

    回避策: Disaster Recovery クラスターをアップグレードする場合は、最初にプライマリークラスターをアップグレードしてから、アップグレード後の手順を実行する必要があります。

    (BZ#2214306)

  • DRPolicy が同じ namespace 内の複数のアプリケーションに適用されると、ボリュームレプリケーショングループが作成されない

    namespace 内の他のアプリケーションと同じ場所に配置されているアプリケーション用に DRPlacementControl (DRPC) が作成される場合、DRPC にはアプリケーション用のラベルセレクターセットがありません。その後ラベルセレクターに変更が加えられた場合、OpenShift Data Foundation Hub コントローラーの検証アドミッション Webhook は変更を拒否します。

    回避策: アドミッション Webhook がそのような変更を許可するように変更されるまでは、DRPC validatingwebhookconfigurations にパッチを適用して Webhook を削除できます。

    $ oc patch validatingwebhookconfigurations vdrplacementcontrol.kb.io-lq2kz --type=json --patch='[{"op": "remove", "path": "/webhooks"}]'

    (BZ#2210762)

  • サブスクリプションベースのワークロードに関連付けられた特定の管理リソースが削除される

    ハブのリカバリー中に、OpenShift Data Foudation で Red Hat Advanced Cluster Management バージョン 2.7.4 (またはそれ以降) の既知の問題が発生し、サブスクリプションベースのワークロードに関連付けられた特定の管理リソースが意図せず削除される可能性があります。現在、この問題には既知の回避策がありません。

    (BZ#2211643)

  • ハブの回復後にピアの準備完了ステータスが Unknown と表示される

    ゾーン障害とハブの回復後、障害復旧の配置制御 (DRPC) 内のサブスクリプションおよびアプリケーションセットアプリケーションのピア準備完了ステータスが Unknown と表示されることがあります。これは表面上の問題であり、Ramen の通常の機能には影響せず、oc コマンドを使用して表示したときの DRPC 出力の外観に限定されます。

    回避策: YAML 出力を使用して、正しいステータスを確認します。

    $ oc get drpc -o yaml

    (BZ#2211883)

7.1.1. DR アップグレード

このセクションでは、障害復旧環境での Red Hat OpenShift Data Foundation のバージョン 4.12 から 4.13 へのアップグレードに関連する問題と回避策について説明します。

  • アップグレード前に存在していたワークロードのフェイルオーバーまたは再配置がブロックされる

    OpenShift Data Foundation Disaster Recovery ソリューションは、永続ボリューム (PV) データに加えて永続ボリューム要求 (PVC) データも保護します。アップグレード前に存在していたワークロードでは、PVC データがバックアップされていないため、フェイルオーバーまたは再配置がブロックされます。

    回避策:

    1. 各ワークロードのプライマリークラスターで次の手順を実行して、OpenShift Data Foundation Disaster Recovery ソリューションが PV データに加えて PVC データを確実にバックアップするようにします。

      1. ボリュームレプリケーショングループ (VRG) のステータスを編集します。

        $ oc edit --subresource=status vrg -n <namespace>  <name>
      2. vrg.Status.ProtectedPVCs 条件ごとに、ClusterDataProtected ステータスを False に設定します。これにより、S3 ストアにアプリケーション PVC が追加されます。
      3. Ramen Pod を 0 にスケールダウンしてから 1 に戻して再起動します。
      4. すべての vrg.Status.ProtectedPVCs 条件の ClusterDataProtected ステータスが再び TRUE に変わるのを待って、S3 ストアにアプリケーション PVC が設定されていることを確認します。
    2. フェイルオーバーまたは再配置操作を開始する場合は、次の手順を実行します。

      1. フェイルオーバーまたは再配置操作を開始する前に、DRPC ステータスサブリソースを編集して、status.preferredDecision.ClusterNamespace フィールドをクリアします (まだ編集していない場合)。

        $ oc edit --subresource=status drpc -n <namespace>  <name>

        (BZ#2215462)

  • status.preferredDecision.ClusterNamespace でキャッシュされた値が間違っている

    OpenShift Data Foundation がバージョン 4.12 から 4.13 にアップグレードされると、障害復旧配置制御 (DRPC) の status.preferredDecision.ClusterNamespace に誤った値がキャッシュされる可能性があります。その結果、DRPC はフェイルオーバーがすでに完了していることを検出せず、誤って WaitForFencing PROGRESSION に入ります。マネージドクラスターのワークロードは、この問題の影響を受けません。

    回避策:

    1. 影響を受ける DRPC を特定するには、CURRENTSTATE として FailedOver 状態にあり、WaitForFencing PROGRESSION でスタックしている DRPC がないか確認します。
    2. 間違った値をクリアするには、DRPC サブリソースを編集し、status.PreferredCluster.ClusterNamespace という行を削除します。

      $ oc edit --subresource=status drpc -n <namespace>  <name>
    3. DRPC ステータスを確認するには、PROGRESSION が COMPLETED 状態であり、FailedOver が CURRENTSTATE であるかどうかを確認します。

      (BZ#2215442)

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.