这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
存储后端管理
后端是华为存储资源的抽象概念,每台华为存储设备可以通过租户/存储池/协议等特性抽象出多个后端资源,每个后端独立存在,其中定义了为Kubernetes集群供应持久卷时所需要的华为存储信息。
本章节用于描述使用oceanctl工具管理存储后端,包括后端的创建/查询/更新/删除操作
oceanctl工具说明
- 获取oceanctl工具,将oceanctl工具拷贝到环境目录下,例如(/usr/local/bin),且赋予可执行权限,oceanctl工具位于软件包/bin/oceanctl。
- oceanctl工具依赖kubectl(Kubernetes平台)或oc(OpenShift平台)命令,因此需要在可执行kubectl或oc命令的节点运行。
- 默认情况下,执行oceanctl命令的用户需要有/var/log目录的读写权限。如果没有该目录权限,可通过“–log-dir=/path/to/custom”指定有权限目录作为日志文件目录。
- oceanctl创建后端的命名空间默认为huawei-csi。
- oceanctl命令详细说明请参考oceanctl命令说明。
1 - 管理存储后端
本章节介绍如何创建存储后端,当前支持根据配置的后端yaml文件和导出的configmap.json文件两种方式创建后端。
如果通过新增后端yaml文件创建后端,请参考典型场景存储后端配置文件示例章节配置后端文件。
如果已存在导出的configmap.json文件,请参考创建存储后端章节创建存储后端。
1.1.1 - 典型场景存储后端配置文件示例
典型场景的backend配置请参考下列示例,详细的参数配置请参考存储后端配置项说明。
配置iSCSI协议类型的存储后端
如果要使用iSCSI协议类型,请确保在安装华为CSI前,主机上已安装iSCSI客户端,可通过检查主机依赖软件状态章节检查。如未安装iSCSI客户端,请在安装iSCSI客户端之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下:
kubectl delete pods -n huawei-csi -l app=huawei-csi-node
企业存储配置iSCSI协议类型的后端配置文件示例如下:
storage: "oceanstor-san"
name: "dorado-iscsi-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "iscsi"
portals:
- "192.168.128.120"
- "192.168.128.121"
maxClientThreads: "30"
分布式存储配置iSCSI协议类型的后端配置文件示例如下:
storage: "fusionstorage-san"
name: "pacific-iscsi-125"
namespace: "huawei-csi"
urls:
- "https://192.168.129.125:8088"
- "https://192.168.129.126:8088"
pools:
- "StoragePool001"
parameters:
protocol: "iscsi"
portals:
- "192.168.128.122"
- "192.168.128.123"
maxClientThreads: "30"
配置FC协议类型的存储后端
如果要使用FC协议类型,请确保在安装华为CSI前,主机和存储的FC网络已联通,如未FC网络未打通,请在打通FC网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下:
kubectl delete pods -n huawei-csi -l app=huawei-csi-node
企业存储配置FC协议类型的后端配置文件示例如下:
storage: "oceanstor-san"
name: "fc-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "fc"
maxClientThreads: "30"
配置NVMe over RoCE协议类型的存储后端
如果要使用NVMe over RoCE协议类型,请确保在安装华为CSI前,主机和存储的NVMe over RoCE网络已联通,如未NVMe over RoCE网络未打通,请在打通NVMe over RoCE网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下:
kubectl delete pods -n huawei-csi -l app=huawei-csi-node
企业存储配置NVMe over RoCE协议类型的后端配置文件示例如下:
storage: "oceanstor-san"
name: "roce-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "roce"
portals:
- "192.168.128.120"
- "192.168.128.121"
maxClientThreads: "30"
配置NVMe over FC协议类型的存储后端
企业存储配置NVMe over FC协议类型的后端配置文件示例如下:
storage: "oceanstor-san"
name: "fc-nvme-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "fc-nvme"
maxClientThreads: "30"
配置NFS协议类型的存储后端
企业存储配置NFS协议类型的后端配置文件示例如下:
storage: "oceanstor-nas"
name: "nfs-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "nfs"
portals:
- "192.168.128.155"
maxClientThreads: "30"
分布式存储配置NFS协议类型的后端配置文件示例如下:
storage: "fusionstorage-nas"
name: "nfs-126"
namespace: "huawei-csi"
urls:
- "https://192.168.129.125:8088"
- "https://192.168.129.126:8088"
pools:
- "StoragePool001"
parameters:
protocol: "nfs"
portals:
- "192.168.128.123"
maxClientThreads: "30"
配置SCSI协议类型的存储后端
分布式存储配置SCSI协议类型的后端配置文件示例如下:
storage: "fusionstorage-san"
name: "scsi-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
pools:
- "StoragePool001"
parameters:
protocol: "scsi"
portals:
- {"hostname01": "192.168.125.21","hostname02": "192.168.125.22"}
maxClientThreads: "30"
配置DPC协议类型的存储后端
分布式存储配置DPC协议类型的后端配置文件示例如下:
storage: "fusionstorage-nas"
name: "dpc-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
parameters:
protocol: "dpc"
maxClientThreads: "30"
配置Dtree类型的存储后端
企业存储配置Dtree类型后端配置文件示例如下:
storage: "oceanstor-dtree"
name: "nfs-dtree"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
parameters:
protocol: "nfs"
parentname: "parent-filesystem"
portals:
- "192.168.128.155"
maxClientThreads: "30"
配置双活类型的存储后端
- 配置NAS双活前,需要在两台存储设备之间配置双活关系,包含远端设备、双活域等,仅支持文件系统双活域工作模式为双活AA模式,配置操作请参考对应存储型号的产品文档。
- 对接NAS双活后端的账号必须为存储租户的租户管理员账号。
- 除NAS双活后端外,其他后端的管理URL不能配置为在已建立双活关系的租户的逻辑管理端口的URL。
- 使用双活类型的存储后端时,请勿发放普通文件系统。否则,在逻辑端口漂移场景下,有业务中断的风险。
CSI支持在对接OceanStor或OceanStor Dorado,并在存储侧发放NFS类型的双活卷时。需要配置互为双活的存储后端,具体操作为分别创建两个配置文件,逐一创建后端。
本示例展示了如何为华为OceanStor或OceanStor Dorado存储配置双活类型的后端。首先创建本端的存储后端配置文件nfs-hypermetro-155.yaml:
storage: "oceanstor-nas"
name: "nfs-hypermetro-155"
namespace: "huawei-csi"
urls:
- "https://192.168.129.155:8088"
- "https://192.168.129.156:8088"
pools:
- "StoragePool001"
metrovStorePairID: "f09838237b93c000"
metroBackend: "nfs-hypermetro-157"
parameters:
protocol: "nfs"
portals:
- "192.168.129.155"
maxClientThreads: "30"
创建本端后端完成后,创建远端的存储后端配置文件nfs-hypermetro-157.yaml:
storage: "oceanstor-nas"
name: "nfs-hypermetro-157"
namespace: "huawei-csi"
urls:
- "https://192.168.129.157:8088"
- "https://192.168.129.158:8088"
pools:
- "StoragePool001"
metrovStorePairID: "f09838237b93c000"
metroBackend: "nfs-hypermetro-155"
parameters:
protocol: "nfs"
portals:
- "192.168.129.157"
maxClientThreads: "30"
1.1.2 - 存储后端配置项说明
后端配置文件样例模板为/examples/backend/backend.yaml,该文件为一个示例文件,具体配置项如下表所示:
表 1 backend配置项说明
参数 | 描述 | 必选参数 | 默认值 | 备注 |
---|
storage | 存储服务类型。 - 企业存储提供SAN存储时填写oceanstor-san。
- 企业存储提供NAS存储时填写oceanstor-nas。
- 企业存储提供Dtree类型的NAS存储时填写oceanstor-dtree。
- 分布式存储提供SAN存储时填写fusionstorage-san。
- 分布式存储提供NAS存储时填写fusionstorage-nas。
| 是 | oceanstor-nas | 一个后端只允许提供一种存储服务。如果单套华为存储系统可以同时提供SAN和NAS的存储服务时,可以配置创建多个后端,每个后端使用不同的存储服务类型。 |
name | 存储后端名称。支持小写字母、数字和特殊字符"-",且需要以字母或数字开头,最多63个字符。 | 是 | - | 请保证存储后端名称唯一。 |
namespace | 命名空间。 | 否 | - | 存储后端必须与华为CSI在相同的命名空间中。 |
vstoreName | 存储侧的租户名称。当对接后端是OceanStor V5存储,需要在指定租户下发放资源时,需要指定该参数。 | 条件必选 | - | 仅对接后端是OceanStor V5且需要支持租户时,需要指定该参数。 |
accountName | 存储侧的账户名称。当对接资源是OceanStor Pacific NAS存储,需要在指定账户下发放NAS资源时,需要指定该参数。 | 条件必选 | - | 仅对接后端是OceanStor Pacific NAS存储且需要支持账号时,需要指定该参数。 |
urls | 存储设备的管理URL。参数格式为列表。支持按照域名或者IP+端口的方式进行配置。仅支持IPv4。 | 是 | - | 当对接后端是OceanStor或OceanStor Dorado存储,需要在指定租户下发放资源时,该参数配置为指定租户的逻辑管理端口URL。 |
pools | 存储设备的存储池。参数格式为列表。 | 条件必选 | - | storage为oceanstor-dtree时, 可以不填。 |
parameters.protocol | 存储协议。参数格式为字符串。 - iscsi
- fc
- roce
- fc-nvme
- nfs
- dpc
- scsi
| 是 | - | - 使用iscsi时,请确保对接的计算节点已安装iSCSI客户端。
- 使用nfs时,请确保对接的计算节点已安装NFS客户端工具。
- 使用fc-nvme/roce时,请确保对接的计算节点已安装nvme-cli工具,工具版本仅支持1.x且版本不低于1.9。
- 使用dpc时,请确保对接的计算节点已安装DPC客户端,并已在待接入存储上添加为DPC计算节点。
- 使用scsi时,请确保对接的计算节点已安装分布式存储VBS客户端。
|
parameters.portals | 业务访问端口。节点会使用该端口对存储资源进行读写访问。参数格式为一个列表 iscsi,roce协议支持配置多个端口,nfs协议仅支持配置一个端口,fc、fc-nvme、dpc协议无需配置业务端口,scsi协议的端口形式为字典格式,key为主机名称,value为IP地址,仅支持IPv4。 | 条件必选 | - | - 使用租户/账户对接后端时,此时portals必须配置为租户/账户所拥有的逻辑端口信息。
- 如果使用nfs协议,支持填写为域名地址。
|
parameters.ALUA | 存储后端ALUA参数配置。当工作节点使用操作系统原生多路径,且启用了ALUA时,需要进行配置。 | 条件必选 | - | 如果主机多路径配置启用了ALUA,请确保后端ALUA配置和主机的ALUA配置一致。 ALUA详细配置请参考通过Helm配置ALUA特性。 |
parameters.parentname | 当前存储上的某一个文件系统名称,在此文件系统下创建Dtree。 storage为oceanstor-dtree时必选。 | 条件必选 | - | 请到DeviceManager文件系统界面查询。 |
metrovStorePairID | 双活租户Pair ID。 当需要创建PV在存储侧支持NAS双活特性时,该字段必填。此时需要填入待创建的PV所归属的存储侧双活租户Pair ID。 | 条件必选 | - | 双活租户Pair ID请到DeviceManager界面查询。 |
metroBackend | 双活对端的后端名称。参数格式为字符串。 当需要创建PV在存储侧支持NAS双活特性时,该字段必填。此时需要填入准备和当前后端组成双活的另一个后端名称。 | 条件必选 | - | 组对的两个后端都必须将对方名称填入。这两个后端组成双活关系后,不允许再和其他后端组成双活关系。 |
supportedTopologies | 存储拓扑感知配置。参数格式为列表类型的JSON。 | 条件必选 | - | 如果启用存储拓扑感知,需要配置该参数。具体请参考通过Helm配置存储拓扑感知。 |
maxClientThreads | 同时连接到存储后端的最大连接数。 | 否 | 30 | 如果不配置该参数,则默认最大连接数为30。 |
1.2 - 查询存储后端
请参考查询存储后端节,使用oceanctl命令查询存储后端信息。
2 - 新增证书到存储后端(可选)
本章节介绍如何创建证书到存储后端,如果有对服务登录存储添加证书校验的需要,可以参考本章节新增证书,当前支持根据crt文件或者pem文件创建证书到存储后端。
创建证书到存储后端前,须提前将准备好的证书导入存储阵列。
2.1 - 创建证书到存储后端
前提条件
完成证书制作。以OceanStor Dorado为例,证书制作过程请参考:点此前往。
创建证书示例
提前准备好证书文件,如cert.crt。
执行以下命令获取存储后端。
命令结果示例如下。
NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL
huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088
huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088
执行以下命令为指定存储后端创建证书。
oceanctl create cert cert-1 -b backend-1 -f /path/to/cert.crt
检查证书创建结果。
oceanctl get cert -b backend-1
命令结果示例如下。
NAMESPACE NAME BOUNDBACKEND
huawei-csi cert-1 backend-1
2.2 - 查询存储后端证书
请根据查询存储后端证书所示命令对存储后端证书进行查询。
2.3 - 更新存储后端证书
更新证书前请准备好新的证书文件,并参考本章节更新存储后端证书。如果不再使用证书,请参考删除存储后端证书章节移除存储后端上的证书。
更新证书步骤
执行以下命令获取存储后端。
命令结果示例如下。
NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL
huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088
huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088
执行以下命令查看指定存储后端是否存在证书。
oceanctl get cert -b backend-1
命令结果示例如下。
NAMESPACE NAME BOUNDBACKEND
huawei-csi cert-1 backend-1
执行以下命令更新指定存储后端的证书。
oceanctl update cert -b backend-1 -f /path/to/cert.crt