第 4 章 程序错误修复
本节论述了 Red Hat OpenShift Container Storage 4.7 中引入了重要的程序错误修复。
MGR pod 即使 MON 停机也会重启
在以前的版本中,当节点重启 MGR pod 时,可能一直处于 pod 的初始状态,从而导致无法创建新的持久性卷(PV)。在这个版本中,MGR pod 也会重启,即使 MON 已关闭。
现在,当 OpenShift Container Platform 上启用了巨页时,Multicloud Object Gateway 现已可用
在以前的版本中,当启用巨页时,多云对象网关(MCG)db pod 会崩溃,因为 Postgres 无法在 kubernetes 上运行。在当前更新时,MCG Postgres Pod 的巨页被禁用,因此 MCG db pod 不会崩溃。
PodDisruptionBudget
警报不再持续显示
在以前的版本中,PodDisruptionBudget
警报被持续显示为 OpenShift Container Platform 警报,用于对象存储设备(OSD)。这个问题已解决,警报不再显示。
must-gather
日志收集失败
在以前的版本中,复制 pod 不会定期重新清空数据,从而导致 must-gather
命令在默认的 10 分钟超时后失败。在这个版本中,复制 pod 会定期尝试按照 must-gather
命令生成的间隔收集数据,现在 must-gather
命令会运行完成。
如果没有 volumesnapshotclass
,则无法从卷快照创建 PVC
如果没有 volumesnapshotclass
,则无法从卷快照创建一个 PVC。造成这个问题的原因是,卷快照的状态在删除 volumesnapshotclass
时变为 未就绪状态。这个问题已在 OCP 4.7.0 及更高版本中解决。
如果进程崩溃,则不会传播内核转储
在以前的版本中,如果进程崩溃,内核转储不会被传播。在这个版本中,增加了一个日志收集器,它是主 ceph 守护进程旁边运行的 sidecar。因此,启用了 ShareProcessNamespace
标志,此标志信号可以在允许生成 coredumps 的容器间进行截获。
多 OSD 移除任务不再失败
在以前的版本中,当为多个 OSD 移除触发作业时,模板会在作业名中包含一个带有逗号的 OSD ID。这会导致任务模板失败。在这个版本中,OSD ID 已从作业名称中删除,以保持有效格式。作业名称已从 ocs-osd-removal-${FAILED_OSD_IDS}
改为 ocs-osd-removal-job
。
增加了 mon
故障转移超时
在这个版本中,在 IBM Cloud 上将 mon
故障转移超时增加到 15 分钟。在以前的版本中,mon
会开始故障转移,当它们仍在上线时。
Rook 现在会拒绝在检测之前 OpenShift Container Storage 安装中未清除的磁盘上部署带有消息的 OSD
在以前的版本中,如果从以前的 OpenShift Container Storage 安装中没有清理的磁盘被重复使用,Rook 会失败。在这个版本中,Rook 可以被检测到磁盘是否属于不同的集群,并拒绝该磁盘中的 OSD 部署并显示错误消息(BZ#1922954)
MON 故障转移不再使 Ceph 无法访问
在以前的版本中,如果在另一个 mon 失败时出现意外停止,会导致 mons 丢失仲裁。当 mons 丢失仲裁时,Ceph 变得不可访问。在这个版本中,voluntary mon 排空操作会在 mon 失败时排空操作,以便 Ceph 不会变得无法访问。
cpehcsi
node plugin pod 会预先填充 GRPC 指标的端口
在以前的版本中,cephcsi
pod 为调试目的公开 GRPC 指标,因此 cephcsi
节点插件 pod 将端口 9090 用于 RBD 和 9091 用于 CephFS。因此,cephsi
pod 可能会因为端口不可用而失败。在这个版本中,GRPC 指标会被默认禁用,因为它只需要用于调试目的,现在 cephcsi
不会在运行节点插件 pod 的节点中使用端口 9091 和 9090。
rook-ceph-mds
没有在监控服务器中注册 pod IP
在以前的版本中,rook-ceph-mds
没有将 pod IP 注册到监控器服务器,因此每个挂载都超时,因此 PVC 可能无法置备,从而导致 CephFS 卷置备失败。在这个版本中,当主机网络没有启用时,参数 --public-addr=podIP
会被添加到 MDS pod 中。因此,现在 CephFS 卷置备不会失败。
因为失败的规则评估,must gather
中有错误
在以前的版本中,记录规则记录:cluster:ceph_disk_latency:join_ceph_node_disk_irate1m
不会被评估,因为 Prometheus 中不允许 many-to-many 匹配。因此,因为这个失败的规则评估,在 must gather
和部署中存在错误。在这个版本中,对记录规则的查询已更新,以消除 many-to-many 的匹配情况,因此现在 Prometheus 规则评估应该不会失败,且不应在部署中看到任何错误。