Chapter 7. Known issues This section describes the known issues in Red Hat OpenShift Data Foundation 4.15. 7.1. Disaster recovery Creating an application namespace for the managed clusters Application namespace needs to exist on RHACM managed clusters for disaster recovery (DR) related pre-deployment actions and hence is pre-created when an application is deployed at the RHACM hub cluster. However, if an application is deleted at the hub cluster and its corresponding namespace is deleted on the managed clusters, they reappear on the managed cluster. Workaround: openshift-dr maintains a namespace manifestwork resource in the managed cluster namespace at the RHACM hub. These resources need to be deleted after the application deletion. For example, as a cluster administrator, execute the following command on the hub cluster: ( BZ#2059669 ) ceph df reports an invalid MAX AVAIL value when the cluster is in stretch mode When a crush rule for a Red Hat Ceph Storage cluster has multiple "take" steps, the ceph df report shows the wrong maximum available size for the map. The issue will be fixed in an upcoming release. ( BZ#2100920 ) Both the DRPCs protect all the persistent volume claims created on the same namespace The namespaces that host multiple disaster recovery (DR) protected workloads, protect all the persistent volume claims (PVCs) within the namespace for each DRPlacementControl resource in the same namespace on the hub cluster that does not specify and isolate PVCs based on the workload using its spec.pvcSelector field. This results in PVCs, that match the DRPlacementControl spec.pvcSelector across multiple workloads. Or, if the selector is missing across all workloads, replication management to potentially manage each PVC multiple times and cause data corruption or invalid operations based on individual DRPlacementControl actions. Workaround: Label PVCs that belong to a workload uniquely, and use the selected label as the DRPlacementControl spec.pvcSelector to disambiguate which DRPlacementControl protects and manages which subset of PVCs within a namespace. It is not possible to specify the spec.pvcSelector field for the DRPlacementControl using the user interface, hence the DRPlacementControl for such applications must be deleted and created using the command line. Result: PVCs are no longer managed by multiple DRPlacementControl resources and do not cause any operation and data inconsistencies. ( BZ#2128860 ) MongoDB pod is in CrashLoopBackoff because of permission errors reading data in cephrbd volume The OpenShift projects across different managed clusters have different security context constraints (SCC), which specifically differ in the specified UID range and/or FSGroups . This leads to certain workload pods and containers failing to start post failover or relocate operations within these projects, due to filesystem access errors in their logs. Workaround: Ensure workload projects are created on all managed clusters with the same project-level SCC labels, allowing them to use the same filesystem context when failed over or relocated. Pods will no longer fail post-DR actions on filesystem-related access errors. ( BZ#2081855 ) Disaster recovery workloads remain stuck when deleted When deleting a workload from a cluster, the corresponding pods might not terminate with events such as FailedKillPod . This might cause delay or failure in garbage collecting dependent DR resources such as the PVC , VolumeReplication , and VolumeReplicationGroup . It would also prevent a future deployment of the same workload to the cluster as the stale resources are not yet garbage collected. Workaround: Reboot the worker node on which the pod is currently running and stuck in a terminating state. This results in successful pod termination and subsequently related DR API resources are also garbage collected. ( BZ#2159791 ) When DRPolicy is applied to multiple applications under same namespace, volume replication group is not created When a DRPlacementControl (DRPC) is created for applications that are co-located with other applications in the namespace, the DRPC has no label selector set for the applications. If any subsequent changes are made to the label selector, the validating admission webhook in the OpenShift Data Foundation Hub controller rejects the changes. Workaround: Until the admission webhook is changed to allow such changes, the DRPC validatingwebhookconfigurations can be patched to remove the webhook: ( BZ#2210762 ) Application failover hangs in FailingOver state when the managed clusters are on different versions of OpenShift Container Platform and OpenShift Data Foundation Disaster Recovery solution with OpenShift Data Foundation protects and restores persistent volume claim (PVC) data in addition to the persistent volume (PV) data. If the primary cluster is on an older OpenShift Data Foundation version and the target cluster is updated to 4.15 then the failover will be stuck as the S3 store will not have the PVC data. Workaround: When upgrading the Disaster Recovery clusters, the primary cluster must be upgraded first and then the post-upgrade steps must be run. ( BZ#2215462 ) Failover of apps from c1 to c2 cluster hang in FailingOver The failover action is not disabled by Ramen when data is not uploaded to the s3 store due to s3 store misconfiguration. This means the cluster data is not available on the failover cluster during the failover. Therefore, failover cannot be completed. Workaround: Inspect the Ramen logs after initial deployment to ensure there are no s3 configuration errors reported. ( BZ#2248723 ) Potential risk of data loss after hub recovery A potential data loss risk exists following hub recovery due to an eviction routine designed to clean up orphaned resources. This routine identifies and marks AppliedManifestWorks instances lacking corresponding ManifestWorks for collection. A hardcoded grace period of one hour is provided. After this period elapses, any resources associated with the AppliedManifestWork become subject to garbage collection. If the hub cluster fails to regenerate corresponding ManifestWorks within the initial one hour window, data loss could occur. This highlights the importance of promptly addressing any issues that might prevent the recreation of ManifestWorks post-hub recovery to minimize the risk of data loss. Regional DR Cephfs based application failover show warning about subscription After the application is failed over or relocated, the hub subscriptions show up errors stating, "Some resources failed to deploy. Use View status YAML link to view the details." This is because the application persistent volume claims (PVCs) that use CephFS as the backing storage provisioner, deployed using Red Hat Advanced Cluster Management for Kubernetes (RHACM) subscriptions, and are DR protected are owned by the respective DR controllers. Workaround: There are no workarounds to rectify the errors in the subscription status. However, the subscription resources that failed to deploy can be checked to make sure they are PVCs. This ensures that the other resources do not have problems. If the only resources in the subscription that fail to deploy are the ones that are DR protected, the error can be ignored. ( BZ-2264445 ) Disabled PeerReady flag prevents changing the action to Failover The DR controller executes full reconciliation as and when needed. When a cluster becomes inaccessible, the DR controller performs a sanity check. If the workload is already relocated, this sanity check causes the PeerReady flag associated with the workload to be disabled, and the sanity check does not complete due to the cluster being offline. As a result, the disabled PeerReady flag prevents you from changing the action to Failover. Workaround: Use the command-line interface to change the DR action to Failover despite the disabled PeerReady flag. ( BZ-2264765 ) Ceph becomes inaccessible and IO is paused when connection is lost between the two data centers in stretch cluster When two data centers lose connection with each other but are still connected to the Arbiter node, there is a flaw in the election logic that causes an infinite election between the monitors. As a result, the monitors are unable to elect a leader and the Ceph cluster becomes unavailable. Also, IO is paused during the connection loss. Workaround: Shut down the monitors in one of the data centers where monitors are out of quorum (you can find this by running ceph -s command) and reset the connection scores of the remaining monitors. As a result, monitors can form a quorum and Ceph becomes available again and IOs resume. ( Partner BZ#2265992 ) Cleanup and data synchronization for ApplicationSet workloads remain stuck after older primary managed cluster is recovered post the failover ApplicationSet based workload deployments to the managed clusters are not garbage collected in cases when the hub cluster fails. It is recovered to a standby hub cluster while the workload has been failed over to a surviving managed cluster. The cluster that the workload failed over from, rejoins the new recovered standby hub. ApplicationSets that are disaster recovery (DR) protected and with a regional DRPolicy starts firing the VolumeSynchronizationDelay alert. Further such DR protected workloads cannot be failed over to the peer cluster or relocated to the peer cluster as data is out of sync between the two clusters. For a workaround, see the Troubleshooting section for Regional-DR in Configuring OpenShift Data Foundation Disaster Recovery for OpenShift Workloads. ( BZ#2268594 ) 7.2. Multicloud Object Gateway Multicloud Object Gateway instance fails to finish initialization Due to a race in timing between the pod code run and OpenShift loading the Certificate Authority (CA) bundle into the pod, the pod is unable to communicate with the cloud storage service. As a result, default backing store cannot be created. Workaround: Restart the Multicloud Object Gateway (MCG) operator pod: With the workaround the backing store is reconciled and works. ( BZ#2269379 ) and ( BZ#2268429 ) 7.3. Ceph Poor performance of the stretch clusters on CephFS Workloads with many small metadata operations might exhibit poor performance because of the arbitrary placement of metadata server (MDS) on multi-site Data Foundation clusters. ( BZ#1982116 ) SELinux relabelling issue with a very high number of files When attaching volumes to pods in Red Hat OpenShift Container Platform, the pods sometimes do not start or take an excessive amount of time to start. This behavior is generic and it is tied to how SELinux relabelling is handled by the Kubelet. This issue is observed with any filesystem based volumes having very high file counts. In OpenShift Data Foundation, the issue is seen when using CephFS based volumes with a very high number of files. There are different ways to workaround this issue. Depending on your business needs you can choose one of the workarounds from the knowledgebase solution https://access.redhat.com/solutions/6221251 . ( Jira#3327 ) Ceph reports no active mgr after workload deployment After workload deployment, Ceph manager loses connectivity to MONs or is unable to respond to its liveness probe. This causes the OpenShift Data Foundation cluster status to report that there is "no active mgr". This causes multiple operations that use the Ceph manager for request processing to fail. For example, volume provisioning, creating CephFS snapshots, and others. To check the status of the OpenShift Data Foundation cluster, use the command oc get cephcluster -n openshift-storage . In the status output, the status.ceph.details.MGR_DOWN field will have the message "no active mgr" if your cluster has this issue. Workaround: Restart the Ceph manager pods using the following commands: After running these commands, the OpenShift Data Foundation cluster status reports a healthy cluster, with no warnings or errors regarding MGR_DOWN . ( BZ#2244873 ) CephBlockPool creation fails when custom deviceClass is used in StorageCluster Due to a known issue, CephBlockPool creation fails when custom deviceClass is used in StorageCluster. ( BZ#2248487 ) 7.4. CSI Driver Automatic flattening of snapshots is not working When there is a single common parent RBD PVC, if volume snapshot, restore, and delete snapshot are performed in a sequence more than 450 times, it is further not possible to take volume snapshot or clone of the common parent RBD PVC. To workaround this issue, instead of performing volume snapshot, restore, and delete snapshot in a sequence, you can use PVC to PVC clone to completely avoid this issue. If you hit this issue, contact customer support to perform manual flattening of the final restore PVCs to continue to take volume snapshot or clone of the common parent PVC again. ( BZ#2232163 ) 7.5. OpenShift Data Foundation console Missing NodeStageVolume RPC call blocks new pods from going into Running state NodeStageVolume RPC call is not being issued blocking some pods from going into Running state. The new pods are stuck in Pending forever. To workaround this issue, scale down all the affected pods at once or do a node reboot. After applying the workaround, all pods should go into Running state. ( BZ#2244353 ) 7.6. OCS operator Incorrect unit for the ceph_mds_mem_rss metric in the graph When you search for the ceph_mds_mem_rss metrics in the OpenShift user interface (UI), the graphs show the y-axis in Megabytes (MB), as Ceph returns ceph_mds_mem_rss metric in Kilobytes (KB). This can cause confusion while comparing the results for the MDSCacheUsageHigh alert. Workaround: Use ceph_mds_mem_rss * 1000 while searching this metric in the OpenShift UI to see the y-axis of the graph in GB. This makes it easier to compare the results shown in the MDSCacheUsageHigh alert. ( BZ#2261881 ) Increasing MDS memory is erasing CPU values when pods are in CLBO state When the metadata server (MDS) memory is increased while the MDS pods are in a crash loop back off (CLBO) state, CPU request or limit for the MDS pods is removed. As a result, the CPU request or the limit that is set for the MDS changes. Workaround: Run the oc patch command to adjust the CPU limits. For example: ( BZ#2265563 )

Commands:
oc delete manifestwork -n <managedCluster namespace> <drPlacementControl name>-<namespace>-ns-mw
oc patch validatingwebhookconfigurations vdrplacementcontrol.kb.io-lq2kz --type=json --patch='[{"op": "remove", "path": "/webhooks"}]'
oc get drpc -o yaml
oc delete pod noobaa-operator-<ID>
oc scale deployment -n openshift-storage rook-ceph-mgr-a --replicas=0
oc scale deployment -n openshift-storage rook-ceph-mgr-a --replicas=1
oc patch -n openshift-storage storagecluster ocs-storagecluster --type merge --patch '{"spec": {"resources": {"mds": {"limits": {"cpu": "3"}, "requests": {"cpu": "3"}}}}}'