这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

海量存储(FusionStorage Block/OceanStor Pacific系列)

1 - 文件系统

创建存储类

  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
    

NFS协议配置示例

容器使用NFS协议对接文件系统资源时,可以参考如下存储类配置示例。该示例中,NFS挂载时指定版本为4.1。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  backend: nfs-nas-181
  pool: pool001
  volumeType: fs
  allocType: thin
  authClient: "*"
mountOptions:
  - nfsvers=4.1 # NFS挂载时指定版本为4.1

DPC协议配置示例

存储支持DPC协议访问时,可以在StorageClass中配置DPC访问的挂载参数。本例中设置挂载时使用“acl”做鉴权参数,使用“cnflush”为设置异步刷盘模式。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  backend: nfs-dpc-101
  pool: pool001
  volumeType: fs
  allocType: thin
mountOptions:
  - acl # 鉴权参数
  - cnflush # 设置异步刷盘模式

文件系统支持的存储类参数详细说明

表 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时不会删除存储上的资源。

allowVolumeExpansion

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

false

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

mountOptions

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

-

常见的mountOptions参数参考表2

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

parameters.backend

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

条件必选

-

如果不设置,华为CSI随机选择一个满足容量要求的后端创建资源。

建议指定后端,确保创建的资源在预期的后端上。

parameters.pool

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

-

如果不设置,华为CSI会在所选后端上随机选择一个满足容量要求的存储池创建资源。建议指定存储池,确保创建的资源在预期的存储池上。

parameters.volumeType

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

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

-

此处固定配置为fs。

parameters.allocType

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

  • thin:创建时不会分配所有需要的空间,而是根据使用情况动态分配。
  • thick:创建时分配所有需要的空间。

thin

配置为thin时,创建卷不会立即分配所有需要的空间,而是根据使用情况动态分配。

parameters.authClient

可访问该卷的NFS客户端IP地址信息。在使用nfs协议时必选。

支持输入客户端主机名称(建议使用全称域名)、客户端IP地址、客户端IP地址段。

条件必选

-

可以使用“*”表示任意客户端。当您不确定访问客户端IP信息时,建议使用“*”防止客户端访问被存储拒绝。

当使用客户端主机名称时建议使用全称域名。

IP地址支持IPv4、IPv6地址或两者的混合IP地址。

可以同时输入多个主机名称、IP地址或IP地址段,以英文分号隔开。如示例:"192.168.0.10;192.168.0.0/24;myserver1.test"

parameters.storageQuota

文件系统配额设置。

配置项值是字典格式的JSON字符串(字符串两边由单引号修饰,字典key由双引号修饰)。如:'{"spaceQuota": "softQuota", "gracePeriod": 100}'

-

支持的配额配置请参考表4说明。

parameters.qos

PV在存储侧的文件系统的QoS设置。

配置项值是字典格式的JSON字符串(字符串两边由单引号修饰,字典key由双引号修饰)。如:'{"maxMBPS": 999, "maxIOPS": 999}'

-

支持的QoS配置请参考表3说明。

parameters.fsPermission

挂载到容器内的目录权限。

-

配置格式参考Linux权限设置,如“777”、“755”等。

parameters.rootSquash

用于设置是否允许客户端的root权限。

可选值:

  • root_squash:表示不允许客户端以root用户访问,客户端使用root用户访问时映射为匿名用户。
  • no_root_squash:表示允许客户端以root用户访问,保留root用户的权限。

-

  

parameters.allSquash

用于设置是否保留共享目录的UID和GID。

可选值:

  • all_squash:表示共享目录的UID和GID映射为匿名用户。
  • no_all_squash:表示保留共享目录的UID和GID。

-

  

parameters.snapshotDirectoryVisibility

用于设置快照目录是否可见。

可选值:

  • visible:表示快照目录可见。
  • invisible:表示快照目录不可见。

-

  

parameters.disableVerifyCapacity

