第 7 章 已知问题

本节论述了 Red Hat OpenShift Container Storage 4.8 中已知的问题。

仲裁程序节点不能使用 OpenShift Container Storage 节点标签标记

如果使用 OpenShift Container Storage 节点标签 cluster.ocs.openshift.io/openshift-storage 标记,仲裁程序节点将被视为有效的非仲裁节点。这意味着,非仲裁资源的放置不会确定。要临时解决这个问题,请不要使用 OpenShift Container Storage 节点标签标记仲裁节点,以便仅将仲裁资源放置在仲裁器节点上。

(BZ#1947110)

替换磁盘后,Ceph 状态为 HEALTH_WARN

替换磁盘后,即使所有 OSD pod 都已启动并在运行,也会看到 最近出现 1 后台程序崩溃 的警告。此警告会导致 Ceph 状态出现更改。Ceph 状态应当是 HEALTH_OK,而非 HEALTH_WARN。为解决这个问题,将 rsh 到 ceph-tools pod 并静默警告,Ceph 健康状况随后将返回到 HEALTH_OK。

(BZ#1896810)

CephCluster 资源中重置监控规格

每当 ocs-operator 重启或升级过程中,监控规格就会变为空。这不会影响功能,但如果您查找监控端点详情,您会发现它为空。

要解决这个问题,请在从 4.7 升级到 4.8 后更新 rook-ceph-external-cluster-details secret,以便将所有端点(如以逗号分隔的活跃和待机 MGR 的 IP 地址)的详情更新至"MonitoringEndpoint"数据键。这有助于避免因为新集群中和升级的集群中端点数量存在差异,未来出现任何问题。

(BZ#1984735)

没有obaa-db-pg-0 的问题

当托管节点停机时,NooBaa-db-pg-0 pod 不会迁移到其他节点。当节点停机时,NooBaa 无法正常工作,因为 noobaa-db-pg-0 pod 的迁移已被阻止。

(BZ#1783961)

如果删除了插件 pod,则数据将无法访问,直到节点重启发生为止

造成此问题的原因是,当 csi-cephfsplugin pod 重启时,挂载的 netns 被销毁,这会导致 in csi-cephfs 插件锁定 所有挂载的卷。只有使用 multus 启用的集群才会出现这个问题。

当您在删除后重启 who csi-cephfs 插件 的节点时会解决这个问题。

(BZ#1979561)

加密密码短语存储在源 KMS 中,以便从快照中恢复卷

当父级和恢复的 PVC 在 KMS 设置中具有不同的后端路径 StorageClass 时,恢复的 PVC 会进入 Bound 状态,加密密码则在快照的 KMS 设置的后端路径中创建。恢复的 PVC 无法附加到 Pod,因为检查加密密码短语时使用 2nd StorageClass 路径中链接的设置,其中加密密码短语无法在后端路径中找到。

为防止这个问题,PVC 在创建和恢复快照时应始终使用相同的 KMS 设置。

(BZ#1975730)

在使用 kv-v2 secret 引擎删除加密 PVC 后,密钥仍然会列在 Vault 中

HashiCorp Vault 为键值存储 v2 添加了一项功能,其中删除存储的密钥可让您在单独步骤中删除已删除密钥的元数据。在 Hashicorp Vault 中将键值 v2 存储用于 secret 时,删除卷不会从 KMS 中删除加密密码短语的元数据。虽然以后可以恢复加密的密码短语。KMS 不会自动清理这些部分删除的密钥。

您可以通过手动删除已删除密钥的元数据来解决这个问题。在元数据中设置了 delete_time 的任何键都可以假定在使用键值存储 v1 时已被删除,但可通过 v2 保持可用。

(BZ#1979244)

恢复 Snapshot/Clone 操作的大小大于父 PVC 会导致无限制循环

Ceph CSI 不支持恢复快照或创建大小大于父 PVC 的克隆。因此,恢复快照/Clone 操作的大小更大会导致无状态循环。要解决这个问题,请删除待处理的 PVC。要获得更大的 PVC,请根据您正在使用的操作完成以下操作之一: 如果使用快照,恢复现有快照以创建与父 PVC 大小相同的卷,然后将其附加到 pod 并将其扩展为所需的大小。如需更多信息,请参阅卷快照。如果使用 Clone,克隆父 PVC 以创建与父 PVC 大小相同的卷,然后将其附加到 pod,并将 PVC 扩展至所需的大小。如需更多信息,请参阅卷克隆。

(BZ#1870334)

PVC 从快照恢复,或者从密集置备的 PVC 克隆,且未置备为 thick

当使用 Sthick provisioning 启用的存储类恢复 thick 置备 PVC 快照时,恢复的卷不会被置备。恢复的 PVC 达到 Bound 状态,且没有 thick provisioning。这只有在使用 RHCS-5.x 时才能解决。较旧的 Ceph 版本不支持复制零填充的数据块(在密集置备时使用)。

目前,要解决基于 RHCS-4.x 的部署的问题,需要将 thick-provisioned 卷的 PVC-cloning 和 snapshot-restoring 标记为限制。新创建的卷将变为精简置备。

(BZ#1959793)

在密集置备进行时删除待处理的 PVC 和 RBD 置备程序 Pod,会保留过时的镜像和 OMAP 元数据

当 RBD PVC 被密集置备时,持久性卷声明(PVC)处于 Pending 状态。如果删除了 RBD 置备程序领导和 PVC 本身,RBD 镜像和 OMAP 元数据不会被删除。

要解决这个问题,在密集置备进行过程中不要删除 PVC。

(BZ#1962956)

当存储集群利用率达到 85% 甚至删除 PVC 后,置备尝试也不会停止。

如果在调配 RBD thick PVC 时存储集群利用率达到 85%,则调配尝试不会通过删除待处理的 PVC 来自动停止,而且 RBD 镜像在删除待处理的 PVC 后也不会被删除。

如果请求的大小超过可用的存储,则最好的方法是不启动置备。

(BZ#1965016)

使用 kv-v2 时,不会在卸载过程中删除 Vault 中的 OSD 的密钥

当 Vault K/V Secret 引擎是版本 2 时,密钥加密密钥数据会在集群删除过程中从 Vault 进行软删除。这意味着可以检索任意版本的密钥,从而撤消删除。元数据仍然可见,因此可以恢复密钥。如果这会导致不便,则仍可使用 vault 命令及"destroy"参数手动删除密钥。

(BZ#1975323)

删除 CephBlockPool 会卡住,并阻止新池的创建

在 Multus 启用的集群中,Rook Operator 没有网络注解,因此无法访问 OSD 网络。这意味着,在池清理期间运行"rbd"类型命令时,命令将挂起,因为它无法联系 OSD。解决方法是使用 toolbox 手动删除 CephBlockPool

(BZ#1983756)

无法通过用户界面为加密的 OpenShift Container Storage 集群执行设备替换操作

在加密的 OpenShift Container Storage 集群中,发现结果 CR 会发现由 Ceph OSD(对象存储守护进程)支持的设备与 Ceph 警报中报告的不同。单击警报时,用户会显示 Disk not found 消息。由于不匹配,console UI 无法为 OpenShift Container Storage 用户启用磁盘替换选项。要解决这个问题,请在替换设备指南中使用 CLI 流程来替换失败的设备。

(BZ#1906002)

对于将 volumeMode 作为块的 PVC 的 false Alerts

由于 Kubernetes 中的更改,OpenShift Container Platform 的 Prometheus 警报中出现了一个回归问题。这个变化会影响以下内容:

Alert: KubePersistentVolumeFillingUp.

PVC: volumeMode 中的 PVC: Block

匹配命名空间中的正则表达式:"(openshift-.|kube-.|default|logging)"

metric: kubelet_volume_stats_available_bytes

因此,警报 kubelet_volume_stats_available_bytes 将 PVC 创建时的可用大小报告为 0,并为 volumeMode: Blocks 中的所有 PVC 触发一个假的警报:与正则表达式匹配:"(openshift-.|kube-.|default|logging)"。这会影响为内部和内部附加模式以及 Amazon Web Services、VMware、Baremetal 等不同基础架构部署的 OSD 设备集创建的所有 PVC。这也会影响客户工作负载 PVC。

目前,这个问题在即将发布的 OpenShift Container Platform 4.8.z 的一个次发行版本中解决前,还没有可用的临时解决方案。因此,可以非常迅速、紧急地解决有关 OpenShift Container Storage 存储容量的任何警报。

(BZ#1984817)

关键警报通知在安装仲裁存储集群后发送,因为 ceph objectstore 的 ceph 对象用户无法在存储集群重新安装期间创建。

在包含 CephCluster 和一个或多个 Ceph ObjectStores 的存储集群中,如果在完全删除所有 Ceph ObjectStore 资源前删除了 Ceph Cluster 资源,Rook Operator 仍然可以在内存中保留 CephObjectStore(s)的连接详情。如果重新创建了相同的 CephCluster 和 CephObjectStore(s),CephObjectStore(s)可能会进入 "Failed" 状态。

为避免此问题,请在删除 CephCluster 之前完全删除 CephObjectStore。

  • 如果您不想等待 CephObjectStore 被删除,重启 Rook Operator(通过删除 Operator Pod)可以避免在卸载后出现问题。
  • 如果您正遇到这个问题,重启 Rook Operator 将通过清除旧 CephObjectStore 连接详情的 Operator 内存来解决此问题。

(BZ#1974344)