
# 工作负载异常：存储卷无法挂载或挂载超时
#### 排查思路
- [EVS存储卷挂载异常]
- [SFS Turbo存储卷挂载异常]
- [SFS存储卷挂载异常]
- [存储卷挂载超时]
 
 #### 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 ``` | 磁盘文件系统损坏。                                                                                                                                                                                       | 1. 在EVS中对磁盘进行备份，具体操作步骤请参见[创建云硬盘备份](https://support.huaweicloud.com/qs-vbs/zh-cn_topic_0015667820.html)。  2. 在节点上执行如下命令修复文件系统。 ``` fsck -y {盘符} ``` 若执行命令以上命令的过程中，出现"has unsupported feature(s): xxx"这类错误，如下所示： ![](https://support.huaweicloud.com/cce_faq/zh-cn_image_0000002428439686.png "点击放大") 说明节点fsck与文件系统不兼容，建议先升级fsck，再尝试执行以上命令。    |
   
 #### 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终端节点](https://support.huaweicloud.com/usermanual-sfs/sfs_01_0134.html)。 |
   
 #### 存储卷挂载超时
如果您挂载的存储中内容太多，同时又配置了以下几条配置，最终会由于逐个修改文件权限，而导致挂载时间过长。
**问题定位：**
- Securitycontext字段中是否包含runAsuser/fsGroup。securityContext是kubernetes中的字段，即安全上下文，它用于定义Pod或Container的权限和访问控制设置。
- 启动命令中是否包含ls、chmod、chown等查询或修改文件权限的操作。
**解决建议**：
请根据您的业务需求，判断是否需要修改。
