Menu Close

4.10.6. 为本地存储设备自动发现和置备

Local Storage Operator 自动进行本地存储发现和置备。使用此功能,您可以在部署过程中不提供动态置备(如使用裸机、VMware 或带有附加设备的 AWS 存储实例)时简化安装。

重要

自动发现和置备只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

使用以下步骤自动发现本地设备,并为所选设备自动置备本地。

警告

请谨慎使用 LocalVolumeSet 对象。当您从本地磁盘自动置备持久性卷(PV)时,本地 PV 可能会声明所有匹配的设备。如果使用 LocalVolumeSet 对象,请确保 Local Storage Operator 是唯一管理该节点上本地设备的实体。

先决条件

  • 有集群管理员权限。
  • 已安装 Local Storage Operator。
  • 已将本地磁盘附加到 OpenShift Container Platform 节点。
  • 您可以访问 OpenShift Container Platform web 控制台和 oc 命令行界面(CLI)。

流程

  1. 通过 web 控制台启用本地设备的自动发现:

    1. Administrator 视角中,导航到 OperatorsInstalled Operators,再点 Local Volume Discovery 选项卡。
    2. Create Local Volume Discovery
    3. 根据您要在所有节点上还是在特定的节点上发现可用磁盘,选择 All nodesSelect nodes

      注意

      无论是使用 All nodesSelect nodes 进行过滤,只有 worker 节点可用。

    4. 点击 Create

此时会显示名为 auto-discover-devices 的本地卷发现实例。

  1. 显示节点上持续可用的设备列表:

    1. 登陆到 OpenShift Container Platform Web 控制台。
    2. 进入 ComputeNodes
    3. 点要打开的节点名称。此时会显示 "Node Details" 页面。
    4. 选择 Disks 标签显示所选设备的列表。

      在添加或删除本地磁盘时,设备列表会持续更新。您可以根据名称、状态、类型、型号、容量和模式过滤设备。

  2. 从 web 控制台为发现的设备自动置备本地卷:

    1. 导航到 OperatorsInstalled Operators,再从 Operators 列表中选择 Local Storage
    2. 选择 Local Volume SetCreate Local Volume Set
    3. 输入卷集合名称和存储类名称。
    4. 选择 All nodesSelect nodes 以相应地应用过滤器。

      注意

      无论是使用 All nodesSelect nodes 进行过滤,只有 worker 节点可用。

    5. 选择您要应用到本地卷集的磁盘类型、模式、大小和限制,然后点 Create

      几分钟后会显示一条信息,表示 "Operator reconciled successfullyd successfully."。

  1. 另外,也可通过 CLI 为发现的设备置备本地卷:

    1. 创建一个对象 YAML 文件来定义本地卷集,如 local-volume-set.yaml,如下例所示:

      apiVersion: local.storage.openshift.io/v1alpha1
      kind: LocalVolumeSet
      metadata:
        name: example-autodetect
      spec:
        nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                    - worker-0
                    - worker-1
        storageClassName: example-storageclass 1
        volumeMode: Filesystem
        fstype: ext4
        maxDeviceCount: 10
        deviceInclusionSpec:
          deviceTypes: 2
            - disk
            - part
          deviceMechanicalProperties:
            - NonRotational
          minSize: 10G
          maxSize: 100G
          models:
            - SAMSUNG
            - Crucial_CT525MX3
          vendors:
            - ATA
            - ST2000LM
      1
      决定为从发现的设备置备的持久性卷创建的存储类。如果不存在,Local Storage Operator 会自动创建存储类。确保使用唯一标识此本地卷的存储类。
      2
      当使用本地卷设置功能时,Local Storage Operator 不支持使用逻辑卷管理(LVM)设备。
    2. 创建本地卷集对象:

      $ oc apply -f local-volume-set.yaml
    3. 根据存储类验证本地持久性卷是否被动态置备:

      $ oc get pv

      输出示例

      NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS           REASON   AGE
      local-pv-1cec77cf   100Gi      RWO            Delete           Available           example-storageclass            88m
      local-pv-2ef7cd2a   100Gi      RWO            Delete           Available           example-storageclass            82m
      local-pv-3fa1c73    100Gi      RWO            Delete           Available           example-storageclass            48m

注意

结果会在从节点中删除后删除。必须手动删除符号链接。