第 5 章 使用同一集群中的多个设备类扩展存储进行本地存储


OpenShift Data Foundation 支持为同一集群中的 OSD 创建多个设备类。您创建的附加设备类可让您:

  • 在同一节点上使用不同类型的磁盘
  • 在同一个节点或不同节点上使用相同的类型磁盘的不同大小
  • 将同一类型的磁盘隔离到不同的节点集合
  • 使用与存储区域网络(SAN)不同的资源,如本地磁盘和逻辑单元号(LUN)

要在同一集群中创建多个设备类,您需要执行以下步骤:

  1. 添加磁盘

    附加一个唯一标识同一节点或新节点上设定的本地卷的新磁盘。

    注意

    在添加磁盘前,请确保修改现有本地卷集的 maxSizeDisksFilter 参数,因此它不会消耗新创建的 PV。

  2. 创建新本地卷集
  3. 附加新存储

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
    Copy to Clipboard Toggle word wrap

    在本例中,在部署过程中创建的现有本地卷集 localblock 可能没有设置 maxSize。因此,为了确保新本地卷集消耗了值更高的新磁盘(130Gi),且不会与现有 localvolumeset 的限制,maxSize 限制设置为 120Gi。

  • 在创建新本地卷集时,设置唯一过滤器来识别磁盘,如不同的节点、不同的磁盘大小或不同类型的设置。
  • 添加新磁盘。例如,添加 3 个新的 SSD/NVME 磁盘,大小为 130Gi。

流程

  1. 从 OpenShift Web 控制台中点 Operators Installed Operators
  2. Project 下拉菜单中选择安装 Local Storage Operator 的项目。
  3. Local Storage
  4. Local Volume Sets 选项卡。
  5. Local Volume Sets 页面中,单击 Create Local Volume Set 按钮。
  6. Local Volume SetStorage Class 输入一个名称。

    默认情况下,存储类名称会出现本地卷集名称。您可以更改名称。

  7. Filter Disks 选择以下之一

    • 所有节点上的磁盘

      使用与所有节点上所选过滤器匹配的可用磁盘。

    • 所选节点上的磁盘

      仅在所选节点上使用与所选过滤器匹配的可用磁盘。

  8. 从可用 Disk Type 列表中,选择 SSD/NVMe
  9. 展开 Advanced 部分并设置以下选项:

    卷模式
    确保为卷模式选择了 Block。
    设备类型
    从下拉列表中选择一个或多个设备类型。
    磁盘大小
    为设备设置最小大小,以及需要包含的设备的最大可用大小。
    磁盘限制上限
    这表示节点上可以创建的 PV 数量上限。如果此字段留空,则为匹配节点上的所有可用磁盘创建 PV。
  10. Create
  11. 等待新本地卷集中的 PV 设置为 available。

验证步骤

  • 验证是否已创建本地卷集:

    $ oc get localvolumeset -n openshift-local-storage
    NAME           AGE
    localblock     16h
    localvolume2   43m
    Copy to Clipboard Toggle word wrap
  • 验证本地存储类

    oc get sc
    NAME                          PROVISIONER                             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    localblock                    kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  15h
    localvolume2                  kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  27m
    ocs-storagecluster-ceph-rbd   openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   15h
    [...]
    Copy to Clipboard Toggle word wrap
  • 通过等待它可用来验证 PV,且必须使用新的存储类 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 Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat