纳管持久卷
纳管卷供应(Manage Volume Provisioning)允许管理员使用已经在存储侧创建的资源做为PV,并能够支持动态卷的特性,例如:扩容,快照,克隆等,属于华为CSI自定义能力。使用该特性可满足如下场景:
- 容器化应用的改造场景,需要使用已有的存储卷。
- 重建Kubernetes集群。
- 容灾场景下,对存储数据进行迁移。
纳管卷供应支持将已有存储资源纳管至Kubernetes,不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。 当同一个存储资源被多个集群纳管时,在单个集群中针对该纳管卷的操作仅在当前集群内生效,不会同步到其他集群中,需要使用者自行在其他集群中对该纳管卷进行数据同步操作。 例如:在某一集群中对PVC进行扩容时,其他集群对应的PVC不会自动扩容,需要在其他集群中手动根据 扩容持久卷 中的扩容命令进行扩容。
配置说明
请根据以下步骤纳管使用持久卷:
前置准备
- 已在CSI中注册需要纳管卷所在存储。
- 已登录存储设备获取需要纳管卷的名称和容量。
- 已完成StorageClass的配置,参考 配置存储类 (关注表格中的“纳管卷是否生效”字段)。
配置PVC
准备PVC配置文件mypvc.yaml,示例如下,其他配置参数请参考 表1 。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mypvc annotations: csi.huawei.com/manageVolumeName: "*" # 存储资源名称 csi.huawei.com/manageBackendName: "*" # 存储后端名称 labels: provisioner: csi.huawei.com spec: accessModes: - ReadWriteOnce volumeMode: Filesystem storageClassName: mysc resources: requests: storage: 100Gi
执行命令,使用配置文件创建PVC。
kubectl create -f mypvc.yaml
等待一段时间后,执行以下命令,查看已经创建的PVC信息。
kubectl get pvc mypvc
命令结果示例如下,如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s
- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考 创建PVC时, PVC的状态为Pending 。
- 建议每批次最多批量创建/删除100个PVC。
表 1 纳管持久卷PVC参数说明
| csi.huawei.com/manageVolumeName: * csi.huawei.com/manageBackendName: * |
| ||
以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。 | ||||
卷模式。可选参数。 当使用LUN类型的卷时,支持配置以下类型:
|
| |||
PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。 | ||||
|
|
使用PVC
与动态卷供应 使用PVC 方式相同。