是否禁用卷容量校验,禁用后将不校验卷容量是否为扇区大小整数倍。

可选值:

  • "true": 禁用卷容量校验。
  • "false": 开启卷容量校验。
须知:

使用Red Hat OpenShift Virtualization对接CSI时,该参数必须设置为"true"。

"true"

OceanStor Pacific NAS的扇区大小为1 KB。

表 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。

mountOptions.proto

指定NFS挂载时使用的传输协议。

支持配置参数值为:“rdma”。

-

仅8.2.0及以后版本支持。

mountOptions.port

指定NFS挂载时使用的协议端口

条件必选

-

传输协议方式使用“rdma”时,请设置为:20049。

mountOptions.acl

DPC命名空间支持ACL功能。DPC客户端支持POSIX ACL、NFSv4 ACL、NT ACL的鉴权行为。

-

acl、aclonlyposix、cnflush、cflush参数描述仅供参考,详细参数说明请参考《OceanStor Pacific系列 产品文档》 > 配置 > 文件服务基础业务配置指南 > 配置基础业务(DPC场景) > 客户端访问DPC共享 > 步骤2。

mountOptions.aclonlyposix

DPC命名空间支持POSIX ACL功能,DPC客户端支持POSIX ACL的鉴权行为。

支持POSIX ACL的协议有:DPC、NFSv3、HDFS。如使用NFSv4 ACL或NT ACL,会导致DPC客户端无法识别该类型的ACL,从而导致该类型的ACL不会生效。

-

aclonlyposix与acl参数同时使用时,仅acl参数生效,即命名空间支持ACL功能。

mountOptions.cnflush

异步刷盘模式,即关闭命名空间下的文件时不会立即刷盘。

-

异步刷盘模式,当文件关闭时不会同步将Cache的数据持久化到存储介质中,而是通过Cache异步刷盘的方式将数据写入存储介质,Cache的后台刷盘将在写业务完成后根据刷盘周期定时刷盘。在多客户端场景下,对同一文件进行并行操作,文件Size的更新会受刷盘周期的影响,即当刷盘动作完成后才会更新文件的Size,更新通常会在数秒内完成。同步I/O不受刷盘周期影响。

mountOptions.cflush

同步刷盘模式,即关闭命名空间下的文件时立即刷盘。

-

默认使用同步刷盘模式。

表 3 支持的QoS配置

参数名

参数描述

备注

maxMBPS

最大带宽限制策略。

必填。有效值为大于0的整数,单位MB/s。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824。

maxIOPS

最大IOPS限制策略。

必填。有效值为大于0的整数。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824000。

表 4 支持的配额配置

参数名

参数描述

备注

spaceQuota

文件配额类型。

必选。仅支持配置“softQuota”或者“hardQuota”

gracePeriod

配置软配额时,允许的超限天数。

条件可选,当“spaceQuota”配置为“softQuota”时可选。

类型为整数,支持范围为0~4294967294。

2 - Dtree

创建存储类

  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
    

NFS协议支持的存储类配置示例

容器使用NFS协议对接Dtree资源时,可以参考如下存储类配置示例。该示例中,NFS挂载时指定版本为4.1。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  backend: nfs-dtree-181
  parentname: parent-filesystem-name
  volumeType: dtree
  allocType: thin
  authClient: "*"
mountOptions:
  - nfsvers=4.1 # NFS挂载时指定版本为4.1

DPC协议支持的存储类配置示例

容器使用DPC协议对接Dtree资源时,可以参考如下存储类配置示例。本例中设置挂载时使用“acl”做鉴权参数,使用“cnflush”为设置异步刷盘模式。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  backend: nfs-dtree-181
  parentname: parent-filesystem-name
  volumeType: dtree
  allocType: thin
  authClient: "*"
mountOptions:
  - acl # 鉴权参数
  - cnflush # 设置异步刷盘模式

Dtree支持的存储类参数详细说明

