5.4. 使用逻辑卷管理器存储的持久性存储


逻辑卷管理器(LVM)存储通过 TopoLVM CSI 驱动程序使用 LVM2 在具有有限资源的集群中动态置备本地存储。

您可以使用 LVM 存储创建卷组、持久性卷声明(PVC)、卷快照和卷克隆。

5.4.1. 逻辑卷管理器存储安装

您可以在 OpenShift Container Platform 集群上安装逻辑卷管理器 (LVM) 存储,并将其配置为为您的工作负载动态置备存储。

您可以使用 OpenShift Container Platform CLI (oc)、OpenShift Container Platform Web 控制台或 Red Hat Advanced Cluster Management (RHACM) 安装 LVM 存储。

警告

当在多节点集群中使用 LVM 存储时,LVM 存储只支持置备本地存储。LVM 存储不支持跨节点的存储数据复制机制。您必须通过主动或被动复制机制来确保存储数据复制,以避免出现单点故障。

5.4.1.1. 安装 LVM 存储的先决条件

安装 LVM 存储的先决条件如下:

  • 确保至少有 10 milliCPU 和 100 MiB RAM。
  • 确保每个受管集群都有用于置备存储的专用磁盘。LVM 存储只使用那些为空且不包含文件系统签名的磁盘。为确保磁盘为空,且不包含文件系统签名,请在使用磁盘前擦除磁盘。
  • 在私有 CI 环境中安装 LVM 存储前,您可以重复使用您在之前的 LVM 存储安装中配置的存储设备,请确保您已擦除未使用的磁盘。如果您在安装 LVM 存储前没有擦除磁盘,则无法重复使用磁盘,而无需人工干预。

    注意

    您不能擦除正在使用的磁盘。

  • 如果要使用 Red Hat Advanced Cluster Management (RHACM) 安装 LVM 存储,请确保已在 OpenShift Container Platform 集群上安装 RHACM。请参阅"使用 RHACM 安装 LVM 存储"部分。

5.4.1.2. 使用 CLI 安装 LVM 存储

作为集群管理员,您可以使用 OpenShift CLI 安装 LVM 存储。

注意

LVM Storage Operator 的默认命名空间现在是 openshift-lvm-storage

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 已以具有 cluster-admin 和 Operator 安装权限的用户身份登录 OpenShift Container Platform。

流程

  1. 使用用于创建命名空间的配置创建 YAML 文件:

    创建命名空间的 YAML 配置示例

    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
        pod-security.kubernetes.io/enforce: privileged
        pod-security.kubernetes.io/audit: privileged
        pod-security.kubernetes.io/warn: privileged
      name: openshift-lvm-storage

  2. 运行以下命令创建命名空间:

    $ oc create -f <file_name>
  3. 创建 OperatorGroup CR YAML 文件:

    OperatorGroup CR 示例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-storage-operatorgroup
      namespace: openshift-lvm-storage
    spec:
      targetNamespaces:
      - openshift-storage

  4. 运行以下命令来创建 OperatorGroup CR:

    $ oc create -f <file_name>
  5. 创建 Subscription CR YAML 文件:

    Subscription CR 示例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: lvms
      namespace: openshift-lvm-storage
    spec:
      installPlanApproval: Automatic
      name: lvms-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace

  6. 运行以下命令来创建 Subscription CR:

    $ oc create -f <file_name>

验证

  1. 要验证 LVM 存储是否已安装,请运行以下命令:

    $ oc get csv -n openshift-lvm-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase

    输出示例

    Name                         Phase
    4.13.0-202301261535          Succeeded

5.4.1.3. 使用 Web 控制台安装 LVM 存储

您可以使用 OpenShift Container Platform Web 控制台安装 LVM Storage。

注意

LVM Storage Operator 的默认命名空间现在是 openshift-lvm-storage

先决条件

  • 您可以访问集群。
  • 您可以使用 cluster-admin 和 Operator 安装权限访问 OpenShift Container Platform。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. Ecosystem Software Catalog
  3. 在软件目录页中点 LVM Storage
  4. Operator 安装页面中设置以下选项 :

    1. 将频道更新为 stable-4.22
    2. Installation ModeA specific namespace on the cluster
    3. Installed NamespaceOperator recommended namespace openshift-storage。如果 openshift-lvm-storage 命名空间不存在,它会在 Operator 安装过程中创建。
    4. Update approval 设置为 AutomaticManual

      注意

      如果选择 Automatic 更新,Operator Lifecycle Manager (OLM) 将自动更新 LVM Storage 的运行实例,而无需任何干预。

      如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准更新请求,以便将 LVM 存储更新至更新的版本。

  5. 可选:选择 Enable Operator recommended cluster monitoring on this Namespace 复选框。
  6. Install

验证步骤

  • 验证 LVM 存储是否显示绿色勾号,代表安装成功。

5.4.1.4. 在断开连接的环境中安装 LVM 存储

您可以在断开连接的环境中的 OpenShift Container Platform 上安装 LVM 存储。此流程中引用的所有部分都链接到 "Additional resources" 部分。

先决条件

  • 您可以阅读"关于断开连接的安装镜像"部分。
  • 您可以访问 OpenShift Container Platform 镜像存储库。
  • 您创建了镜像 registry。

