文档首页/ 云容器引擎 CCE/ 常见问题/ 工作负载/ 工作负载异常问题排查/ 工作负载异常:存储卷无法挂载或挂载超时
更新时间:2025-04-22 GMT+08:00
分享

工作负载异常:存储卷无法挂载或挂载超时

EVS存储卷挂载异常

问题现象

问题根因

解决方案

在有状态工作负载上挂载EVS存储卷,但无法挂载卷并超时。

节点在可用区1,而要挂载的磁盘在可用区2,导致无法挂载而超时。

在同一可用区内创建磁盘再挂载后即可正常。

创建Pod失败,并出现“添加存储失败”的事件,事件信息如下:

Multi-Attach error for volume "pvc-62a7a7d9-9dc8-42a2-8366-0f5ef9db5b60" Volume is already used by pod(s) testttt-7b774658cb-lc98h

查看Deployment的副本数是否大于1。

Deployment中使用EVS存储卷时,副本数只能为1。若用户在后台指定Deployment的实例数为2以上,此时CCE并不会限制Deployment的创建。但若这些实例Pod被调度到不同的节点,则会有部分Pod因为其要使用的EVS无法被挂载到节点,导致Pod无法启动成功。

使用EVS的Deployment的副本数指定为1,或使用其他类型存储卷。

创建Pod失败,出现以下类似信息:

MountVolume.MountDevice failed for volume "pvc-08178474-c58c-4820-a828-14437d46ba6f" : rpc error: code = Internal desc = [09060def-afd0-11ec-9664-fa163eef47d0] /dev/sda has file system, but it is detected to be damaged

磁盘文件系统损坏。

在EVS中对磁盘进行备份,然后执行如下命令修复文件系统。

fsck -y {盘符}

SFS Turbo存储卷挂载异常

问题现象

问题根因

解决方案

  • 普通容器场景,Pod状态为“处理中”,且Pod的事件中有如下内容:
    MountVolume.SetUp failed for volume {pv name}...
  • 安全容器场景,Pod状态为“实例异常”,且Pod的事件中有如下内容:
    mount {sfsturbo共享地址} to xxx failed
  1. PV中共享地址不正确。
  2. Pod所在节点与需挂载的SFS Turbo文件系统间的网络不通。
  1. 检查PV中共享地址是否正确。

    获取PV的YAML,查看spec.csi.volumeAttributes下的everest.io/share-export-location字段值即为共享地址,正确的共享地址是指定的SFS Turbo文件系统的共享路径。

    kubectl get pv {pv name} -ojsonpath='{.spec.csi.volumeAttributes.everest\.io\/share-export-location}{"\n"}'

    若指定了子路径,则要求子路径格式正确,且是存在的子目录,例如192.168.135.24:/a/b/c。

  2. 检查Pod所在节点与需挂载的SFS Turbo文件系统间的网络是否打通。
    在节点上执行如下指令,可测试SFS Turbo是否可以挂载。
    mount -t nfs -o vers=3,nolock,noresvport {sfsturbo共享地址} /tmp

SFS存储卷挂载异常

问题现象

问题根因

解决方案

Pod状态为“处理中”,且Pod的事件中存在“实例挂卷失败”的告警,具体事件如下:
MountVolume.SetUp failed for volume {pv name}...please check whether the volumeAttributes of related PersistentVolume of the volume is correct and whether it can be mounted.

工作负载中使用了通用文件系统(原SFS 3.0 容量型),但未创建通用文件系统使用的VPCEP,导致文件系统无法访问。

在集群所在VPC创建一个VPC终端节点,配置VPC终端节点的方法请参见配置VPC终端节点

存储卷挂载超时

如果您挂载的存储中内容太多,同时又配置了以下几条配置,最终会由于逐个修改文件权限,而导致挂载时间过长。

问题定位:

  • Securitycontext字段中是否包含runAsuser/fsGroup。securityContext是kubernetes中的字段,即安全上下文,它用于定义Pod或Container的权限和访问控制设置。
  • 启动命令中是否包含ls、chmod、chown等查询或修改文件权限的操作。

解决建议

请根据您的业务需求,判断是否需要修改。

相关文档