扩展存储

Red Hat OpenShift Container Storage 4.8

横向和纵向扩展选项

摘要

本文档解释了 Red Hat OpenShift Container Storage 扩展选项。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。如需了解更多详细信息,请参阅 CTO Chris Wright 信息

对红帽文档提供反馈

我们感谢您对文档提供反馈信息。请告诉我们如何让它更好。提供反馈:

  • 关于特定内容的简单评论:

    1. 请确定您使用 Multi-page HTML 格式查看文档。另外,确定 Feedback 按钮出现在文档页的右上方。
    2. 用鼠标指针高亮显示您想评论的文本部分。
    3. 点在高亮文本上弹出的 Add Feedback
    4. 按照显示的步骤操作。
  • 要提交更复杂的反馈,请创建一个 Bugzilla ticket:

    1. 进入 Bugzilla 网站。
    2. Component 部分中,选择 文档
    3. Description 中输入您要提供的信息。包括文档相关部分的链接。
    4. Submit Bug

前言

要将 OpenShift Container Storage 的存储容量扩展为内部模式,您可以执行以下操作之一:

  • 扩展存储节点 - 在现有 Red Hat OpenShift Container Storage worker 节点中添加存储容量
  • 扩展存储节点 - 添加包含存储容量的新 worker 节点

有关以外部模式扩展存储的信息,请参阅 Red Hat Ceph Storage 文档

第 1 章 扩展存储节点的要求

在继续扩展存储节点前,请参考以下部分以了解特定 Red Hat OpenShift Container Storage 实例的节点要求:

重要

始终确保您有大量的存储容量。

如果存储完全填满,则无法添加容量、删除内容或从存储中迁移内容来释放空间。当存储被完全占用时将很难恢复。

当集群存储容量达到总容量的 75%(接近满)和 85%(满)时,会发出容量警报。始终及时处理容量警告的信息,并定期检查您的存储以确保您不会耗尽存储空间。

如果您完全耗尽存储空间,请联系红帽客户支持。

1.1. Red Hat OpenShift Container Storage 支持的部署

  • 用户置备的基础架构:

    • Amazon Web Services (AWS)
    • VMware
    • 裸机
    • IBM Power 系统
    • IBM Z 或 LinuxONE
  • 安装程序置备的基础架构:

    • Amazon Web Services (AWS)
    • Microsoft Azure
    • Red Hat Virtualization
    • VMware

第 2 章 扩展存储容量

根据部署的类型,您可以选择以下步骤之一来扩展存储容量。

如果要使用部署期间置备的存储类进行扩展,还必须在扩展前定义额外的存储类。详情请参阅创建存储类

注意

OpenShift Container Storage 不支持异构 OSD 大小。

2.1. 创建存储类

您可以定义一个新的存储类来动态置备现有供应商的存储。

先决条件

  • 管理员访问 OpenShift Web 控制台.

步骤

  1. 登录 OpenShift Web 控制台。
  2. StorageStorage Classes
  3. Create Storage Class
  4. 输入存储类 NameDescription
  5. 选择所需的 Reclaim PolicyProvisioner
  6. Create 创建存储类。

验证步骤

  • StorageStorage Classes,验证您可以看到新的存储类。

2.2. 通过向 OpenShift Container Storage 节点添加容量来扩展存储

使用以下基础架构上配置的 Red Hat OpenShift Container Storage worker 节点添加存储容量和性能:

  • AWS
  • VMware vSphere
  • Red Hat Virtualization
  • Microsoft Azure

先决条件

  • 正在运行的 OpenShift 容器平台。
  • OpenShift Web 控制台的管理特权。
  • 要使用部署期间置备的存储类之外的存储类进行扩展,首先定义一个额外的存储类。详情请参阅创建存储类

