配置 NetApp HCI 或 SolidFire 后端
了解如何在 Astra Trident 安装中创建和使用 Element 后端。
-
运行 Element 软件的受支持存储系统。
-
NetApp HCI/SolidFire 集群管理员或租户用户的凭据,可用于管理卷。
-
所有 Kubernetes 工作节点都应安装适当的 iSCSI 工具。请参见 "工作节点准备信息"。
solidfire-san
存储驱动程序支持两种卷模式: file 和 block 。对于 filesystem
volumemode , Astra Trident 将创建一个卷并创建一个文件系统。文件系统类型由 StorageClass 指定。
驱动程序 | 协议 | 卷模式 | 支持的访问模式 | 支持的文件系统 |
---|---|---|---|---|
|
iSCSI |
块 |
rwo , rox , rwx |
无文件系统。原始块设备。 |
|
iSCSI |
块 |
rwo , rox , rwx |
无文件系统。原始块设备。 |
|
iSCSI |
文件系统 |
工单, ROX |
|
|
iSCSI |
文件系统 |
工单, ROX |
|
Astra Trident 在用作增强型 CSI 配置程序时使用 CHAP 。如果您使用的是 CHAP (这是 CSI 的默认设置),则无需进行进一步准备。建议明确设置 UseCHAP 选项,以便对非 CSI Trident 使用 CHAP 。否则,请参见 "此处"。
|
只有适用于 Astra Trident 的传统非 CSI 框架才支持卷访问组。如果配置为在 CSI 模式下运行,则 Astra Trident 将使用 CHAP 。 |
如果未设置 AccessGroups
或 UseCHAP
,则适用以下规则之一:
-
如果检测到默认的
trident
访问组,则会使用访问组。 -
如果未检测到访问组,并且 Kubernetes 版本为 1.7 或更高版本,则会使用 CHAP 。
后端配置选项
有关后端配置选项,请参见下表:
参数 | Description | Default |
---|---|---|
|
始终为 1 |
|
|
存储驱动程序的名称 |
始终为 "solidfire-san" |
|
自定义名称或存储后端 |
SolidFire + 存储( iSCSI ) IP 地址 |
|
使用租户凭据的 SolidFire 集群的 MVIP |
|
|
存储( iSCSI ) IP 地址和端口 |
|
|
要应用于卷的一组任意 JSON 格式的标签。 |
" |
|
要使用的租户名称(如果未找到,则创建) |
|
|
将 iSCSI 流量限制为特定主机接口 |
default |
|
使用 CHAP 对 iSCSI 进行身份验证 |
true |
|
要使用的访问组 ID 列表 |
查找名为 "trident " 的访问组的 ID |
|
QoS 规范 |
|
|
如果请求的卷大小超过此值,则配置失败 |
" (默认情况下不强制实施) |
|
故障排除时要使用的调试标志。示例 { "api" : false , "method " : true } |
空 |
请勿使用 debugTraceFlags ,除非您正在进行故障排除并需要详细的日志转储。
|
对于创建的所有卷, Astra Trident 会在配置存储池时将存储池上的所有标签复制到备用存储 LUN 。存储管理员可以为每个存储池定义标签,并对存储池中创建的所有卷进行分组。这样,您就可以根据后端配置中提供的一组可自定义标签来方便地区分卷了。 |
示例1:的后端配置 solidfire-san
具有三种卷类型的驱动程序
此示例显示了一个后端文件,该文件使用 CHAP 身份验证并使用特定 QoS 保证对三种卷类型进行建模。然后,您很可能会使用 IOPS
storage class 参数定义存储类以使用其中的每种类型。
{ "version": 1, "storageDriverName": "solidfire-san", "Endpoint": "https://<user>:<password>@<mvip>/json-rpc/8.0", "SVIP": "<svip>:3260", "TenantName": "<tenant>", "labels": {"k8scluster": "dev1", "backend": "dev1-element-cluster"}, "UseCHAP": true, "Types": [{"Type": "Bronze", "Qos": {"minIOPS": 1000, "maxIOPS": 2000, "burstIOPS": 4000}}, {"Type": "Silver", "Qos": {"minIOPS": 4000, "maxIOPS": 6000, "burstIOPS": 8000}}, {"Type": "Gold", "Qos": {"minIOPS": 6000, "maxIOPS": 8000, "burstIOPS": 10000}}] }
示例2:的后端和存储类配置 solidfire-san
具有虚拟存储池的驱动程序
此示例显示了使用虚拟存储池配置的后端定义文件以及引用这些池的 StorageClasses 。
在下面所示的示例后端定义文件中,为所有存储池设置了特定的默认值,即将 type
设置为 Silver 。虚拟存储池在 s存储
部分中进行定义。在此示例中,某些存储池设置了自己的类型,而某些池将覆盖上述默认值。
{ "version": 1, "storageDriverName": "solidfire-san", "Endpoint": "https://<user>:<password>@<mvip>/json-rpc/8.0", "SVIP": "<svip>:3260", "TenantName": "<tenant>", "UseCHAP": true, "Types": [{"Type": "Bronze", "Qos": {"minIOPS": 1000, "maxIOPS": 2000, "burstIOPS": 4000}}, {"Type": "Silver", "Qos": {"minIOPS": 4000, "maxIOPS": 6000, "burstIOPS": 8000}}, {"Type": "Gold", "Qos": {"minIOPS": 6000, "maxIOPS": 8000, "burstIOPS": 10000}}], "type": "Silver", "labels":{"store":"solidfire", "k8scluster": "dev-1-cluster"}, "region": "us-east-1", "storage": [ { "labels":{"performance":"gold", "cost":"4"}, "zone":"us-east-1a", "type":"Gold" }, { "labels":{"performance":"silver", "cost":"3"}, "zone":"us-east-1b", "type":"Silver" }, { "labels":{"performance":"bronze", "cost":"2"}, "zone":"us-east-1c", "type":"Bronze" }, { "labels":{"performance":"silver", "cost":"1"}, "zone":"us-east-1d" } ] }
以下 StorageClass 定义引用了上述虚拟存储池。使用 parameters.selector
字段,每个 StorageClass 都会调用可用于托管卷的虚拟池。卷将在选定虚拟池中定义各个方面。
第一个 StorageClass ( solidfire-gold-四
)将映射到第一个虚拟存储池。这是唯一一个性能卓越的池,其 卷类型 QoS
值为金牌。最后一个 StorageClass ( solidfire-silver
)调用可提供银牌性能的任何存储池。Astra Trident 将决定选择哪个虚拟存储池,并确保满足存储要求。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: solidfire-gold-four provisioner: csi.trident.netapp.io parameters: selector: "performance=gold; cost=4" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: solidfire-silver-three provisioner: csi.trident.netapp.io parameters: selector: "performance=silver; cost=3" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: solidfire-bronze-two provisioner: csi.trident.netapp.io parameters: selector: "performance=bronze; cost=2" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: solidfire-silver-one provisioner: csi.trident.netapp.io parameters: selector: "performance=silver; cost=1" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: solidfire-silver provisioner: csi.trident.netapp.io parameters: selector: "performance=silver" fsType: "ext4"