为什么安装 Block Storage for Classic 失败时发生文件系统检查错误?
排查存储卷的文件系统检查问题。
经典基础设施
当您查看使用 的 Pod 的日志时,会 Block Storage for Classic 看到类似以下示例的错误。
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.(i.e., without -a or -p
options)
磁盘已损坏。 磁盘损坏发生在持久卷(PV)处于读写模式时,若关联的Pod在未被正确移除前被强制删除,或节点在Pod尚未被正确移除时重启/重新加载,或者当卷仍处于挂载状态时。 在这些情况下,卸载过程未能正确完成,导致卷处于不一致状态。 这种情况通常发生在执行节点重新加载或更新的工作流中,这些工作流在清空节点后立即执行操作,却未验证所有Pod是否已迁移且卷已分离。
运行以下命令以修补 pod 正在安装的 PV。
-
获取发生故障的 pod 的详细信息,并记录正在安装的 PV 和 PVC。
kubectl get pods -
对 PV 进行补丁,以添加
"ibm.io/autofix-fsckErr":"true"注解。kubectl patch pv PVNAME -p '{"metadata": {"annotations":{"ibm.io/autofix- fsckErr":"true"}}}' -
删除并重新创建应用程序 pod 以重试安装 PV。 删除并重新创建 pod 后,Kubernetes 会重试安装操作,Block Storage for Classic 驱动程序 pod 会尝试根据
"ibm.io/autofix-fsckErr":"true"注释自动修正问题。 -
成功部署并运行 pod 后,运行以下命令以编辑 PV。
kubectl edit pv PVNAME -
从 PV 中除去
"ibm.io/autofix-fsckErr: true"注释并将其保存。 -
如果问题仍然存在,请联系支持团队。 打开 支持案例。 在案例详细信息中,请确保包含任何相关日志文件,错误消息或命令输出。