本地文件系统

创建存储类

  1. 准备存储类配置文件,如本例中的mysc.yaml文件,存储类配置请参考下方示例文件。

  2. 执行命令,使用配置文件创建StorageClass。

    kubectl apply -f mysc.yaml
    
  3. 执行命令,查看已创建的StorageClass信息。

    kubectl get sc mysc
    

    命令结果示例如下:

    NAME   PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    mysc   csi.huawei.com   Delete          Immediate           true                   8s
    

KVCache配置示例

当容器使用KVCache对接iMaster DME本地文件系统,且存储支持KVCache功能时,可以参考如下配置示例。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: kvcache-nas-sc
provisioner: csi.huawei.com
reclaimPolicy: Delete
parameters:
  backend: dme-a800-backend
  pool: StoragePool001
  zoneVstoreName: System_vstore
  volumeType: fs
  enableKVCache: "true"
  enableTimeAwareGc: "true"
  gcTimeThreshold: "30"
  disableVerifyCapacity: "true"
mountOptions:
  - nfsvers=3 # NFS挂载时指定版本为3

表 1 StorageClass配置参数说明

参数

说明

必选参数

默认值

纳管卷是否生效

备注

metadata.name

自定义的 StorageClass 对象名称

是

-

是

以 Kubernetes v1.22.1 为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾

provisioner

制备器名称

是

csi.huawei.com

是

该字段需要指定为安装华为 CSI 时设置的驱动名称。取值和 values.yaml 文件中 driverName 一致

reclaimPolicy

回收策略。支持如下类型:Delete:自动回收资源;Retain:手动回收资源

否

Delete

是

Delete:删除 PV/PVC 时会关联删除存储上的资源。Retain:删除 PV/PVC 时不会删除存储上的资源。注意!删除 KVCache 资源会连同文件系统共享一起删除

allowVolumeExpansion

是否允许卷扩展。参数设置为 true 时,使用该 StorageClass 的 PV 可以进行扩容操作

否

false

是

此功能仅可用于扩容 PV,不能用于缩容 PV

mountOptions

挂载参数列表,可用于指定主机执行 mount 命令时 -o 选项的参数

否

-

是

常见的mountOptions参数参考表2。

也可自行指定其他挂载参数。

parameters.backend

待创建资源所在的后端名称。如果设置 parameters.pool,则必须设置本字段

是

-

否

当前iMaster DME本地文件系统创建KVCache场景下,需要指定使用的backend。

parameters.pool

待创建资源所在的存储资源池名称

否

-

否

如果不设置,华为 CSI 会在所选后端上选择一个剩余容量最大的存储池创建资源。建议指定存储池,确保创建的资源在预期的存储池上

parameters.zoneVstoreName

存储设备的租户名。

否

System_vStore

否

仅在填入zoneSN场景下生效。在iMaster DME管理界面,选择"基础设施 > 存储设备 >系统 > 租户"。获取对应zone下的非全局租户名称。

parameters.volumeName

指定动态卷供应创建的存储资源名称。支持配置占位符对存储资源名称进行自定义,支持的占位符如下:PVC 命名空间:{{ .PVCNamespace }};PVC 名称:{{ .PVCName }}

否

-

否

支持配置字母、数字、"_"、"-",不能配置为空,生成的存储资源名称长度范围是 1-255。必须同时配置 PVC 命名空间和 PVC 名称。为了避免资源名称重复,会将 PVC UID 作为唯一标识符默认添加到名称末尾

parameters.volumeType

待创建卷类型。支持如下类型:

  • lun:存储侧发放的资源是LUN。
  • fs:存储侧发放的资源是文件系统。
  • dtree:存储侧发放的资源是Dtree类型的卷

是

-

是

使用文件业务必须配置为fs。

parameters.disableVerifyCapacity

是否禁用卷容量校验,禁用后将不校验卷容量是否为扇区大小整数倍。可选值:"true":禁用卷容量校验;"false":开启卷容量校验。使用 Red Hat OpenShift Virtualization 对接 CSI 时,该参数必须设置为 "true"

否

"true"

是

OceanStor A 系列的扇区大小为 512 B

parameters.description

用于配置创建的文件系统的描述信息。参数类型:字符串;长度限制:1-255

否

Created from Kubernetes CSI

否

  

parameters.enableKVCache

是否创建 KVCache 库。"false":关闭;"true":开启

是

"false"

否

当前场景创建单zone资源时必须配置为true

parameters.enableTimeAwareGc

是否启用 KVCache 主动清理。"false":关闭;"true":开启

否

"false"

否

无论配置为 "true" 还是 "false",后台均会在记忆库容量不足时清理 KVCache;配置为 "true" 时,后台会清理过期的 KVCache

parameters.gcTimeThreshold

KVCache 过期时间,范围 1-3650 天。示例 "1"

条件必选

-

否

当 parameters.enableTimeAwareGc 配置为 "true" 时,本参数必填

表 2 常用mountOptions参数说明

参数

说明

必选参数

默认值

备注

mountOptions.nfsvers

主机侧NFS挂载选项。支持如下挂载选项:

nfsvers:挂载NFS时的协议版本。支持配置的参数值为“3”,“4”,“4.0”,“4.1”和”4.2”。

否

-

在主机执行mount命令时-o参数后的可选选项。列表格式。

指定NFS版本挂载时,当前支持NFS 3/4.0/4.1/4.2协议(需存储设备支持且开启)。当配置参数为nfsvers=4时,因为操作系统配置的不同,实际挂载可能为NFS 4的最高版本协议,如4.2,当需要使用4.0协议时,建议配置nfsvers=4.0。