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。
流程
使用用于创建命名空间的配置创建 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运行以下命令创建命名空间:
$ oc create -f <file_name>创建
OperatorGroupCR YAML 文件:OperatorGroupCR 示例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-lvm-storage spec: targetNamespaces: - openshift-storage运行以下命令来创建
OperatorGroupCR:$ oc create -f <file_name>创建
SubscriptionCR YAML 文件:SubscriptionCR 示例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运行以下命令来创建
SubscriptionCR:$ oc create -f <file_name>
验证
要验证 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。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Ecosystem
Software Catalog。 - 在软件目录页中点 LVM Storage。
在 Operator 安装页面中设置以下选项 :
- 将频道更新为 stable-4.22。
- Installation Mode 为 A specific namespace on the cluster。
-
Installed Namespace 为 Operator recommended namespace openshift-storage。如果
openshift-lvm-storage命名空间不存在,它会在 Operator 安装过程中创建。 将 Update approval 设置为 Automatic 或 Manual。
注意如果选择 Automatic 更新,Operator Lifecycle Manager (OLM) 将自动更新 LVM Storage 的运行实例,而无需任何干预。
如果选择 手动 更新,则 OLM 会创建一个更新请求。作为集群管理员,您必须手动批准更新请求,以便将 LVM 存储更新至更新的版本。
- 可选:选择 Enable Operator recommended cluster monitoring on this Namespace 复选框。
- 点 Install。
验证步骤
- 验证 LVM 存储是否显示绿色勾号,代表安装成功。
5.4.1.4. 在断开连接的环境中安装 LVM 存储 复制链接链接已复制到粘贴板!
您可以在断开连接的环境中的 OpenShift Container Platform 上安装 LVM 存储。此流程中引用的所有部分都链接到 "Additional resources" 部分。
先决条件
- 您可以阅读"关于断开连接的安装镜像"部分。
- 您可以访问 OpenShift Container Platform 镜像存储库。
- 您创建了镜像 registry。
流程
按照"创建镜像设置配置"中的步骤操作。要为 LVM Storage 创建
ImageSetConfiguration自定义资源 (CR),您可以使用以下示例ImageSetConfigurationCR 配置:LVM 存储的
ImageSetConfigurationCR 示例kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 archiveSize: 41 storageConfig:2 registry: imageURL: example.com/mirror/oc-mirror-metadata3 skipTLS: false mirror: platform: channels: - name: stable-4.224 type: ocp graph: true5 operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.226 packages: - name: lvms-operator7 channels: - name: stable8 additionalImages: - name: registry.redhat.io/ubi9/ubi:latest9 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
- 指定要在镜像集中包含的任何其他镜像。
- 按照"镜像 registry"部分中的步骤操作。
- 按照"配置镜像 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 管理。
流程
- 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
创建命名空间。
$ oc create ns <namespace>创建
PolicyCR YAML 文件:用于安装和配置 LVM 存储的
PolicyCR 示例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运行以下命令来创建
PolicyCR:$ oc create -f <file_name> -n <namespace>创建
PolicyCR 后,会在与PlacementRuleCR 中配置的选择条件匹配的集群中创建以下自定义资源:-
Namespace -
OperatorGroup -
订阅
-
LVM Storage Operator 的默认命名空间现在是 openshift-lvm-storage。