Este contenido no está disponible en el idioma seleccionado.
Chapter 7. Known issues
This section describes the known issues in Red Hat OpenShift Data Foundation 4.22.
7.1. Disaster recovery Copiar enlaceEnlace copiado en el portapapeles!
DRCluster validation can fail after upgrading to 4.22 when configured CIDRs are not detected by CSINodeAddons
In 4.22, CIDR validation for MDR fencing has been enhanced. The CIDRs configured in
DRCluster.Spec.CIDRsare now validated against the CIDRs reported byCSINodeAddonson the cluster. As a result, any CIDRs that are not detected byCSINodeAddonscause DRCluster validation to fail with the following condition:DRClusterValidated: False — undetected CIDRs specified <cidr1>, <cidr2>CSINodeAddonsreports the node IPs that are visible to the storage cluster. IfDRCluster.Spec.CIDRswas configured by collecting CIDRs from all cluster nodes before upgrading, control plane node CIDRs might be present in the configuration. Because control plane nodes are typically not part of the storage network, their IPs are not reported byCSINodeAddonsand can cause validation to fail after upgrading to 4.22.Workaround: Verify that the CIDRs configured in
DRCluster.Spec.CIDRsmatch the CIDRs detected by the cluster, either before or after upgrading to 4.22. Post-upgrade verification is recommended because the detected CIDRs are available directly.Before upgrading to 4.22:
-
Verify the CIDRs configured in
DRCluster.Spec.CIDRsagainst the schedulable nodes on the managed cluster. - Include worker nodes and any schedulable control plane nodes in the verification.
- Correct any mismatches before upgrading.
Because CIDR detection is not available in 4.21, post-upgrade validation is still recommended.
After upgrading to 4.22 (recommended):
-
Compare the detected CIDRs with the values configured in
DRCluster.Spec.CIDRsand correct any mismatches. Verify that the
DRClusterValidatedcondition reportsStatus: True.For instructions on retrieving detected CIDRs and updating the DRCluster configuration, see Configure DRClusters for fencing automation.
-
Verify the CIDRs configured in
VolSync synchronization fails for applications that use PVC subPath mounts in a Regional Disaster Recovery configuration
When an application resource, such as a Deployment or StatefulSet, mounts a persistent volume claim (PVC) using the
subPathoption, Security Context Constraints (SCC) permissions are applied only to the specified subdirectory and not to the root of the PVC.VolSync requires the appropriate SCC permissions at the PVC root directory when synchronizing CephFS data. As a result, VolSync can encounter permission-related errors during synchronization operations.
When Disaster Recovery protection is enabled for affected applications, VolSync synchronization might fail and report errors similar to the following:
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1327) [sender=3.2.5] 2026.05.13 18:26:36 Synchronization failed. Retrying in 16 seconds. Retry 4/5. rsync: [sender] opendir "/data/." failed: Permission denied (13)Workaround: If VolSync synchronization fails because the application uses a PVC mounted with
subPath, perform the following steps:Create a Job that mounts the affected PVC and wait for the Job to complete successfully.
apiVersion: batch/v1 kind: Job metadata: name: pvc-1-job spec: backoffLimit: 0 template: spec: restartPolicy: Never containers: - name: relabel image: registry.access.redhat.com/ubi9/ubi-minimal:latest command: - /bin/sh - -c - sleep 30 volumeMounts: - name: data-volume mountPath: /data volumes: - name: data-volume persistentVolumeClaim: claimName: pvc-1Delete the associated VolumeGroupSnapshot resource:
$ oc get -n <namespace> volumegroupsnapshots.groupsnapshot.storage.openshift.io $ oc delete -n <namespace> volumegroupsnapshots.groupsnapshot.storage.openshift.io <volumegroupsnapshotName>Delete the VolumeSnapshot PVC, if present:
$ oc -n <namespace> delete pvc vs-pvc-1 --ignore-not-found --wait=falseDelete the VolSync Job:
$ oc -n <namespace> delete job volsync-rsync-tls-src-pvc-1 --ignore-not-foundResult: During the next scheduled synchronization interval, VolSync successfully synchronizes the PVCs and persistent volumes that match the configured
labelSelectorvalues.
UI cleanup message identifies the wrong cluster after aborting a discovered application dryRun test failover
When a dryRun test failover for a discovered application is aborted, the
failoverClusterfield is removed from the DRPlacementControl (DRPC) specification while the DRPCstatus.phaseremainsFailedOver. The UI derives the cleanup target cluster by finding the complement of the primary cluster, but sincegetPrimaryClusterName()returns undefined (due to missingspec.failoverCluster), the cluster lookup defaults to the first cluster in the DRPolicy - which may be the original primary cluster instead of the actual failover target.As a result, the UI cleanup message incorrectly directs the user to delete application resources from the original primary cluster instead of the failover target cluster where the dryRun workload was deployed. Acting on this incorrect guidance could result in deleting the production workload.
Workaround: Ignore the cluster name displayed in the UI cleanup message. Instead, identify the failover target cluster to which the dryRun test failover was triggered and delete the application resources from that cluster.
Result: After cleaning up the workload from the correct failover target cluster, the application will remain running only on the original primary managed cluster and data replication will resume, restoring the DR state for the application.
UI does not reflect DRPC progression updates during ApplicationSet dryRun test failover abort
When a dryRun test failover for an ApplicationSet workload is aborted, the DRPC progression correctly transitions through
Cleaning Upand thenCompleted. However, the user interface does not recognize or display these progression updates during the abort workflow.As a result, the UI continues to display a stale state, such as
TestingFailoverorFailedOver, instead of the actual DRPC progression. This can give users an inaccurate view of the dryRun abort and cleanup status.Workaround: Verify the actual DRPC progression by using the command line instead of relying on the UI status. For example, run
oc get drpc <name> -n <namespace> -o yamland review the DRPC progression details to confirm that the abort and cleanup have completed successfully.Result: After the dryRun abort completes and the DRPC progression reaches
Completed, the workload is removed from the failover cluster and normal disaster recovery protection resumes on the primary managed cluster.
CephFS VolSync PVCs can get stuck during disable DR
During disable DR for CephFS workloads protected by VolSync, Ramen deletes
ReplicationSource(and related replication-group) objects without first removing their owner references from the PVCs, even when the disable-DR workflow requests that PVCs be preserved (do-not-delete-pvc). Kubernetes then marks the PVCs for deletion.As a result,
PersistentVolumeClaimscan remain stuck in aTerminatingstate instead of stayingBound. Disable DR does not complete cleanly for affected CephFS deployments, and workloads might continue running while storage is left in an inconsistent lifecycle state.Workaround: Do not disable DR for CephFS VolSync workloads until a fix is available.
If PVCs are already stuck in a
Terminatingstate, recovery requires manual intervention and is not suitable for customer self-service. One manual recovery method is to usekubectl patchto remove theReplicationSourceandReplicationDestinationowner references from the PVCs during the disable-DR operation.
Ramen fails to detect updated SSL certificates for S3 connections
After an SSL certificate rotation on the S3 service, Ramen might not automatically detect newly added SSL certificates in the hub cluster. The Ramen pod continues to use the certificates that were loaded during startup, which can cause S3 connections to newly added clusters to fail.
This issue might surface as errors such as:
failed to list objects in bucket: code: RequestError, message: send request failedNote that this error can occur due to various connection or access issues and should not always be interpreted as an SSL certificate problem.
Workaround: Manually restart the Ramen pod on the hub cluster to trigger reinitialization of the S3 connections. This process allows Ramen to load and use the updated SSL certificates.
If you are using managed clusters:
-
Update the certificates in the
managedClustersconfiguration. Manually restart the Ramen pods in the managed clusters after the certificate rotation is complete.
CephBlockPoolRadosNamespace remains in Progressing state for custom CephBlockPools in an RDR configuration
When a custom CephBlockPool is created on a cluster configured for Regional Disaster Recovery (RDR), the automatically created CephBlockPoolRadosNamespace resource (
<pool-name>-builtin-implicit) can remain in theProgressingstate indefinitely. This occurs because the MirroringController in theocs-operatorcannot enable mirroring on the CephBlockPool when the peer cluster bootstrap token is not yet available.As a result, mirroring is not enabled on the CephBlockPool and the associated CephBlockPoolRadosNamespace does not transition to a healthy state.
Workaround: If the CephBlockPoolRadosNamespace remains in the
Progressingstate and mirroring is not enabled on the CephBlockPool, restart theocs-operatorpod.Result: After the
ocs-operatorrestarts, mirroring is enabled successfully on the CephBlockPool and the CephBlockPoolRadosNamespace transitions out of theProgressingstate.
DRPCs protect all 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.pvcSelectorfield.This results in PVCs that match the DRPlacementControl
spec.pvcSelectoracross 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.pvcSelectorto disambiguate which DRPlacementControl protects and manages which subset of PVCs within a namespace. It is not possible to specify thespec.pvcSelectorfield 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.
Disabled
PeerReadyflag prevents changing the action to FailoverThe 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
PeerReadyflag associated with the workload to be disabled, and the sanity check does not complete due to the cluster being offline. As a result, the disabledPeerReadyflag prevents you from changing the action to Failover.Workaround: Use the command-line interface to change the DR action to Failover despite the disabled
PeerReadyflag.
For discovered apps with CephFS, sync stop after failover
For CephFS-based workloads, synchronization of discovered applications may stop at some point after a failover or relocation. This can occur with a
Permission Deniederror reported in theReplicationSourcestatus.Workaround:
For Non-Discovered Applications
Delete the VolumeSnapshot:
$ oc delete volumesnapshot -n <vrg-namespace> <volumesnapshot-name>The snapshot name usually starts with the PVC name followed by a timestamp.
Delete the VolSync Job:
$ oc delete job -n <vrg-namespace> <pvc-name>The job name matches the PVC name.
For Discovered Applications
Use the same steps as above, except
<namespace>refers to the application workload namespace, not the VRG namespace.For Workloads Using Consistency Groups
Delete the ReplicationGroupSource:
$ oc delete replicationgroupsource -n <namespace> <name>Delete All VolSync Jobs in that Namespace:
$ oc delete jobs --all -n <namespace>In this case,
<namespace>refers to the namespace of the workload (either discovered or not), and<name>refers to the name of the ReplicationGroupSource resource.
DRPC progression completes without workload cleanup when aborting a CephFS dryRun test failover
For a CephFS discovered application that is in the
Deployedstate before a dryRun test failover is triggered, aborting the dryRun can cause the DRPlacementControl (DRPC) progression to transition fromTestingFailovertoCompletedeven though the workload has not been cleaned up from the failover cluster (test cluster).This results in the CephFS discovered application continuing to run on both managed clusters simultaneously, which is not a desirable state and can leave the application’s disaster recovery state inconsistent.
Workaround: Delete the application from the failover cluster (test cluster) where the dryRun test failover was triggered.
Result: After the application is successfully removed from the failover cluster, the workload continues running only on the primary managed cluster. Data replication resumes after the cleanup is completed, and the application’s disaster recovery state is restored.
Submariner enters a Degraded state in Regional DR deployments with ACM 2.16 or 2.17
In Regional Disaster Recovery (RDR) deployments using Red Hat Advanced Cluster Management (ACM) 2.16 or 2.17 with Submariner 0.23 or 0.24, Submariner enters a
Degradedstate after deployment. This prevents cross-cluster communication required for RDR and makes failover and relocate operations non-functional. Both CephFS and RBD workload types are affected.Workaround: There is currently no workaround. Wait for the fix to be delivered in upcoming ACM 2.17.z and 2.16.z releases. Do not deploy new RDR setups with the affected component versions until the fix is available. If you are planning an RDR deployment, verify that your ACM version includes the fix for ACM-40464 before proceeding.
7.2. Multicloud Object Gateway Copiar enlaceEnlace copiado en el portapapeles!
Unable to create new OBCs using Multicloud Object Gateway
When provisioning an NSFS bucket via ObjectBucketClaim (OBC), the default filesystem path is expected to use the bucket name. However, if path is set in
OBC.Spec.AdditionalConfig, it should take precedence. This behavior is currently inconsistent, resulting in failures when creating new OBCs.
7.3. Ceph Copiar enlaceEnlace copiado en el portapapeles!
RHCS 9.1z1 is not compatible with ODF 4.22.0
Customers running ODF 4.22.0 in external mode should not deploy or upgrade to RHCS 9.1z1 due to an incompatibility issue. A fix will be provided in ODF 4.22.z.
OSD pods restart during add capacity
OSD pods restart after performing cluster expansion by adding capacity to the cluster. However, no impact to the cluster is observed apart from pod restarting.
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 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 multiple ways to work around this issue. Depending on your business needs you can choose one of the workarounds from the knowledgebase solution https://access.redhat.com/solutions/6221251.
(RFE-3327)
7.4. OpenShift Data Foundation console Copiar enlaceEnlace copiado en el portapapeles!
UI shows
WaitOnUserCleanUpeven when automatic cleanup is enabledThe UI incorrectly displays the
WaitOnUserCleanUpstatus even when automatic cleanup is enabled for VMs. This occurs because the UI relies only on thephaseandprogressionfields of theDRPlacementControlto determine cleanup behavior and does not evaluate the more granularAutoCleanupcondition that explicitly indicates automatic cleanup.Workaround: There is no manual workaround required. This state is transient and clears automatically once the
progressionfield advances toCompleted. Manual cleanup should be avoided unless theAutoCleanupcondition and its correspondingreasonin theDRPlacementControlor VRG status indicate otherwise.During automatic cleanup, the UI may briefly present a misleading status, which can cause temporary confusion until the cleanup completes.
DRPlacementControl shows
ProtectionErroreven after successful relocationWhen a relocation completes, the
DRPlacementControlmay continue to display aProtectionErrorstatus. This occurs because theProtectedcondition in the DRPlacementControl status incorrectly reports anErrorstate, even though the relocation has finished (phase: Relocated,progression: Completed).Workaround: No direct workaround is available. Wait until retrying the
NoClusterDataConflictcondition is met.The DR status in the UI remains in the
ProtectionErrorstate until the data conflict is resolved.
7.5. Upgrade Copiar enlaceEnlace copiado en el portapapeles!
Upgrade failures to 4.22.z
When upgrading from OpenShift Data Foundation version 4.21.z to 4.22, you must upgrade to OpenShift Data Foundation 4.22.2 or later versions. Upgrades to OpenShift Data Foundation 4.22.0 or 4.22.1 are not supported and will fail.