
# 工作负载异常：添加存储失败
#### 问题现象
实例一直处于创建中，事件中存在"添加存储失败"的告警，事件信息如下所示：
```
AttachVolume.Attach failed for volume "pvc-***" : rpc error: code = Internal desc = [***][disk.csi.everest.io] attaching volume *** to node *** failed: failed to send request of attaching disk(id=***) to node(id=***): error statuscode 400 for posting request, response is {"badRequest": {"message": "Maximum number of scsi disk exceeded", "code": 400}}, request is {"volumeAttachment":{"volumeId":"***","device":"","id":"","serverId":"","bus":"","pciAddress":"","VolumeWwn":"","VolumeMultiAttach":false,"VolumeMetadata":null}}, url is: ......
```
#### 问题原因
该告警事件说明节点上绑定的云硬盘已达上限，挂载云硬盘的工作负载实例调度到该节点后，无法继续挂载云硬盘，导致工作负载无法正常运行。
例如，假设节点可挂载的云硬盘上限为20，除去节点上已挂载的1块系统盘和1块数据盘后，节点剩余可挂载的云硬盘数量为18块。若该节点通过ECS控制台自定义挂载了2块裸盘用于创建本地存储池，则实际上仅能挂载16块数据盘。该场景下，如果该节点上调度18个挂载1块云硬盘的工作负载实例，就会出现2个工作负载实例由于节点上无法再挂载云硬盘，出现以上错误。
#### 解决方案
当CCE 容器存储 (Everest)插件版本为2.3.11及以上时，插件提供number_of_reserved_disks参数，该参数可以设置节点上预留的挂盘数，预留出部分盘位供用户自定义挂载云硬盘使用。注意，修改该参数将对集群中所有节点生效。
设置number_of_reserved_disks参数后，节点剩余可挂载的云硬盘数量计算如下：
**节点剩余挂盘数 = 节点可挂载的云硬盘上限值 - number_of_reserved_disks**
![](https://support.huaweicloud.com/cce_faq/zh-cn_image_0000001741959366.png "点击放大")
例如，假设节点可挂载的云硬盘上限为20，设置number_of_reserved_disks参数为6，则在调度挂载云硬盘的工作负载时，实际上节点可挂载的云硬盘为20-6=14。预留的6个挂盘数中，除去节点上已挂载的1块系统盘和1块数据盘后，还可以自定义挂载4块云硬盘，可以作为额外的数据盘或者作为裸盘用于创建本地存储池。该场景下，如果集群中需要调度18个挂载1块云硬盘的工作负载实例，则该节点最多可调度14个实例，剩余4个工作负载实例会调度到其他节点，不会出现节点存储无法挂载的情况。