流程

  1. 按照"创建镜像设置配置"中的步骤操作。要为 LVM Storage 创建 ImageSetConfiguration 自定义资源 (CR),您可以使用以下示例 ImageSetConfiguration CR 配置:

    LVM 存储的 ImageSetConfiguration CR 示例

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    archiveSize: 4 
    1
    
    storageConfig: 
    2
    
      registry:
        imageURL: example.com/mirror/oc-mirror-metadata 
    3
    
        skipTLS: false
    mirror:
      platform:
        channels:
        - name: stable-4.22 
    4
    
          type: ocp
        graph: true 
    5
    
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.22 
    6
    
        packages:
        - name: lvms-operator 
    7
    
          channels:
          - name: stable 
    8
    
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest 
    9
    
      helm: {}

    1
    设置镜像集合中每个文件的最大大小(以 GiB 为单位)。
    2
    指定要保存镜像集的位置。此位置可以是 registry 或本地目录。除非使用技术预览 OCI 功能,否则您必须配置 storageConfig 字段。
    3
    在使用 registry 时指定镜像流的存储 URL。如需更多信息,请参阅为什么使用镜像流
    4
    指定您要从中检索 OpenShift Container Platform 镜像的频道。
    5
    将此字段设置为 true 来生成 OpenShift Update Service (OSUS) 图形镜像。如需更多信息,请参阅关于 OpenShift Update Service
    6
    指定您要从中检索 OpenShift Container Platform 镜像的 Operator 目录。
    7
    指定要包含在镜像集中的 Operator 软件包。如果此字段为空,则检索目录中的所有软件包。
    8
    指定要包含在镜像集中的 Operator 软件包的频道。即使不使用该频道中的捆绑包,还必须包含 Operator 软件包的默认频道。您可以运行以下命令来找到默认频道:$ oc mirror list operators --catalog=<catalog_name> --package=<package_name>.
    9
    指定要在镜像集中包含的任何其他镜像。
  2. 按照"镜像 registry"部分中的步骤操作。
  3. 按照"配置镜像 registry 存储库镜像"部分中的步骤操作。

5.4.1.5. 使用 RHACM 安装 LVM 存储

要使用 Red Hat Advanced Cluster Management (RHACM) 在集群中安装 LVM 存储,您必须创建一个 Policy 自定义资源 (CR)。您还可以配置条件来选择您要在其上安装 LVM 存储的集群。

注意

为安装 LVM 存储而创建的 Policy CR 也应用于在创建 Policy CR 后导入或创建的集群。

先决条件

  • 您可以使用具有 cluster-admin 和 Operator 安装权限的账户访问 RHACM 集群。
  • 您有专用磁盘,LVM 存储可在每个集群上使用。
  • 集群必须由 RHACM 管理。

流程

  1. 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
  2. 创建命名空间。

    $ oc create ns <namespace>
  3. 创建 Policy CR YAML 文件:

    用于安装和配置 LVM 存储的 Policy CR 示例

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-install-lvms
    spec:
      clusterConditions:
      - status: "True"
        type: ManagedClusterConditionAvailable
      clusterSelector: 
    1
    
        matchExpressions:
        - key: mykey
          operator: In
          values:
          - myvalue
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-install-lvms
    placementRef:
      apiGroup: apps.open-cluster-management.io
      kind: PlacementRule
      name: placement-install-lvms
    subjects:
    - apiGroup: policy.open-cluster-management.io
      kind: Policy
      name: install-lvms
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      annotations:
        policy.open-cluster-management.io/categories: CM Configuration Management
        policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
        policy.open-cluster-management.io/standards: NIST SP 800-53
      name: install-lvms
    spec:
      disabled: false
      remediationAction: enforce
      policy-templates:
      - objectDefinition:
          apiVersion: policy.open-cluster-management.io/v1
          kind: ConfigurationPolicy
          metadata:
            name: install-lvms
          spec:
            object-templates:
            - complianceType: musthave
              objectDefinition: 
    2
    
                apiVersion: v1
                kind: Namespace
                metadata:
                  labels:
                    openshift.io/cluster-monitoring: "true"
                    pod-security.kubernetes.io/enforce: privileged
                    pod-security.kubernetes.io/audit: privileged
                    pod-security.kubernetes.io/warn: privileged
                  name: openshift-lvm-storage
            - complianceType: musthave
              objectDefinition: 
    3
    
                apiVersion: operators.coreos.com/v1
                kind: OperatorGroup
                metadata:
                  name: openshift-storage-operatorgroup
                  namespace: openshift-lvm-storage
                spec:
                  targetNamespaces:
                  - openshift-lvm-storage
            - complianceType: musthave
              objectDefinition: 
    4
    
                apiVersion: operators.coreos.com/v1alpha1
                kind: Subscription
                metadata:
                  name: lvms
                  namespace: openshift-lvm-storage
                spec:
                  installPlanApproval: Automatic
                  name: lvms-operator
                  source: redhat-operators
                  sourceNamespace: openshift-marketplace
            remediationAction: enforce
            severity: low

    1
    设置 PlacementRule.spec.clusterSelector 中的 key 字段和 values 字段,以匹配您要在其上安装 LVM 存储的集群中配置的标签。
    2
    命名空间配置。
    3
    OperatorGroup CR 配置。
    4
    Subscription CR 配置。
  4. 运行以下命令来创建 Policy CR:

    $ oc create -f <file_name> -n <namespace>

    创建 Policy CR 后,会在与 PlacementRule CR 中配置的选择条件匹配的集群中创建以下自定义资源:

    • Namespace
    • OperatorGroup
    • 订阅
注意

LVM Storage Operator 的默认命名空间现在是 openshift-lvm-storage

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部