表 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时不会删除存储上的资源。

allowVolumeExpansion

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

false

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

mountOptions

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

-

常见的mountOptions参数参考表2

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

parameters.backend

待创建资源所在的后端名称。

条件必选

-

如果不设置,华为CSI随机选择一个满足容量要求的后端创建资源。

建议指定后端,确保创建的资源在预期的后端上。

配置了parameters.parentname时,该参数必填。

parameters.parentname

当前存储上的某一个文件系统名称,在此文件系统下创建Dtree。

条件必选

-

当backend未配置parentname时,该参数必填。

若仅在StorageClass中配置了parentname,而存储后端中未配置时,要求在安装CSI时将CSIDriverObject.attachRequired设置为true。

parameters.volumeName

指定动态卷供应创建的存储资源名称。

支持配置占位符对存储资源名称进行自定义,支持的占位符如下:

  • PVC命名空间:{{ .PVCNamespace }}
  • PVC名称:{{ .PVCName }}

-

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

配置示例:

PVC命名空间为:"namespace",PVC名称为:"pvc-1",PVC UID:"c2fd3f46-bf17-4a7d-b88e-2e3232bae434"。

volumeName配置为: "prefix-{{ .PVCNamespace }}_{{ .PVCName }}"。

最终存储资源名称为:"prefix-namespace_pvc-1-c2fd3f46bf174a7db88e2e3232bae434"。

parameters.volumeType

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

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

-

使用Dtree时,必须为dtree。

parameters.authClient

可访问该卷的NFS客户端IP地址信息。

支持输入客户端主机名称(建议使用全称域名)、客户端IP地址、客户端IP地址段。

必选

-

可以使用“*”表示任意客户端。当您不确定访问客户端IP信息时,建议使用“*”防止客户端访问被存储拒绝。

当使用客户端主机名称时建议使用全称域名。

IP地址支持IPv4、IPv6地址或两者的混合IP地址。

可以同时输入多个主机名称、IP地址或IP地址段,以英文分号隔开。如示例:"192.168.0.10;192.168.0.0/24;myserver1.test"

parameters.fsPermission

挂载到容器内的目录权限。

-

配置格式参考Linux权限设置,如“777”、“755”等。

parameters.rootSquash

用于设置是否允许客户端的root权限。

可选值:

  • root_squash:表示不允许客户端以root用户访问,客户端使用root用户访问时映射为匿名用户。
  • no_root_squash:表示允许客户端以root用户访问,保留root用户的权限。

-

  

parameters.allSquash

用于设置是否保留共享目录的UID和GID。

可选值:

  • all_squash:表示共享目录的UID和GID映射为匿名用户。
  • no_all_squash:表示保留共享目录的UID和GID。

-

  

parameters.disableVerifyCapacity

是否禁用卷容量校验,禁用后将不校验卷容量是否为扇区大小整数倍。

可选值:

  • "true": 禁用卷容量校验。
  • "false": 开启卷容量校验。
须知:

使用Red Hat OpenShift Virtualization对接CSI时,该参数必须设置为"true"。

"true"

OceanStor Pacific Dtree的扇区大小为1 B。

表 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。

mountOptions.proto

指定NFS挂载时使用的传输协议。

支持配置参数值为:“rdma”。

-

仅8.2.0及以后版本支持。

mountOptions.port

指定NFS挂载时使用的协议端口

条件必选

-

传输协议方式使用“rdma”时,请设置为:20049。

mountOptions.acl

DPC命名空间支持ACL功能。DPC客户端支持POSIX ACL、NFSv4 ACL、NT ACL的鉴权行为。

-

acl、aclonlyposix、cnflush、cflush参数描述仅供参考,详细参数说明请参考《OceanStor Pacific系列 产品文档》 > 配置 > 文件服务基础业务配置指南 > 配置基础业务(DPC场景) > 客户端访问DPC共享 > 步骤2。

mountOptions.aclonlyposix

