第 5 章 使用同一集群中的多个设备类扩展存储进行本地存储
OpenShift Data Foundation 支持为同一集群中的 OSD 创建多个设备类。您创建的附加设备类可让您:
- 在同一节点上使用不同类型的磁盘
- 在同一个节点或不同节点上使用相同的类型磁盘的不同大小
- 将同一类型的磁盘隔离到不同的节点集合
- 使用与存储区域网络(SAN)不同的资源,如本地磁盘和逻辑单元号(LUN)
要在同一集群中创建多个设备类,您需要执行以下步骤:
添加磁盘
附加一个唯一标识同一节点或新节点上设定的本地卷的新磁盘。
注意在添加磁盘前,请确保修改现有本地卷集的
maxSize
或DisksFilter
参数,因此它不会消耗新创建的 PV。- 创建新本地卷集
- 附加新存储
5.1. 创建新本地卷集 复制链接链接已复制到粘贴板!
当您要使用不同的大小相同的设备类型时,您可以使用这个步骤。
先决条件
确保修改现有本地卷集的
maxSize
参数localblock
,因此现有参数不会消耗新创建的 PV。例如:oc -n openshift-local-storage patch localvolumesets.local.storage.openshift.io localblock -n openshift-local-storage -p '{"spec": {"deviceInclusionSpec": {"maxSize": "120Gi"}}}' --type merge
$ oc -n openshift-local-storage patch localvolumesets.local.storage.openshift.io localblock -n openshift-local-storage -p '{"spec": {"deviceInclusionSpec": {"maxSize": "120Gi"}}}' --type merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,在部署过程中创建的现有本地卷集
localblock
可能没有设置maxSize
。因此,为了确保新本地卷集消耗了值更高的新磁盘(130Gi),且不会与现有 localvolumeset 的限制,maxSize
限制设置为 120Gi。- 在创建新本地卷集时,设置唯一过滤器来识别磁盘,如不同的节点、不同的磁盘大小或不同类型的设置。
- 添加新磁盘。例如,添加 3 个新的 SSD/NVME 磁盘,大小为 130Gi。
流程
-
从 OpenShift Web 控制台中点 Operators
Installed Operators。 - 从 Project 下拉菜单中选择安装 Local Storage Operator 的项目。
- 点 Local Storage。
- 点 Local Volume Sets 选项卡。
- 在 Local Volume Sets 页面中,单击 Create Local Volume Set 按钮。
为 Local Volume Set 和 Storage Class 输入一个名称。
默认情况下,存储类名称会出现本地卷集名称。您可以更改名称。
为 Filter Disks 选择以下之一 :
所有节点上的磁盘
使用与所有节点上所选过滤器匹配的可用磁盘。
所选节点上的磁盘
仅在所选节点上使用与所选过滤器匹配的可用磁盘。
-
从可用 Disk Type 列表中,选择
SSD/NVMe
。 展开 Advanced 部分并设置以下选项:
- 卷模式
- 确保为卷模式选择了 Block。
- 设备类型
- 从下拉列表中选择一个或多个设备类型。
- 磁盘大小
- 为设备设置最小大小,以及需要包含的设备的最大可用大小。
- 磁盘限制上限
- 这表示节点上可以创建的 PV 数量上限。如果此字段留空,则为匹配节点上的所有可用磁盘创建 PV。
- 点 Create。
- 等待新本地卷集中的 PV 设置为 available。
验证步骤
验证是否已创建本地卷集:
oc get localvolumeset -n openshift-local-storage
$ oc get localvolumeset -n openshift-local-storage NAME AGE localblock 16h localvolume2 43m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证本地存储类
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过等待它可用来验证 PV,且必须使用新的存储类
localvolume2
:例如:
oc get pv | grep localvolume2
$ oc get pv | grep localvolume2 local-pv-14c0b1d 130Gi RWO Delete Available localvolume2 <unset> 8m55s local-pv-41d0d077 130Gi RWO Delete Available localvolume2 <unset> 7m24s local-pv-6c57a345 130Gi RWO Delete Available localvolume2 <unset> 5m4s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow