7.9. 存储问题故障排除
7.9.1. 解决多附件错误
当节点崩溃或立即关闭时,预期会从节点卸载附加的 ReadWriteOnce(RWO)卷,以便被调度到另一节点上的 pod 使用。
但是,不可能在新节点中挂载,因为失败的节点无法卸载附加的卷。
报告了一个 multi-attach 错误:
输出示例
Unable to attach or mount volumes: unmounted volumes=[sso-mysql-pvol], unattached volumes=[sso-mysql-pvol default-token-x4rzc]: timed out waiting for the condition Multi-Attach error for volume "pvc-8837384d-69d7-40b2-b2e6-5df86943eef9" Volume is already used by pod(s) sso-mysql-1-ns6b4
流程
要解决 multi-attach 问题,请使用以下解决方案之一:
使用 RWX 卷启用多个附件。
对于大多数存储解决方案,您可以使用 ReadWriteMany(RWX)卷以防止多附加错误。
使用 RWO 卷时,恢复或删除故障节点。
对于不支持 RWX 的存储,如 VMware vSphere,必须改为使用 RWO 卷。但是, RWO 卷无法挂载到多个节点上。
如果您遇到带有 RWO 卷的多附件错误消息,请强制在关闭或崩溃的节点上删除 pod,以避免关键工作负载中的数据丢失,例如在附加动态持久性卷时。
$ oc delete pod <old_pod> --force=true --grace-period=0s
该命令会在 6 分钟后删除处于关闭或崩溃的节点上的卷。