DPC命名空间支持POSIX ACL功能,DPC客户端支持POSIX ACL的鉴权行为。

支持POSIX ACL的协议有:DPC、NFSv3、HDFS。如使用NFSv4 ACL或NT ACL,会导致DPC客户端无法识别该类型的ACL,从而导致该类型的ACL不会生效。

-

aclonlyposix与acl参数同时使用时,仅acl参数生效,即命名空间支持ACL功能。

mountOptions.cnflush

异步刷盘模式,即关闭命名空间下的文件时不会立即刷盘。

-

异步刷盘模式,当文件关闭时不会同步将Cache的数据持久化到存储介质中,而是通过Cache异步刷盘的方式将数据写入存储介质,Cache的后台刷盘将在写业务完成后根据刷盘周期定时刷盘。在多客户端场景下,对同一文件进行并行操作,文件Size的更新会受刷盘周期的影响,即当刷盘动作完成后才会更新文件的Size,更新通常会在数秒内完成。同步I/O不受刷盘周期影响。

mountOptions.cflush

同步刷盘模式,即关闭命名空间下的文件时立即刷盘。

-

默认使用同步刷盘模式。

3 - 块业务

创建存储类

  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
    

块业务存储类配置示例

使用LUN作为存储资源时,且需要格式化文件系统为本地文件系统时,可以参考如下示例。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  backend: lun-181
  pool: StoragePool001
  volumeType: lun
  allocType: thin
  fsType: ext4

块业务支持的存储类参数详细说明

表 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时不会删除存储上的资源。

allowVolumeExpansion

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

false

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

mountOptions

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

-

常见的mountOptions参数参考表2

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

parameters.backend

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

条件必选

-

如果不设置,华为CSI随机选择一个满足容量要求的后端创建资源。

建议指定后端,确保创建的资源在预期的后端上。

parameters.pool

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

-

如果不设置,华为CSI会在所选后端上随机选择一个满足容量要求的存储池创建资源。建议指定存储池,确保创建的资源在预期的存储池上。

parameters.volumeType

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

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

-

此处固定配置为lun。

parameters.allocType

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

  • thin:创建时不会分配所有需要的空间,而是根据使用情况动态分配。
  • thick:创建时分配所有需要的空间。

thin

配置为thin时,创建卷不会立即分配所有需要的空间,而是根据使用情况动态分配。

parameters.fsType

主机文件系统类型。支持类型为:

  • ext2
  • ext3
  • ext4
  • xfs

ext4

仅当PVC的volumeMode配置为“Filesystem”时生效。

parameters.qos

PV在存储侧的LUN/NAS的QoS设置。

配置项值是字典格式的JSON字符串(字符串两边由单引号修饰,字典key由双引号修饰)。如:'{"maxMBPS": 999, "maxIOPS": 999}'

-

支持的QoS配置请参考表3说明。

parameters.fsPermission

挂载到容器内的目录权限。

-

配置格式参考Linux权限设置,如“777”、“755”等。

parameters.disableVerifyCapacity

是否禁用卷容量校验,禁用后将不校验卷容量是否为扇区大小整数倍。

可选值:

  • "true": 禁用卷容量校验。
  • "false": 开启卷容量校验。
须知:

使用Red Hat OpenShift Virtualization对接CSI时,该参数必须设置为"true"。

"true"

OceanStor Pacific SAN的扇区大小为1 MiB。

表 2 常用mountOptions参数说明

参数

说明

必选参数

默认值

备注

mountOptions.discard

挂载文件系统时自动触发Trim/Discard操作。该操作会通知块设备释放未使用的块

-

支持xfs、ext4文件系统。

表 3 支持的QoS配置

参数名

参数描述

备注

maxMBPS

最大带宽限制策略。

必填。有效值为大于0的整数,单位MB/s。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824。

maxIOPS

最大IOPS限制策略。

必填。有效值为大于0的整数。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824000。