第6章 既知の問題
このセクションでは、Red Hat OpenShift Data Foundation 4.17 の既知の問題を説明します。
6.1. 障害復旧 リンクのコピーリンクがクリップボードにコピーされました!
クラスターがストレッチモードの場合、ceph
dfが無効な MAX AVAIL 値を報告するRed Hat Ceph Storage クラスターのクラッシュルールに複数の "take" ステップがある場合、
ceph dfレポートは、マップの使用可能な最大サイズを間違って表示します。この問題は、今後のリリースで修正される予定です。
両方の 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 リソースによって管理されなくなり、操作およびデータの不整合は発生しません。
cephrbdボリュームのデータを読み取る許可エラーのため、MongoDB Pod がCrashLoopBackoffになっている異なるマネージドクラスターにまたがる OpenShift プロジェクトには、異なるセキュリティーコンテキスト制約 (SCC) があり、特に指定された UID 範囲と
FSGroupsが異なります。これにより、特定のワークロード Pod とコンテナーが、ログ内のファイルシステムアクセスエラーが原因で、これらのプロジェクト内でフェイルオーバーの操作または再配置操作を開始できなくなります。回避策: ワークロードプロジェクトが同じプロジェクトレベルの SCC ラベルを持つすべてのマネージドクラスターで作成されていることを確認し、フェイルオーバーまたは再配置時に同じファイルシステムコンテキストを使用できるようにします。Pod は、ファイルシステム関連のアクセスエラーで DR 後のアクションに失敗しなくなりました。
障害復旧のワークロードが削除されたままになる
クラスターからワークロードを削除すると、対応する Pod が
FailedKillPodなどのイベントで終了しない場合があります。これにより、PVC、VolumeReplication、VolumeReplicationGroupなどの DR リソースに依存するガベージコレクションで遅延または障害が発生する可能性があります。また、古いリソースがまだガベージコレクションされていないため、クラスターへの同じワークロードの今後のデプロイもできなくなります。回避策: Pod が現在実行中で、終了状態でスタックしているワーカーノードを再起動します。これにより、Pod が正常に終了し、その後、関連する DR API リソースもガベージコレクションされます。
Regional DR CephFS ベースのアプリケーションのフェイルオーバーで、サブスクリプションに関する警告が表示される
アプリケーションがフェイルオーバーまたは再配置されると、ハブサブスクリプションに "Some resources failed to deployUse View status YAML link to view the details." というエラーが表示されます。これは、バッキングストレージプロビジョナーとして CephFS を使用し、Red Hat Advanced Cluster Management for Kubernetes (RHACM) サブスクリプションでデプロイし、DR で保護されたアプリケーションの永続ボリューム要求 (PVC) がそれぞれの DR コントローラーにより所有されているためです。
回避策: サブスクリプションステータスのエラーを修正する回避策はありません。ただし、デプロイに失敗したサブスクリプションリソースをチェックして、それらが PVC であることを確認できます。これにより、他のリソースに問題が発生しないようにします。サブスクリプション内のデプロイに失敗した唯一のリソースが DR で保護されているリソースである場合、エラーは無視できます。
PeerReadyフラグを無効にすると、アクションをフェイルオーバーに変更できなくなりますDR コントローラーは、必要に応じて完全な調整を実行します。クラスターにアクセスできなくなると、DR コントローラーは健全性チェックを実行します。ワークロードがすでに再配置されている場合、この健全性チェックによりワークロードに関連付けられた
PeerReadyフラグが無効になり、クラスターがオフラインであるため健全性チェックは完了しません。その結果、無効にされたPeerReadyフラグは、アクションを Failover に変更できなくなります。回避策: コマンドラインインターフェイスを使用して、
PeerReadyフラグが無効になっているにもかかわらず、DR アクションをフェイルオーバーに変更します。
ストレッチクラスター内の 2 つのデータセンター間の接続が失われると、Ceph にアクセスできなくなり、IO が一時停止します。
2 つのデータセンターが相互の接続を失っても Arbiter ノードに接続されたままの場合は、モニター間で無限の選出が発生するという選出ロジックに不具合があります。その結果、モニターはリーダーを選出できず、Ceph クラスターが使用できなくなります。また、接続が切断されている間は IO が一時停止されます。
回避策: ゾーンノードを停止して、いずれかのデータゾーンのモニターをシャットダウンします。さらに、存続した mon Pod の接続スコアをリセットすることもできます。
その結果、モニターがクォーラムを形成できるようになり、Ceph が再び使用可能になり、IOs resume が再開します。
交換前のクラスターからの古い Ceph プール ID を使用すると、RBD アプリケーションの再配置に失敗する
新しいピアクラスターが作成される前に作成されたアプリケーションの場合、ピアクラスターが置き換えられると CSI configmap 内の CephBlockPoolID のマッピングを更新できないため、RBD PVC をマウントできません。
回避策: 交換されていないピアクラスター上の cephBlockPoolID のマッピングを使用して
rook-ceph-csi-mapping-configconfigmap を更新します。これにより、アプリケーション用の RBD PVC をマウントできるようになります。
使用できない管理対象クラスター上のプライマリーワークロードのハブ回復後、
lastGroupSyncTimeに関する情報が失われる以前に管理対象クラスターにフェイルオーバーされたアプリケーションは
lastGroupSyncTimeを報告しないため、VolumeSynchronizationDelayのアラートがトリガーされます。これは、DRPolicy の一部である ACM ハブとマネージドクラスターが使用できない場合、バックアップから新しい ACM ハブクラスターが再構築されるためです。回避策: ワークロードのフェイルオーバー先のマネージドクラスターが使用できない場合でも、残っているマネージドクラスターにフェイルオーバーできます。
MCO Operator が
veleroNamespaceSecretKeyRefとCACertificatesフィールドを調整するOpenShift Data Foundation Operator がアップグレードされると、Ramen 設定の
s3StoreProfilesの下のCACertificatesフィールドとveleroNamespaceSecretKeyRefフィールドが失われます。回避策: Ramen 設定に
CACertificatesフィールドとveleroNamespaceSecretKeyRefフィールドのカスタム値がある場合は、アップグレードの実行後にそれらのカスタム値を設定します。
アップグレード後の token-exchange-agent Pod が不安定である
以前のデプロイメントリソースが適切にクリーンアップされていないため、マネージドクラスター上の
token-exchange-agentPod が不安定になります。これにより、アプリケーションのフェイルオーバーアクションが失敗する可能性があります。回避策: ナレッジベースの記事 "token-exchange-agent" pod on managed cluster is unstable after upgrade to ODF 4.17.0 を参照してください。
結果: 回避策に従うと、"token-exchange-agent" pod が安定し、フェイルオーバーアクションが期待どおりに機能します。
再配置時に MAC 割り当てに失敗したため、
virtualmachines.kubevirt.ioリソースの復元に失敗する仮想マシンを優先クラスターに再配置すると、MAC アドレスが使用できないために再配置を完了できない場合があります。これは、仮想マシンがフェイルオーバークラスターにフェイルオーバーされたときに、優先されるクラスター上で完全に消去されていない場合に発生します。
ワークロードを再配置する前に、ワークロードが優先されるクラスターから完全に削除されていることを確認します。
CephFS の再配置が WaitForReadiness で停止する
DRPC の進行が WaitForReadiness で停止するシナリオがあります。この状態が長期間続く場合は、既知の問題が発生し、Ramen が PlacementDecision を新しいプライマリーに更新できない可能性があります。
その結果、再配置プロセスは完了せず、ワークロードは新しいプライマリークラスターにデプロイされないままになります。これにより、ユーザーが介入するまで回復が遅れる可能性があります。
回避策: 新しいプライマリーを指すように PlacementDecision を手動で更新します。
PlacementRule を使用するワークロードの場合:
PlacementRule を編集します。
oc edit placementrule --subresource=status -n [namespace] [name of the placementrule]7
$ oc edit placementrule --subresource=status -n [namespace] [name of the placementrule]7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc edit placementrule --subresource=status -n busybox-workloads-cephfs-2 busybox-placement
$ oc edit placementrule --subresource=status -n busybox-workloads-cephfs-2 busybox-placementCopy to Clipboard Copied! Toggle word wrap Toggle overflow placementrule のステータスに以下を追加します。
status: decisions: - clusterName: [primary cluster name] reason: [primary cluster name]status: decisions: - clusterName: [primary cluster name] reason: [primary cluster name]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Placement を使用するワークロードの場合:
PlacementRule を編集します。
oc edit placementdecision --subresource=status -n [namespace] [name of the placementdecision]
$ oc edit placementdecision --subresource=status -n [namespace] [name of the placementdecision]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc get placementdecision --subresource=status -n openshift-gitops busybox-3-placement-cephfs-decision-1
$ oc get placementdecision --subresource=status -n openshift-gitops busybox-3-placement-cephfs-decision-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow placementrule のステータスに以下を追加します。
status: decisions: - clusterName: [primary cluster name] reason: [primary cluster name]status: decisions: - clusterName: [primary cluster name] reason: [primary cluster name]Copy to Clipboard Copied! Toggle word wrap Toggle overflow その結果、PlacementDecision が更新され、ワークロードがプライマリークラスターにデプロイされます。
ReplicationDestinationリソースがまだ作成されていない場合にフェイルオーバープロセスが失敗するLastGroupSyncTimeの更新前にユーザーがフェイルオーバーを開始すると、フェイルオーバープロセスが失敗する場合があります。このように失敗すると、ReplicationDestinationが存在しないことを示すエラーメッセージが表示されます。回避策:
ハブクラスターの VRG の
ManifestWorkを編集します。マニフェストから次のセクションを削除します。
/spec/workload/manifests/0/spec/volsync
/spec/workload/manifests/0/spec/volsyncCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を保存します。
この回避策を正しく適用すると、VRG は
ReplicationDestinationリソースを使用した PVC の復元の試行を省略します。PVC がすでに存在する場合、アプリケーションはそれをそのまま使用します。PVC が存在しない場合は、新しい PVC が作成されます。