步骤

  1. 登录 OpenShift Web 控制台。
  2. Operators → Installed Operators
  3. OpenShift Container Storage Operator。
  4. 单击 Storage Cluster 选项卡。
  5. 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
  6. 从选项菜单中选择 Add Capacity
  7. 选择 Storage Class

    如果您使用部署期间生成的默认存储类,在 AWS 上将存储类设置为 gp2,VMware 上为 thin,在 Red Hat Virtualization 上 ovirt-csi-sc,或 Microsoft Azure 上的 managed_premium。如果您已创建了其他存储类,请选择适当的选项。

    重要

    将非默认存储类用于您的供应商是一个技术预览功能。

    技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    如需更多信息,请参阅技术预览功能支持范围

    Raw Capacity 字段显示在存储类创建过程中设置的大小。所消耗的存储总量是这个大小的三倍,因为 OpenShift Container Storage 使用的副本数为 3。

  8. Add 并等待集群状态变为 Ready

验证步骤

  • 导航到 OverviewBlock and File 选项卡,然后检查 Raw Capacity 分类 卡。

    请注意,容量会根据您的选择而增加。

    注意

    原始容量不考虑复制并显示完整容量。

  • 验证新 OSD 及其对应的新 PVC 是否已创建。

    • 查看新创建的 OSD 的状态:

      1. 从 OpenShift Web 控制台点 WorkloadsPods
      2. Project 下拉列表中选择 openshift-storage
    • 查看 PVC 的状态:

      1. 从 OpenShift Web 控制台点 StoragePersistent Volume Claims
      2. Project 下拉列表中选择 openshift-storage
  • (可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。

    1. 识别运行新 OSD pod 的节点。

      $ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>

      例如:

      oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
    2. 对于上一步中确定的每个节点,请执行以下操作:

      1. 创建调试 pod,并为所选主机打开 chroot 环境。

        $ oc debug node/<node name>
        $ chroot /host
      2. 运行 "lsblk" 并检查 ocs-deviceset 名旁边的 "crypt" 关键字。

        $ lsblk

2.3. 使用本地存储设备为 OpenShift Container Storage 节点添加容量来扩展存储

使用这个步骤在以下基础架构上配置的基于 OpenShift Container Storage worker 节点的本地存储中添加存储容量(额外存储设备)。

  • 裸机
  • VMware
  • Red Hat Virtualization

先决条件

步骤

要添加容量,您可以使用部署期间置备的存储类或与过滤器匹配的其它存储类。

  1. 在 OpenShift Web 控制台中,点 OperatorsInstalled Operators
  2. OpenShift Container Storage Operator。
  3. 单击 Storage Cluster 选项卡。
  4. 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
  5. 从选项菜单中选择 Add Capacity
  6. 根据您的要求,选择您添加磁盘或新存储类的存储类。显示的可用容量基于存储类中可用的本地磁盘。
  7. 点击 Add

    您可能需要等待几分钟,以便存储集群达到 Ready 状态。

验证步骤

  • 导航到 OverviewBlock and File 选项卡,然后检查 Raw Capacity 分类 卡。

    请注意,容量会根据您的选择而增加。

    注意

    原始容量不考虑复制并显示完整容量。

  • 验证新 OSD 及其对应的新 PVC 是否已创建。

    • 查看新创建的 OSD 的状态:

      1. 从 OpenShift Web 控制台点 WorkloadsPods
      2. Project 下拉列表中选择 openshift-storage
    • 查看 PVC 的状态:

      1. 从 OpenShift Web 控制台点 StoragePersistent Volume Claims
      2. Project 下拉列表中选择 openshift-storage
  • (可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。

    1. 识别运行新 OSD pod 的节点。

      $ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>

      例如:

      oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
    2. 对于上一步中确定的每个节点,请执行以下操作:

      1. 创建调试 pod,并为所选主机打开 chroot 环境。

        $ oc debug node/<node name>
        $ chroot /host
      2. 运行 "lsblk" 并检查 ocs-deviceset 名旁边的 "crypt" 关键字。

        $ lsblk

2.4. 通过向 IBM Z 或 LinuxONE 基础架构的 OpenShift Container Storage 节点添加容量来扩展存储

使用这个流程为配置的 Red Hat OpenShift Container Storage worker 节点添加存储容量和性能。

先决条件

  • 正在运行的 OpenShift 容器平台。
  • OpenShift Web 控制台的管理特权。
  • 要使用部署期间置备的存储类之外的存储类进行扩展,首先定义一个额外的存储类。详情请参阅创建存储类

步骤

  1. 使用 zFCP 磁盘添加额外硬件资源

    1. 使用以下命令列出所有磁盘:

      $ lszdev

      输出示例:

      TYPE         ID                                              ON   PERS  NAMES
      zfcp-host    0.0.8204                                        yes  yes
      zfcp-lun     0.0.8204:0x102107630b1b5060:0x4001402900000000  yes  no    sda sg0
      zfcp-lun     0.0.8204:0x500407630c0b50a4:0x3002b03000000000  yes  yes   sdb sg1
      qeth         0.0.bdd0:0.0.bdd1:0.0.bdd2                      yes  no    encbdd0
      generic-ccw  0.0.0009                                        yes  no

      SCSI 磁盘以 zfcp-lun 表示,其结构为 <device-id>:<wwpn>:<lun-id>。第一个磁盘用于操作系统。新磁盘的设备 ID 可以相同。

    2. 使用以下命令附加一个新的 SCSI 磁盘。

      $ chzdev -e 0.0.8204:0x400506630b1b50a4:0x3001301a00000000
      注意

      新磁盘的设备 ID 必须与要替换的磁盘相同。新磁盘通过其 WWPN 和 LUN ID 进行标识。

    3. 列出所有 FCP 设备以验证新磁盘是否已配置。

      $ lszdev zfcp-lun
      TYPE         ID                                              ON   PERS  NAMES
      zfcp-lun     0.0.8204:0x102107630b1b5060:0x4001402900000000 yes  no    sda sg0
      zfcp-lun     0.0.8204:0x500507630b1b50a4:0x4001302a00000000  yes  yes   sdb sg1
      zfcp-lun     0.0.8204:0x400506630b1b50a4:0x3001301a00000000  yes  yes   sdc sg2
  2. 导航到 OpenShift Web 控制台。
  3. 单击左侧导航栏中的 Operators
  4. 选择 Installed Operators
  5. 在窗口中点击 OpenShift Container Storage Operator:
  6. 在顶部导航栏中,滚动右滚动并单击 Storage Cluster 选项卡。
  7. 点可见列表旁边的(⋮)来扩展选项菜单。
  8. 从选项菜单中选择 Add Capacity

    Raw Capacity 字段显示在存储类创建过程中设置的大小。所消耗的存储总量是这个大小的三倍,因为 OpenShift Container Storage 使用的副本数为 3。

  9. Add 并等待集群状态变为 Ready

验证步骤

  1. 进入到 OverviewBlock and File 选项卡,然后检查 Capacity breakdown 卡。

    请注意,容量会根据您的选择而增加。

    注意

    原始容量不考虑复制并显示完整容量。

2.5. 通过使用本地存储设备在 IBM Power Systems 基础架构的 OpenShift Container Storage 节点中添加容量来扩展存储

使用这个步骤在 IBM Power Systems 基础架构上配置的基于 OpenShift Container Storage worker 节点的本地存储中添加存储容量(额外存储设备)。

先决条件

  • 您必须登录 OpenShift Container Platform (RHOCP) 集群。
  • 您必须已安装了本地存储 operator。请使用以下步骤,请参阅

  • 如果您从以前的版本升级到 OpenShift Container Storage 4.8,且还没有创建 LocalVolumeDiscovery 对象,现在请按照 由本地存储支持的集群的 Post-update 配置更改 中所述的步骤进行。
  • 您必须有三个 OpenShift Container Platform worker 节点,并附加到每个节点(如 0.5TB SSD),因为使用了原始的 OpenShift Container StorageCluster。

步骤

  1. 要在安装了 OpenShift Container Storage 的 OpenShift Container Platform 节点中添加存储容量,您需要

    1. 找到您要添加的可用设备,即每个 worker 节点最少一个设备。您可以按照相关部署指南中查找可用存储设备的步骤进行操作。

      注意

      确保您为要为其添加存储的所有现有节点(最小 3 个)执行此流程。

    2. LocalVolume 自定义资源(CR)中添加额外的磁盘。

      $ oc edit -n openshift-local-storage localvolume localblock

      输出示例:

      spec:
        logLevel: Normal
        managementState: Managed
        nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                    - worker-0
                    - worker-1
                    - worker-2
        storageClassDevices:
          - devicePaths:
              - /dev/sda
              - /dev/sdx    # newly added device
            storageClassName: localblock
            volumeMode: Block

      确保在编辑 CR 后保存更改。

      输出示例:

      localvolume.local.storage.openshift.io/localblock edited

      您可以在此 CR 中看到新的设备已被添加新设备。

      • sdx
  2. 显示使用 localVolume CR 中使用的 storageclass 名称新创建的 PV。

    $ oc get pv | grep localblock | grep Available

    输出示例:

    local-pv-a04ffd8       500Gi      RWO      Delete       Available      localblock       24s
    local-pv-a0ca996b      500Gi      RWO      Delete       Available      localblock       23s
    local-pv-c171754a      500Gi      RWO      Delete       Available      localblock       23s
  3. 导航到 OpenShift Web 控制台。
  4. 点左侧导航栏上的 Operator
  5. 选择 Installed Operators
  6. 在窗口中点击 OpenShift Container Storage Operator:
  7. 在顶部导航栏中,滚动右滚动并单击 Storage Cluster 选项卡。
  8. 可见列表中应当只有一个项目。点击最右侧的(⋮)来扩展选项菜单。
  9. 从选项菜单中选择 Add Capacity

    在此对话框中,将 Storage Class 名称设置为 localVolume CR 中使用的名称。显示的可用容量基于存储类中可用的本地磁盘。

  10. 完成设置后,点 Add

    您可能需要等待几分钟,以便存储集群达到 Ready 状态。

验证步骤

  • 导航到 OverviewBlock and File 选项卡,然后检查 Raw Capacity 分类 卡。

    请注意,容量会根据您的选择而增加。

    注意

    原始容量不考虑复制并显示完整容量。

  • 验证新 OSD 及其对应的新 PVC 是否已创建。

    • 查看新创建的 OSD 的状态:

      1. 从 OpenShift Web 控制台点 WorkloadsPods
      2. Project 下拉列表中选择 openshift-storage
    • 查看 PVC 的状态:

      1. 从 OpenShift Web 控制台点 StoragePersistent Volume Claims
      2. Project 下拉列表中选择 openshift-storage
  • (可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。

    1. 识别运行新 OSD pod 的节点。

      $ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>

      例如:

      oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
    2. 对于上一步中确定的每个节点,请执行以下操作:

      1. 创建调试 pod,并为所选主机打开 chroot 环境。

        $ oc debug node/<node name>
        $ chroot /host
      2. 运行 "lsblk" 并检查 ocs-deviceset 名旁边的 "crypt" 关键字。

        $ lsblk

第 3 章 横向扩展存储容量

要扩展存储容量,您需要执行以下步骤:

  • 添加新节点
  • 验证新节点是否已成功添加
  • 扩展存储容量
注意

OpenShift Container Storage 不支持异构 OSD 大小。

3.1. 添加节点

您可以在现有工作程序节点已以其最大支持 OSD 运行时添加节点来增加存储容量,即增加初始配置期间所选容量的 3 个 OSD。

根据部署类型,您可以选择以下步骤之一来添加存储节点:

3.1.1. 在安装程序置备的基础架构中添加节点

使用以下流程在安装程序置备的基础架构中添加节点:

  • AWS
  • Azure
  • Red Hat Virtualization
  • VMware

先决条件

  • 您必须登录 OpenShift Container Platform (RHOCP) 集群。

步骤

  1. 导航到 ComputeMachine Sets
  2. 在您要添加节点的机器集中,选择 Edit Machine Count
  3. 添加节点数量,然后点 Save
  4. ComputeNodes 并确认新节点是否处于 Ready 状态
  5. 将 OpenShift Container Storage 标签应用到新节点。

    1. 对于新节点,Action menu (⋮)Edit Labels
    2. 添加 cluster.ocs.openshift.io/openshift-storage 并点 Save
注意

建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。

验证步骤

3.1.2. 在用户置备的基础架构中添加节点

使用此流程在 AWS 或 VMware 用户置备的基础架构中添加节点。

先决条件

  • 您必须登录 OpenShift Container Platform (RHOCP) 集群。

步骤

  1. 根据您要在 AWS 用户置备的基础架构或 VMware 用户置备的基础架构中添加节点,请执行以下步骤:

    • 对于 AWS

      1. 使用所需基础架构创建新的 AWS 机器集。请参阅 平台要求
      2. 使用新的 AWS 机器集创建新的 OpenShift Container Platform 节点。
    • 对于 VMware:

      1. 使用所需基础架构在 vSphere 上创建新虚拟机。请参阅 平台要求
      2. 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
  2. 检查与处于 Pending 状态的 OpenShift Container Storage 相关的证书签名请求 (CSR):

    $ oc get csr
  3. 为新节点批准所有所需的 OpenShift Container Storage CSR:

    $ oc adm certificate approve <Certificate_Name>
  4. ComputeNodes,确认新节点是否处于 Ready 状态
  5. 使用以下任一方法之一将 OpenShift Container Storage 标签应用到新节点:

    从用户界面
    1. 对于新节点,点击 Action Menu(⋮)Edit Labels
    2. 添加 cluster.ocs.openshift.io/openshift-storage 并点 Save
    使用命令行界面
    • 执行以下命令,将 OpenShift Container Storage 标签应用到新节点:

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
      注意

      建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。

验证步骤

3.1.3. 使用本地存储设备添加节点

使用此流程在以下系统中添加节点:

  • 裸机
  • IBM Z 或 LinuxONE
  • VMware
  • Red Hat Virtualization

先决条件

  • 您必须登录 OpenShift Container Platform (RHOCP) 集群。
  • 您必须有三个存储类型和大小相同的 OpenShift Container Platform worker 节点(例如,2TB SSD 或 2TB NVMe 驱动器),与原始 OpenShift Container Storage StorageCluster 创建时相同。
  • 如果您从以前的版本升级到 OpenShift Container Storage 版本 4.8,且还没有创建 LocalVolumeDiscoveryLocalVolumeSet 对象,现在请按照 本地存储支持的集群的 Post-update 配置更改 中所述的步骤进行。

步骤

  1. 根据您要在裸机、IBM Power Systems、IBM Z 或 LinuxONE、VMware 基础架构或 Red Hat Virtualization 平台上添加节点,请执行以下步骤:

    • 对于 VMware:

      1. 使用所需基础架构在 vSphere 上创建新虚拟机。请参阅 平台要求
      2. 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
    • Red Hat Virtualization:

      1. 使用所需基础架构在 Red Hat Virtualization 上创建新虚拟机。请参阅 平台要求
      2. 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
    • 对于裸机:

      1. 获取具有所需基础架构的新裸机计算机。请参阅 平台要求
      2. 使用新的裸机机器创建新的 OpenShift Container Platform 节点。
  • 对于 IBM Z 或 LinuxONE:

    1. 获取具有所需基础架构的新 IBM Z 或 LinuxONE 机器。请参阅 平台要求
    2. 使用新的 IBM Z 或 LinuxONE 机器创建一个新的 OpenShift Container Platform 节点。

      1. 检查与处于 Pending 状态的 OpenShift Container Storage 相关的证书签名请求 (CSR):

        $ oc get csr
      2. 为新节点批准所有所需的 OpenShift Container Storage CSR:

        $ oc adm certificate approve <Certificate_Name>
      3. ComputeNodes,确认新节点是否处于 Ready 状态
      4. 使用以下任一方法之一将 OpenShift Container Storage 标签应用到新节点:

        从用户界面
    3. 对于新节点,点击 Action Menu(⋮)Edit Labels
    4. 添加 cluster.ocs.openshift.io/openshift-storage 并点 Save

      使用命令行界面
  • 执行以下命令,将 OpenShift Container Storage 标签应用到新节点:

    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
    1. 从 OpenShift Web 控制台中点 OperatorsInstalled Operators

      Project 下拉菜单中选择安装 Local Storage Operator 的项目。

    2. Local Storage
    3. Local Volume Discovery 选项卡。
    4. LocalVolumeDiscovery 旁边,点 Action 菜单 (⋮)Edit Local Volume Discovery
    5. 在 YAML 中,将新节点的主机名添加到节点选择器下的 values 字段中。
    6. 点击 Save
    7. Local Volume Sets 选项卡。
    8. LocalVolumeSet 旁边,点 Action 菜单 (⋮)Edit Local Volume Set
    9. 在 YAML 中,将新节点的主机名添加到节点选择器下的 values 字段中。

      图 3.1. 显示添加新主机名的 YAML

      YAML 屏幕截图,显示新主机名的添加。
    10. 点击 Save
注意

建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。

验证步骤

3.1.4. 在 IBM Power 系统中使用本地存储设备添加节点

先决条件

  • 您必须登录 OpenShift Container Platform (RHOCP) 集群。
  • 您必须有三个存储类型和大小相同的 OpenShift Container Platform worker 节点(例如,2TB SSD 驱动器),与原始 OpenShift Container Storage StorageCluster 创建时相同。
  • 如果您从以前的 OpenShift Container Storage 版本升级且还没有创建 LocalVolumeDiscovery 对象,按照本地存储支持的集群所述步骤进行操作。

步骤

  • 对于 IBM Power 系统:

    1. 使用所需基础架构获取新的 IBM Power 机器。请参阅 平台要求
    2. 使用新的 IBM Power Systems 机器创建一个新的 OpenShift Container Platform 节点。

      1. 检查与处于 Pending 状态的 OpenShift Container Storage 相关的证书签名请求 (CSR):

        $ oc get csr
      2. 为新节点批准所有所需的 OpenShift Container Storage CSR:

        $ oc adm certificate approve <Certificate_Name>
      3. ComputeNodes,确认新节点是否处于 Ready 状态
      4. 使用以下任一方法之一将 OpenShift Container Storage 标签应用到新节点:

        从用户界面
    3. 对于新节点,点击 Action Menu(⋮)Edit Labels
    4. 添加 cluster.ocs.openshift.io/openshift-storage 并点 Save

      使用命令行界面
  • 执行以下命令,将 OpenShift Container Storage 标签应用到新节点:

    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=''
    1. 从 OpenShift Web 控制台中点 OperatorsInstalled Operators

      Project 下拉菜单中选择安装 Local Storage Operator 的项目。

    2. Local Storage
    3. Local Volume Discovery 选项卡。
    4. LocalVolumeDiscovery → Edit Local Volume Discovery 旁边的 Action 菜单 (⋮)
    5. 在 YAML 中,将新节点的主机名添加到节点选择器下的 values 字段中。
    6. 点击 Save
    7. 本地卷选项卡。
    8. LocalVolume 旁边,点 Action 菜单 (⋮)Edit Local Volume
    9. 在 YAML 中,将新节点的主机名添加到节点选择器下的 values 字段中。

      图 3.2. 显示添加新主机名的 YAML

      YAML 屏幕截图,显示新主机名的添加。
    10. 点击 Save
注意

建议您添加 3 个节点,每个节点都位于不同的区中。您必须添加 3 个节点,并对所有节点执行此步骤。

验证步骤

3.1.5. 验证新节点的添加

  1. 执行以下命令并验证输出中是否存在新节点:

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods,确认新节点上的以下 pod 处于 Running 状态

    • csi-cephfsplugin-*
    • csi-rbdplugin-*

3.2. 为新添加的节点添加容量

若要为新添加的节点添加容量,可使用 Add Capacity 选项扩展具有 3 个 OSD 的存储集群,或者使用新的灵活扩展功能,允许您在启用时将存储集群扩展至任意数量的 OSD。

3.2.1. 使用 Add Capacity 选项添加 3 个 OSD 的容量

若要在用户界面中使用 Add Capacity 选项为动态和本地存储添加 3 个 OSD 的容量,请参阅通过添加容量来扩展存储Add Capacity 选项可用于启用了灵活扩展功能的存储集群。

3.2.2. 使用 YAML 添加容量

启用灵活扩展后,您可以使用 YAML(而不是默认的 3 OSD)一次添加 1 个或多个 OSD 的容量。但是,您需要确保以集群保持平衡的方式添加磁盘。

仅支持内部附加存储集群创建模式才支持灵活扩展。灵活扩展存储集群仅适用于新的 Red Hat OpenShift Container Storage 4.7,不适用于升级的集群。

要启用灵活的扩展,请创建一个具有 3 个节点且少于 3 个可用区的集群。OpenShift Web 控制台检测到分布在 3 个可用区的 3 个节点,并启用灵活的扩展。

重要

您无法在创建存储集群后启用或禁用灵活的扩展功能。

3.2.2.1. 验证是否启用了灵活的扩展

要验证是否在存储集群中启用了灵活的扩展,请执行以下步骤:

  1. OpenShift Container Storage Operator。
  2. Storage Cluster 选项卡。
  3. 点存储集群旁的操作菜单 (⋮)
  4. Edit Storage Cluster。您将被重定向到 YAML。
  5. 在 YAML 中,在 spec 部分搜索 flexibleScaling 键,并在 status 部分搜索 failureDomain。如果 flexible scaling 为 true,failureDomain 被设置为 host,则启用灵活的扩展功能。

    spec:
    flexibleScaling: true
    […]
    status:
    failureDomain: host

3.2.2.2. 在 1 个 OSD 的倍数中使用 YAML 添加容量

要通过 YAML 灵活地将 OSD 添加到存储集群中,请执行以下步骤:

先决条件

  • 管理员访问 OpenShift Container Platform Web 控制台。
  • 启用灵活扩展的存储集群。
  • 其他可用于添加容量的磁盘。

步骤

  1. OperatorsInstalled Operators 查看所有已安装的 Operator。确保选中的项目为 openshift-storage。
  2. OpenShift Container Storage operator。
  3. Storage Cluster 选项卡
  4. 点击您要扩展的存储集群旁的操作菜单 (⋮)
  5. Edit Storage Cluster。您将被重定向到 YAML。
  6. 在 YAML 中,搜索键 count。此计数参数可向上扩展容量。
  7. 将数量增加到您要添加到集群的 OSD 数量。

    重要

    根据可用磁盘的数量,确保 YAML 中的 count 参数递增,同时确保以集群保持平衡的方式添加磁盘。

  8. 点击 Save

您可能需要等待一两分钟,存储集群才会到达 Ready 状态。

验证步骤

  • 导航到 OverviewBlock and File 选项卡,然后检查 Raw Capacity 分类 卡。

    请注意,容量会根据您的选择而增加。

    注意

    原始容量不考虑复制并显示完整容量。

  • 验证新 OSD 及其对应的新 PVC 是否已创建。

    • 查看新创建的 OSD 的状态:

      1. 从 OpenShift Web 控制台点 WorkloadsPods
      2. Project 下拉列表中选择 openshift-storage
    • 查看 PVC 的状态:

      1. 从 OpenShift Web 控制台点 StoragePersistent Volume Claims
      2. Project 下拉列表中选择 openshift-storage
  • (可选)如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。

    1. 识别运行新 OSD pod 的节点。

      $ oc get -o=custom-columns=NODE:.spec.nodeName pod/<OSD pod name>

      例如:

      oc get -o=custom-columns=NODE:.spec.nodeName pod/rook-ceph-osd-0-544db49d7f-qrgqm
    2. 对于上一步中确定的每个节点,请执行以下操作:

      1. 创建调试 pod,并为所选主机打开 chroot 环境。

        $ oc debug node/<node name>
        $ chroot /host
      2. 运行 "lsblk" 并检查 ocs-deviceset 名旁边的 "crypt" 关键字。

        $ lsblk