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 存储。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
已以具有
cluster-admin
和 Operator 安装权限的用户身份登录 OpenShift Container Platform。
流程
使用用于创建命名空间的配置创建 YAML 文件:
创建命名空间的 YAML 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令创建命名空间:
oc create -f <file_name>
$ oc create -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
OperatorGroup
CR YAML 文件:OperatorGroup
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
OperatorGroup
CR:oc create -f <file_name>
$ oc create -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Subscription
CR YAML 文件:Subscription
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Subscription
CR:oc create -f <file_name>
$ oc create -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证 LVM 存储是否已安装,请运行以下命令:
oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Name Phase 4.13.0-202301261535 Succeeded
Name Phase 4.13.0-202301261535 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.1.3. 使用 Web 控制台安装 LVM 存储 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台安装 LVM Storage。
先决条件
- 您可以访问集群。
-
您可以使用
cluster-admin
和 Operator 安装权限访问 OpenShift Container Platform。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Operators
OperatorHub。 - 点 OperatorHub 页面中的 LVM Storage。
在 Operator 安装页面中设置以下选项 :
- 更新频道 stable-4.19。
- Installation Mode 为 A specific namespace on the cluster。
-
Installed Namespace 为 Operator recommended namespace openshift-storage。如果
openshift-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),您可以使用以下示例ImageSetConfiguration
CR 配置:LVM 存储的
ImageSetConfiguration
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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>
$ oc create ns <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Policy
CR YAML 文件:用于安装和配置 LVM 存储的
Policy
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Policy
CR:oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Policy
CR 后,会在与PlacementRule
CR 中配置的选择条件匹配的集群中创建以下自定义资源:-
Namespace
-
OperatorGroup
-
订阅
-
5.4.2. 关于 LVMCluster 自定义资源 复制链接链接已复制到粘贴板!
您可以配置 LVMCluster
CR 以执行以下操作:
- 创建可用于置备持久性卷声明 (PVC) 的 LVM 卷组。
- 配置您要添加到 LVM 卷组的设备列表。
- 配置要求以选择要在其上创建 LVM 卷组的节点,以及卷组的精简池配置。
- 强制擦除所选设备。
安装 LVM 存储后,您必须创建一个 LVMCluster
自定义资源 (CR)。
LVMCluster
CR YAML 文件示例
LVMCluster CR 中的字段解释
LVMCluster
CR 字段在下表中描述:
字段 | 类型 | 描述 |
---|---|---|
|
| 包含将本地存储设备分配给 LVM 卷组的配置。 LVM Storage 为您创建的每个设备类创建一个存储类和卷快照类。 |
|
| 为 LVM 卷组 (VG) 指定一个名称。 您还可以将此字段配置为重复使用您在之前安装中创建的卷组。如需更多信息,请参阅"使用之前 LVM 存储安装中的卷组"。 |
|
|
将此字段设置为 |
|
|
将此字段设置为 |
|
| 包含要在其上创建 LVM 卷组的节点的配置。如果此字段为空,则会考虑所有没有调度污点的节点。 在 control-plane 节点上,当新节点在集群中变为活跃时,LVM Storage 会检测到新节点并使用额外的 worker 节点。 |
|
| 配置用于选择节点的要求。 |
|
| 包含执行以下操作的配置:
如需更多信息,请参阅"将设备添加到卷组"。 |
|
| 指定设备路径。
如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,则 |
|
| 指定可选设备路径。 如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,LVM Storage 会忽略该设备而不造成错误。 |
|
| LVM 存储只使用那些为空且不包含文件系统签名的磁盘。为确保磁盘为空,且不包含文件系统签名,请在使用磁盘前擦除磁盘。
要强制擦除所选设备,请将此字段设置为 警告
如果此字段设为 如果满足以下条件,则设备可能会导致数据完整性不一致:
如果这些条件为 true,请不要强制擦除磁盘。相反,您必须手动擦除磁盘。 |
|
| 包含在 LVM 卷组中创建精简池的配置。 如果您排除此字段,逻辑卷将被置备。 使用 thick-provisioned 存储包括以下限制:
|
|
| 为精简池指定一个名称。 |
|
| 指定 LVM 卷组中空间的百分比,用于创建精简池。 默认情况下,此字段设置为 90。您可以设置的最小值为 10,最大值为 90。 |
|
| 指定您可以根据精简池中可用存储置备额外存储的因素。 例如,如果此字段设置为 10,您可以在精简池中置备可用存储量最多 10 倍。您可以在 LVM 集群创建后修改此字段。 要更新该参数,请执行以下任一任务:
oc edit lvmcluster <lvmcluster_name>
oc patch lvmcluster <lvmcluster_name> -p <patch_file.yaml>
要禁用过度置备,请将此字段设置为 1。 |
|
|
为精简池指定静态计算的块大小。只有在
如果您没有配置此字段,且 如需更多信息,请参阅"块大小概述"。 |
|
|
指定计算基础卷组块大小的策略。您可以将此字段设置为
如果此字段设置为
如果此字段设置为 如需更多信息,请参阅"配置 LVM 存储中使用的设备大小的限制"。 |
|
|
指定精简池的元数据大小。只有在
如果没有配置此字段,并且
此字段的值必须在 2 MiB 到 16 GiB 之间配置,因为 |
|
|
指定计算基础卷组元数据大小的策略。您可以将此字段设置为
如果此字段设置为
如果此字段设置为 |
5.4.2.1. 配置在 LVM 存储中使用的设备大小的限制 复制链接链接已复制到粘贴板!
使用 LVM 存储配置可用于置备存储的设备大小的限制如下:
- 您可以置备的总存储大小受底层逻辑卷管理器(LVM)精简池的大小以及过度置备因素的限制。
逻辑卷的大小取决于物理扩展(PE)和逻辑扩展(LE)的大小。
- 您可以在创建物理和虚拟设备的过程中定义 PE 和 LE 的大小。
- 默认的 PE 和 LE 大小为 4 MB。
- 如果增加 PE 的大小,LVM 的最大大小由内核限值和您的磁盘空间决定。
下表描述了静态和主机配置的块大小和卷大小限制:
参数 | value |
---|---|
块大小 | 128 KiB |
最大卷大小 | 32 TiB |
参数 | 最小值 | 最大值 |
---|---|---|
块大小 | 64 KiB | 1 GiB |
卷大小 | 底层 Red Hat Enterprise Linux CoreOS (RHCOS) 系统的最小大小。 | 底层 RHCOS 系统的最大大小。 |
参数 | value |
---|---|
块大小 |
这个值基于 |
最大卷大小 | 等于底层 RHCOS 系统的最大卷大小。 |
最小卷大小 | 等于底层 RHCOS 系统的最小卷大小。 |
5.4.2.2. 关于在卷组中添加设备 复制链接链接已复制到粘贴板!
LVMCluster
CR 中的 deviceSelector
字段包含指定您要添加到 LVM 卷组的设备的路径。
您可以在 deviceSelector.paths
字段,或 deviceSelector.optionalPaths
字段,或这两个字段中指定设备路径。如果您没有在 deviceSelector.paths
字段和 deviceSelector.optionalPaths
字段中指定设备路径,LVM Storage 会将支持的未使用的设备添加到卷组 (VG)。
建议您避免使用符号命名(如 /dev/sdX
)引用磁盘,因为这些名称可能会在 RHCOS 中在重启后有所变化。反之,您必须使用稳定的命名方案,如 /dev/disk/by-path/
或 /dev/disk/by-id/
来确保磁盘识别的一致性。
在这个版本中,当监控为每个节点收集安装设备信息时,您可能需要调整现有的自动化工作流。
如需更多信息,请参阅 RHEL 文档。
您可以将路径添加到 deviceSelector
字段中的 RAID 阵列,以将 RAID 阵列与 LVM 存储集成。您可以使用 mdadm
工具创建 RAID 阵列。LVM 存储不支持创建软件 RAID。
您只能在 OpenShift Container Platform 安装过程中创建 RAID 阵列。有关创建 RAID 阵列的详情,请查看以下部分:
- "添加资源"中配置启用了 RAID 的数据卷。
- 在安装的系统中创建软件 RAID
- 替换 RAID 中失败的磁盘
- 修复 RAID 磁盘
您还可以将加密设备添加到卷组中。您可以在 OpenShift Container Platform 安装过程中在集群节点上启用磁盘加密。加密设备后,您可以在 deviceSelector
字段中指定 LUKS 加密设备的路径。有关磁盘加密的详情,请参考"关于磁盘加密"和"配置磁盘加密和镜像"。
LVM 存储必须支持您要添加到 VG 的设备。有关不支持的设备的详情,请参考"LVM Storage 不支持的设备"。
只有在满足以下条件时,LVM 存储才会将设备添加到 VG:
- 设备路径存在。
- LVM 存储支持该设备。
将设备添加到 VG 后,您无法删除该设备。
LVM 存储支持动态设备发现。如果您没有在 LVMCluster
CR 中添加 deviceSelector
字段,LVM Storage 会在设备可用时自动将新设备添加到 VG。
因为以下原因,不建议通过动态设备发现将设备添加到 VG 中:
- 当您添加了一个您并不希望添加到 VG 的新设备时,LVM 存储会自动通过动态设备发现功能将这个设备添加到 VG。
- 如果 LVM 存储通过动态设备发现向 VG 添加了设备,LVM 存储不会限制您从节点中删除该设备。删除或更新已添加到 VG 的设备可能会破坏 VG。这也可能导致数据丢失并需要手动节点补救。
5.4.2.3. LVM 存储不支持的设备 复制链接链接已复制到粘贴板!
当在 LVMCluster
自定义资源(CR)的 deviceSelector
字段中添加设备路径时,请确保 LVM Storage 支持设备。如果您在不支持的设备中添加路径,则 LVM 存储会排除设备以避免管理逻辑卷的复杂性。
如果您没有在 deviceSelector
字段中指定任何设备路径,则 LVM Storage 只添加它支持的未使用设备。
要获取有关设备的信息,请运行以下命令:
lsblk --paths --json -o \ NAME,ROTA,TYPE,SIZE,MODEL,VENDOR,RO,STATE,KNAME,SERIAL,PARTLABEL,FSTYPE
$ lsblk --paths --json -o \
NAME,ROTA,TYPE,SIZE,MODEL,VENDOR,RO,STATE,KNAME,SERIAL,PARTLABEL,FSTYPE
LVM 存储不支持以下设备:
- 只读设备
-
将
ro
参数设置为true
的设备。 - 暂停设备
-
将
state
参数设置为suspended
的设备。 - ROM 设备
-
将
type
参数设置为rom
的设备。 - LVM 分区设备
-
将
type
参数设置为lvm
的设备。 - 具有无效分区标签的设备
-
将
partlabel
参数设置为bios
、boot
或reserved
的设备。 - 带无效文件系统的设备
将
fstype
参数设置为null
或LVM2_member
以外的任何值的设备。重要只有在设备不包含子设备时,LVM Storage 才支持将
fstype
参数设置为LVM2_member
的设备。- 属于另一个卷组的设备
要获取该设备的卷组信息,请运行以下命令:
pvs <device-name>
$ pvs <device-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<device-name>
替换为设备名称。
- 带有绑定挂载的设备
要获取设备的挂载点,请运行以下命令:
cat /proc/1/mountinfo | grep <device-name>
$ cat /proc/1/mountinfo | grep <device-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<device-name>
替换为设备名称。
- 包含子设备的设备
建议您在 LVM 存储中使用该设备前擦除该设备以防止意外行为。
5.4.3. 创建 LVMCluster 自定义资源的方法 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)或 OpenShift Container Platform Web 控制台创建 LVMCluster
自定义资源 (CR)。如果您使用 Red Hat Advanced Cluster Management (RHACM) 安装 LVM 存储,您还可以使用 RHACM 创建 LVMCluster
CR。
您必须在安装 LVM Storage Operator 的同一命名空间中创建 LVMCluster
CR,默认为 openshift-storage
。
创建 LVMCluster
CR 后,LVM 存储会创建以下系统管理的 CR:
每个设备类的
storageClass
和volumeSnapshotClass
。注意LVM Storage 配置存储类和卷快照类的名称,格式为
lvms-<device_class_name>
,其中<device_class_name>
是LVMCluster
CR 中的deviceClasses.name
字段的值。例如,如果deviceClasses.name
字段设置为 vg1,则存储类的名称和卷快照类为lvms-vg1
。-
LVMVolumeGroup
:此 CR 是由 LVM 卷组支持的特定类型的持久性卷 (PV)。它在多个节点中跟踪各个卷组。 -
LVMVolumeGroupNodeStatus
:此 CR 跟踪节点上卷组的状态。
5.4.3.1. 使用之前 LVM 存储安装中的卷组 复制链接链接已复制到粘贴板!
您可以重复使用之前 LVM 存储安装中的现有卷组(VG),而不是创建新的 VG。
您只能重复使用 VG,但不能重复利用与 VG 关联的逻辑卷。
您只能在创建 LVMCluster
自定义资源 (CR) 时执行这个步骤。
先决条件
- 要重复使用的 VG 不得被损坏。
-
要重复使用的 VG 必须具有
lvms
标签。有关向 LVM 对象添加标签的更多信息,请参阅使用标签对 LVM 对象进行分组。
流程
-
打开
LVMCluster
CR YAML 文件。 配置
LVMCluster
CR 参数,如下例所示:LVMCluster
CR YAML 文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将此字段设置为之前 LVM 存储安装的 VG 的名称。
- 2
- 将此字段设置为
ext4
或xfs
。默认情况下,此字段设置为xfs
。 - 3
- 您可以通过在
deviceSelector
字段中指定新设备路径,将新设备添加到要重复使用的 VG。如果您不想在 VG 中添加新设备,请确保当前 LVM 存储安装中的deviceSelector
配置与之前的 LVM 存储安装相同。 - 4
- 如果此字段设为
true
,则 LVM 存储会擦除添加到 VG 的设备中的所有数据。 - 5
- 要保留您要重复使用的 VG 的
thinPoolConfig
配置,请确保当前 LVM 存储安装中的thinPoolConfig
配置与之前的 LVM 存储安装相同。否则,您可以根据需要配置thinPoolConfig
字段。 - 6
- 配置要求以选择要在其上创建 LVM 卷组的节点。如果此字段为空,则会考虑所有没有调度污点的节点。
-
保存
LVMCluster
CR YAML 文件。
要查看属于卷组的设备,请运行以下命令:
pvs -S vgname=<vg_name>
$ pvs -S vgname=<vg_name>
- 1
- 将
<vg_name>
替换为卷组的名称。
5.4.3.2. 使用 CLI 创建 LVMCluster CR 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)在 worker 节点上创建 LVMCluster
自定义资源 (CR)。
您只能在 OpenShift Container Platform 集群中创建 LVMCluster
自定义资源 (CR) 的单一实例。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
已以具有
cluster-admin
权限的用户身份登录 OpenShift Container Platform。 - 已安装 LVM 存储。
- 已在集群中安装了 worker 节点。
- 您可以阅读 "About the LVMCluster 自定义资源" 部分。
流程
创建
LVMCluster
自定义资源(CR) YAML 文件:LVMCluster
CR YAML 文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
LVMCluster
CR:oc create -f <file_name>
$ oc create -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
lvmcluster/lvmcluster created
lvmcluster/lvmcluster created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
LVMCluster
CR 是否处于Ready
状态:oc get lvmclusters.lvm.topolvm.io -o jsonpath='{.items[*].status}' -n <namespace>
$ oc get lvmclusters.lvm.topolvm.io -o jsonpath='{.items[*].status}' -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果
LVMCluster
CR 处于Failed
状态,您可以在status
字段中查看失败的原因。带有 failue 原因的
status
字段示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要查看 LVM Storage 为每个设备类创建的存储类,请运行以下命令:
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-vg1 topolvm.io Delete WaitForFirstConsumer true 31m
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-vg1 topolvm.io Delete WaitForFirstConsumer true 31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要查看 LVM Storage 为每个设备类创建的卷快照类,请运行以下命令:
oc get volumesnapshotclass
$ oc get volumesnapshotclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DRIVER DELETIONPOLICY AGE lvms-vg1 topolvm.io Delete 24h
NAME DRIVER DELETIONPOLICY AGE lvms-vg1 topolvm.io Delete 24h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.3.3. 使用 Web 控制台创建 LVMCluster CR 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台在 worker 节点上创建 LVMCluster
CR。
您只能在 OpenShift Container Platform 集群中创建 LVMCluster
自定义资源 (CR) 的单一实例。
先决条件
-
您可以使用
cluster-admin
权限访问 OpenShift Container Platform 集群。 - 已安装 LVM 存储。
- 已在集群中安装了 worker 节点。
- 您可以阅读 "About the LVMCluster 自定义资源" 部分。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Operators
Installed Operators。 -
在
openshift-storage
命名空间中,点 LVM Storage。 - 点 Create LVMCluster 并选择 Form view 或 YAML view。
-
配置所需的
LVMCluster
CR 参数。 - 点 Create。
可选: 如果要编辑
LVMCLuster
CR,请执行以下操作:- 点 LVMCluster 选项卡。
- 在 Actions 菜单中,选择 Edit LVMCluster。
-
点 YAML 并编辑所需的
LVMCLuster
CR 参数。 - 点击 Save。
验证
-
在 LVMCLuster 页面中,检查
LVMCluster
CR 是否处于Ready
状态。 -
可选: 要查看 LVM Storage 为每个设备类创建的可用存储类,请点 Storage
StorageClasses。 -
可选: 要查看 LVM Storage 为每个设备类创建的可用卷快照类,请点 Storage
VolumeSnapshotClasses。
5.4.3.4. 使用 RHACM 创建 LVMCluster CR 复制链接链接已复制到粘贴板!
使用 RHACM 安装 LVM 存储后,您必须创建一个 LVMCluster
自定义资源(CR)。
先决条件
- 已使用 RHACM 安装 LVM 存储。
-
您可以使用具有
cluster-admin
权限的账户访问 RHACM 集群。 - 您可以阅读 "About the LVMCluster 自定义资源" 部分。
流程
- 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
使用配置创建
ConfigurationPolicy
CR YAML 文件以创建LVMCluster
CR:创建
LVMCluster
CR 的ConfigurationPolicy
CR YAML 文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
ConfigurationPolicy
CR:oc create -f <file_name> -n <cluster_namespace>
$ oc create -f <file_name> -n <cluster_namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 安装 LVM 存储的 OpenShift Container Platform 集群的命名空间。
5.4.4. 删除 LVMCluster 自定义资源的方法 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)或 OpenShift Container Platform Web 控制台删除 LVMCluster
自定义资源 (CR)。如果您使用 Red Hat Advanced Cluster Management (RHACM)安装 LVM 存储,您还可以使用 RHACM 删除 LVMCluster
CR。
删除 LVMCluster
CR 后,LVM Storage 会删除以下 CR:
-
storageClass
-
volumeSnapshotClass
-
LVMVolumeGroup
-
LVMVolumeGroupNodeStatus
5.4.4.1. 使用 CLI 删除 LVMCluster CR 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)删除 LVMCluster
自定义资源(CR)。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 - 您已删除 LVM 存储置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令来删除
LVMCluster
CR:oc delete lvmcluster <lvm_cluster_name> -n openshift-storage
$ oc delete lvmcluster <lvm_cluster_name> -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证
LVMCluster
CR 已被删除,请运行以下命令:oc get lvmcluster -n <namespace>
$ oc get lvmcluster -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
No resources found in openshift-storage namespace.
No resources found in openshift-storage namespace.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.4.2. 使用 Web 控制台删除 LVMCluster CR 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台删除 LVMCluster
自定义资源 (CR)。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 - 您已删除 LVM 存储置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Operators
Installed Operators 查看所有已安装的 Operator。 -
点
openshift-storage
命名空间中的 LVM Storage。 - 点 LVMCluster 选项卡。
- 在 Actions 中,选择 Delete LVMCluster。
- 点击 Delete。
验证
-
在
LVMCLuster
页面中,检查LVMCluster
CR 已被删除。
5.4.4.3. 使用 RHACM 删除 LVMCluster CR 复制链接链接已复制到粘贴板!
如果您使用 Red Hat Advanced Cluster Management (RHACM) 安装 LVM 存储,您可以使用 RHACM 删除 LVMCluster
CR。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 RHACM 集群。 - 您已删除 LVM 存储置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
流程
- 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
删除为
LVMCluster
CR 创建的ConfigurationPolicy
CR YAML 文件:oc delete -f <file_name> -n <cluster_namespace>
$ oc delete -f <file_name> -n <cluster_namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 安装 LVM 存储的 OpenShift Container Platform 集群的命名空间。
创建
Policy
CR YAML 文件以删除LVMCluster
CR:删除
LVMCluster
CR 的Policy
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Policy
CR:oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Policy
CR YAML 文件来检查LVMCluster
CR 已被删除:检查
LVMCluster
CR 已被删除的Policy
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Policy
CR:oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,检查
Policy
CR 的状态:oc get policy -n <namespace>
$ oc get policy -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME REMEDIATION ACTION COMPLIANCE STATE AGE policy-lvmcluster-delete enforce Compliant 15m policy-lvmcluster-inform inform Compliant 15m
NAME REMEDIATION ACTION COMPLIANCE STATE AGE policy-lvmcluster-delete enforce Compliant 15m policy-lvmcluster-inform inform Compliant 15m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Policy
CR 必须处于Compliant
状态。
5.4.5. 置备存储 复制链接链接已复制到粘贴板!
使用 LVMCluster
自定义资源(CR) 创建 LVM 卷组后,您可以通过创建持久性卷声明 (PVC) 来置备存储。
以下是您可以为每个文件系统类型请求的最小存储大小:
-
块设备
: 8 MiB -
XFS
: 300 MiB -
ext4
: 32 MiB
要创建 PVC,您必须创建一个 PersistentVolumeClaim
对象。
先决条件
-
您已创建了
LVMCluster
CR。
流程
-
登录 OpenShift CLI (
oc
)。 创建
PersistentVolumeClaim
对象:PersistentVolumeClaim
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 为 PVC 指定名称。
- 2
- 要创建块 PVC,请将此字段设置为
Block
。要创建文件 PVC,请将此字段设置为Filesystem
。 - 3
- 指定存储大小。如果值小于最小存储大小,则请求的存储大小将舍入到最小存储大小。您可以置备的总存储大小受逻辑卷管理器 (LVM) 精简池的大小和过度置备因素的限制。
- 4
- 可选:指定存储限制。将此字段设置为大于或等于最小存储大小的值。否则,PVC 创建会失败并显示错误。
- 5
storageClassName
字段的值的格式为lvms-<device_class_name>
,其中<device_class_name>
是LVMCluster
CR 中的deviceClasses.name
字段的值。例如,如果deviceClasses.name
字段设置为vg1
,您必须将storageClassName
字段设置为lvms-vg1
。
注意存储类的
volumeBindingMode
字段设置为WaitForFirstConsumer
。运行以下命令来创建 PVC:
oc create -f <file_name> -n <application_namespace>
# oc create -f <file_name> -n <application_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在部署使用它们的 pod 之前,创建的 PVC 会一直处于
Pending
状态。
验证
要验证 PVC 是否已创建,请运行以下命令:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1 Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1 Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.6. 扩展集群存储的方法 复制链接链接已复制到粘贴板!
OpenShift Container Platform 为裸机用户置备的基础架构上的集群支持额外的 worker 节点。您可以通过添加带有可用存储的新 worker 节点或向现有 worker 节点添加新设备来扩展集群的存储。
当节点处于活动状态时,逻辑卷管理器 (LVM) 存储会检测并使用额外的 worker 节点。
要在集群中的现有 worker 节点中添加新设备,您必须在 LVMCluster
自定义资源(CR)的 deviceSelector
字段中向新设备添加路径。
您只能在创建 LVMCluster
CR 时在 LVMCluster
CR 中添加 deviceSelector
字段。如果您在创建 LVMCluster
CR 时没有添加 deviceSelector
字段,您必须删除 LVMCluster
CR 并创建一个包含 deviceSelector
字段的新 LVMCluster
CR。
如果您没有在 LVMCluster
CR 中添加 deviceSelector
字段,LVM Storage 会在设备可用时自动添加新设备。
LVM 存储只添加支持的设备。有关不支持的设备的详情,请参考"LVM Storage 不支持的设备"。
5.4.6.1. 使用 CLI 扩展集群存储 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)扩展集群中的 worker 节点的存储容量。
先决条件
- 每个集群中都有额外的未使用的设备,供逻辑卷管理器(LVM)存储使用。
-
已安装 OpenShift CLI(
oc
)。 -
您已创建了
LVMCluster
自定义资源 (CR)。
流程
运行以下命令来编辑
LVMCluster
CR:oc edit <lvmcluster_file_name> -n <namespace>
$ oc edit <lvmcluster_file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
deviceSelector
字段中添加新设备的路径。LVMCluster
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 包含指定您要添加到 LVM 卷组的设备的路径。您可以在
paths
字段,optionalPaths
字段会这两个字段中指定设备路径。如果您没有在paths
和optionalPaths
中指定设备路径,则逻辑卷管理器 (LVM) 存储会将支持的未使用的设备添加到 LVM 卷组。只有在满足以下条件时,LVM 存储才会将设备添加到 LVM 卷组中:- 设备路径存在。
- LVM 存储支持该设备。有关不支持的设备的详情,请参考"LVM Storage 不支持的设备"。
- 2
- 指定设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,则
LVMCluster
CR 会进入Failed
状态。 - 3
- 指定可选设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,LVM Storage 会忽略该设备而不造成错误。重要
将设备添加到 LVM 卷组后,无法删除它。
-
保存
LVMCluster
CR。
5.4.6.2. 使用 Web 控制台扩展集群存储 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台扩展集群中的 worker 节点的存储容量。
先决条件
- 每个集群中都有额外的未使用的设备,供逻辑卷管理器(LVM)存储使用。
-
您已创建了
LVMCluster
自定义资源 (CR)。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Operators
Installed Operators。 -
点
openshift-storage
命名空间中的 LVM Storage。 -
点 LVMCluster 选项卡查看在集群中创建的
LVMCluster
CR。 - 在 Actions 菜单中,选择 Edit LVMCluster。
- 点 YAML 标签。
编辑
LVMCluster
CR,在deviceSelector
字段中添加新设备路径:LVMCluster
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 包含指定您要添加到 LVM 卷组的设备的路径。您可以在
paths
字段,optionalPaths
字段会这两个字段中指定设备路径。如果您没有在paths
和optionalPaths
中指定设备路径,则逻辑卷管理器 (LVM) 存储会将支持的未使用的设备添加到 LVM 卷组。只有在满足以下条件时,LVM 存储才会将设备添加到 LVM 卷组中:- 设备路径存在。
- LVM 存储支持该设备。有关不支持的设备的详情,请参考"LVM Storage 不支持的设备"。
- 2
- 指定设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,则
LVMCluster
CR 会进入Failed
状态。 - 3
- 指定可选设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,LVM Storage 会忽略该设备而不造成错误。重要
将设备添加到 LVM 卷组后,无法删除它。
- 点击 Save。
5.4.6.3. 使用 RHACM 扩展集群存储 复制链接链接已复制到粘贴板!
您可以使用 RHACM 扩展集群中的 worker 节点的存储容量。
先决条件
-
您可以使用具有
cluster-admin
特权的帐户访问 RHACM 集群。 -
已使用 RHACM 创建
LVMCluster
自定义资源 (CR)。 - 每个集群中都有额外的未使用的设备,供逻辑卷管理器(LVM)存储使用。
流程
- 使用 OpenShift Container Platform 凭证登录到 RHACM CLI。
运行以下命令,编辑使用 RHACM 创建的
LVMCluster
CR:oc edit -f <file_name> -n <namespace>
$ oc edit -f <file_name> -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<file_name>
替换为LVMCluster
CR 的名称。
在
LVMCluster
CR 中,在deviceSelector
字段中向新设备添加路径。LVMCluster
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 包含指定您要添加到 LVM 卷组的设备的路径。您可以在
paths
字段,optionalPaths
字段会这两个字段中指定设备路径。如果您没有在paths
和optionalPaths
中指定设备路径,则逻辑卷管理器 (LVM) 存储会将支持的未使用的设备添加到 LVM 卷组。只有在满足以下条件时,LVM 存储才会将设备添加到 LVM 卷组中:- 设备路径存在。
- LVM 存储支持该设备。有关不支持的设备的详情,请参考"LVM Storage 不支持的设备"。
- 2
- 指定设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,则
LVMCluster
CR 会进入Failed
状态。 - 3
- 指定可选设备路径。如果此字段中指定的设备路径不存在,或者 LVM Storage 不支持该设备,LVM Storage 会忽略该设备而不造成错误。重要
将设备添加到 LVM 卷组后,无法删除它。
-
保存
LVMCluster
CR。
5.4.7. 扩展持久性卷声明 复制链接链接已复制到粘贴板!
扩展集群的存储后,您可以扩展现有持久性卷声明 (PVC)。
要扩展 PVC,您必须更新 PVC 中的 storage
字段。
先决条件
- 使用动态置备。
-
与 PVC 关联的
StorageClass
对象将allowVolumeExpansion
字段设置为true
。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令,将
spec.resources.requests.storage
字段的值更新为大于当前值的值:oc patch pvc <pvc_name> -n <application_namespace> \ --type=merge -p \ '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'
$ oc patch pvc <pvc_name> -n <application_namespace> \
1 --type=merge -p \ '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证大小是否已完成,请运行以下命令:
oc get pvc <pvc_name> -n <application_namespace> -o=jsonpath={.status.capacity.storage}
$ oc get pvc <pvc_name> -n <application_namespace> -o=jsonpath={.status.capacity.storage}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM 存储在扩展过程中为 PVC 添加
Resizing
条件。它在 PVC 扩展后删除Resizing
条件。
5.4.8. 删除持久性卷声明 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)删除持久性卷声明 (PVC)。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令来删除 PVC:
oc delete pvc <pvc_name> -n <namespace>
$ oc delete pvc <pvc_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证 PVC 已被删除,请运行以下命令:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出中不能存在已删除的 PVC。
5.4.9. 关于卷快照 复制链接链接已复制到粘贴板!
您可以创建由 LVM Storage 置备的持久性卷声明(PVC) 的快照。
您可以使用卷快照执行以下操作:
备份应用程序数据。
重要卷快照位于与原始数据相同的设备上。要将卷快照用作备份,您必须将快照移到安全位置。您可以使用 OpenShift API 进行数据保护 (OADP)备份和恢复解决方案。有关 OADP 的详情,请参考 "OADP features"。
- 恢复到进行卷快照时的状态。
您还可以创建卷克隆的卷快照。
5.4.9.1. 在多节点拓扑中创建卷快照的限制 复制链接链接已复制到粘贴板!
LVM 存储在多节点拓扑中创建卷快照有以下限制:
- 创建卷快照基于 LVM 精简池功能。
- 创建卷快照后,节点必须具有额外的存储空间才能进一步更新原始数据源。
- 您只能在部署原始数据源的节点上创建卷快照。
- 依赖于使用快照数据的 PVC 的 Pod 只能调度到部署原始数据源的节点。
5.4.9.2. 创建卷快照 复制链接链接已复制到粘贴板!
您可以根据精简池的可用容量和过度置备限制创建卷快照。要创建卷快照,您必须创建一个 VolumeSnapshotClass
对象。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 -
确保持久性卷声明(PVC)处于
Bound
状态。对于快照的一致性,这是必需的。 - 您已停止所有到 PVC 的 I/O。
流程
-
登录 OpenShift CLI (
oc
)。 创建
VolumeSnapshot
对象:VolumeSnapshot
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要获取可用卷快照类列表,请运行以下命令:
oc get volumesnapshotclass
$ oc get volumesnapshotclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在创建源 PVC 的命名空间中创建卷快照:
oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM 存储会创建一个 PVC 的只读副本作为卷快照。
验证
要验证卷快照是否已创建,请运行以下命令:
oc get volumesnapshot -n <namespace>
$ oc get volumesnapshot -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE lvm-block-1-snap true lvms-test-1 1Gi lvms-vg1 snapcontent-af409f97-55fc-40cf-975f-71e44fa2ca91 19s 19s
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE lvm-block-1-snap true lvms-test-1 1Gi lvms-vg1 snapcontent-af409f97-55fc-40cf-975f-71e44fa2ca91 19s 19s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您创建的卷快照的
READYTOUSE
字段的值必须是true
。
5.4.9.3. 恢复卷快照 复制链接链接已复制到粘贴板!
要恢复卷快照,您必须创建一个 PVC,并将 dataSource.name
字段设置为卷快照的名称。
恢复的 PVC 独立于卷快照和源 PVC。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 - 您已创建了卷快照。
流程
-
登录 OpenShift CLI (
oc
)。 使用配置创建
PersistentVolumeClaim
对象来恢复卷快照:恢复卷快照的
PersistentVolumeClaim
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在您创建卷快照的命名空间中创建 PVC:
oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证卷快照是否已恢复,请运行以下命令:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1-restore Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1-restore Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.9.4. 删除卷快照 复制链接链接已复制到粘贴板!
您可以删除持久性卷声明 (PVC) 的卷快照。
当您删除持久性卷声明 (PVC) 时,LVM Storage 只删除 PVC,而不是删除 PVC 的快照。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 - 您已确保没有删除的卷 snpashot。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令来删除卷快照:
oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
$ oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证卷快照是否已删除,请运行以下命令:
oc get volumesnapshot -n <namespace>
$ oc get volumesnapshot -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出中不能存在删除的卷快照。
5.4.10. 关于卷克隆 复制链接链接已复制到粘贴板!
卷克隆是现有持久性卷声明 (PVC) 的副本。您可以创建一个卷克隆来复制数据的时间点副本。
5.4.10.1. 在多节点拓扑中创建卷克隆的限制 复制链接链接已复制到粘贴板!
LVM 存储在多节点拓扑中创建卷克隆有以下限制:
- 创建卷克隆基于 LVM 精简池功能。
- 在创建卷克隆后,节点必须有额外的存储才能进一步更新原始数据源。
- 您只能在部署原始数据源的节点上创建卷克隆。
- 依赖于使用克隆数据的 PVC 的 Pod 只能调度到部署原始数据源的节点。
5.4.10.2. 创建卷克隆 复制链接链接已复制到粘贴板!
要创建持久性卷声明 (PVC) 的克隆,您必须在创建源 PVC 的命名空间中创建 PersistentVolumeClaim
对象。
克隆的 PVC 具有写入访问权限。
先决条件
-
确保源 PVC 处于
Bound
状态。这是一致的克隆所必需的。
流程
-
登录 OpenShift CLI (
oc
)。 创建
PersistentVolumeClaim
对象:用于创建卷克隆的
PersistentVolumeClaim
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在创建源 PVC 的命名空间中创建 PVC:
oc create -f <file_name> -n <namespace>
$ oc create -f <file_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证卷克隆是否已创建,请运行以下命令:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1-clone Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvm-block-1-clone Bound pvc-e90169a8-fd71-4eea-93b8-817155f60e47 1Gi RWO lvms-vg1 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.10.3. 删除卷克隆 复制链接链接已复制到粘贴板!
您可以删除卷克隆。
当您删除持久性卷声明 (PVC) 时,LVM Storage 只删除源持久性卷声明 (PVC),而不是删除 PVC 的克隆。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令来删除克隆的 PVC:
oc delete pvc <clone_pvc_name> -n <namespace>
# oc delete pvc <clone_pvc_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证卷克隆是否已删除,请运行以下命令:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出中不能存在删除的卷克隆。
5.4.11. 更新 LVM 存储 复制链接链接已复制到粘贴板!
您可以更新 LVM Storage 以确保与 OpenShift Container Platform 版本兼容。
先决条件
- 您已更新了 OpenShift Container Platform 集群。
- 已安装以前的 LVM 存储版本。
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
cluster-admin
权限的账户访问集群。
流程
-
登录 OpenShift CLI (
oc
)。 运行以下命令,更新安装 LVM 存储时创建的
Subscription
自定义资源 (CR):oc patch subscription lvms-operator -n openshift-storage --type merge --patch '{"spec":{"channel":"<update_channel>"}}'
$ oc patch subscription lvms-operator -n openshift-storage --type merge --patch '{"spec":{"channel":"<update_channel>"}}'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<update_channel>
替换为您要安装的 LVM 存储版本。例如:stable-4.19
。
运行以下命令,查看更新事件以检查安装是否已完成:
oc get events -n openshift-storage
$ oc get events -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证 LVM 存储版本:
oc get subscription lvms-operator -n openshift-storage -o jsonpath='{.status.installedCSV}'
$ oc get subscription lvms-operator -n openshift-storage -o jsonpath='{.status.installedCSV}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
lvms-operator.v4.19
lvms-operator.v4.19
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.12. 监控 LVM 存储 复制链接链接已复制到粘贴板!
要启用集群监控,您必须在安装 LVM 存储的命名空间中添加以下标签:
openshift.io/cluster-monitoring=true
openshift.io/cluster-monitoring=true
5.4.12.1. 指标 复制链接链接已复制到粘贴板!
您可以通过查看指标来监控 LVM 存储。
下表描述了 topolvm
指标:
警报 | 描述 |
---|---|
| 表示 LVM thinpool 中使用的数据空间百分比。 |
| 表示 LVM thinpool 中使用的元数据空间百分比。 |
| 表示 LVM 精简池的大小(以字节为单位)。 |
| 表示 LVM 卷组中的可用空间(以字节为单位)。 |
| 表示 LVM 卷组的大小(以字节为单位)。 |
| 表示 LVM 精简池的可用过度置备大小(以字节为单位)。 |
指标每 10 分钟更新一次,或者在精简池中有变化(如创建新逻辑卷)时更新。
5.4.12.2. 警报 复制链接链接已复制到粘贴板!
当精简池和卷组达到最大存储容量时,进一步的操作会失败。这会导致数据丢失。
当使用精简池和卷组超过特定值时,LVM 存储会发送以下警报:
警报 | 描述 |
---|---|
| 当卷组和精简池用量超过节点上的 75% 时,会触发此警报。需要删除数据或卷组扩展。 |
| 当卷组和精简池使用超过节点上的 85% 时,会触发此警报。在这种情况下,卷组几乎已满。需要删除数据或卷组扩展。 |
| 当卷组中的精简池数据 uusage 超过节点上的 75% 时,会触发此警报。需要删除数据或精简池扩展。 |
| 当卷组中的精简池数据使用量超过节点上的 85% 时,会触发此警报。需要删除数据或精简池扩展。 |
| 当卷组中的精简池元数据使用量超过节点上的 75% 时,会触发此警报。需要删除数据或精简池扩展。 |
| 当卷组中的精简池元数据使用量超过节点上的 85% 时,会触发此警报。需要删除数据或精简池扩展。 |
5.4.13. 使用 CLI 卸载 LVM 存储 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc
)卸载 LVM Storage。
先决条件
-
已以具有
cluster-admin
权限的用户身份登录oc
。 - 已删除由 LVM Storage 置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
-
已删除
LVMCluster
自定义资源 (CR)。
流程
运行以下命令,获取 LVM Storage Operator 的
currentCSV
值:oc get subscription.operators.coreos.com lvms-operator -n <namespace> -o yaml | grep currentCSV
$ oc get subscription.operators.coreos.com lvms-operator -n <namespace> -o yaml | grep currentCSV
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
currentCSV: lvms-operator.v4.15.3
currentCSV: lvms-operator.v4.15.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除订阅:
oc delete subscription.operators.coreos.com lvms-operator -n <namespace>
$ oc delete subscription.operators.coreos.com lvms-operator -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
subscription.operators.coreos.com "lvms-operator" deleted
subscription.operators.coreos.com "lvms-operator" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,删除目标命名空间中 LVM Storage Operator 的 CSV:
oc delete clusterserviceversion <currentCSV> -n <namespace>
$ oc delete clusterserviceversion <currentCSV> -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<currentCSV>
替换为 LVM Storage Operator 的currentCSV
值。
输出示例
clusterserviceversion.operators.coreos.com "lvms-operator.v4.15.3" deleted
clusterserviceversion.operators.coreos.com "lvms-operator.v4.15.3" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证 LVM Storage Operator 是否已卸载,请运行以下命令:
oc get csv -n <namespace>
$ oc get csv -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 LVM Storage Operator 已被成功卸载,则不会出现在这个命令的输出中。
5.4.14. 使用 Web 控制台卸载 LVM 存储 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台卸载 LVM Storage。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 OpenShift Container Platform。 - 您已删除 LVM 存储置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
-
您已删除
LVMCluster
自定义资源 (CR)。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
-
点 Operators
Installed Operators。 -
点
openshift-storage
命名空间中的 LVM Storage。 - 点 Details 标签页。
- 在 Actions 菜单中,选择 Uninstall Operator。
- 可选:在提示时,选择 Delete all operand instances for this operator 复选框来删除 LVM Storage 的操作对象实例。
- 点 Uninstall。
5.4.15. 卸载使用 RHACM 安装的 LVM 存储 复制链接链接已复制到粘贴板!
要卸载使用 RHACM 安装的 LVM 存储,您必须删除为安装和配置 LVM 存储而创建的 RHACM Policy
自定义资源 (CR)。
先决条件
-
您可以使用具有
cluster-admin
权限的用户访问 RHACM 集群。 - 您已删除 LVM 存储置备的持久性卷声明 (PVC)、卷快照和卷克隆。您还已删除了使用这些资源的应用程序。
-
您已删除使用 RHACM 创建的
LVMCluster
CR。
流程
-
登录 OpenShift CLI (
oc
)。 使用以下命令删除为安装和配置 LVM 存储而创建的 RHACM
Policy
CR:oc delete -f <policy> -n <namespace>
$ oc delete -f <policy> -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<policy>
替换为Policy
CR YAML 文件的名称。
使用配置创建
Policy
CR YAML 文件来卸载 LVM 存储:卸载 LVM 存储的
Policy
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Policy
CR:oc create -f <policy> -ns <namespace>
$ oc create -f <policy> -ns <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.16. 使用 must-gather 下载日志文件和诊断信息 复制链接链接已复制到粘贴板!
如果 LVM 存储无法自动解决问题,请使用 must-gather 工具收集日志文件和诊断信息,以便您或红帽支持可以查看问题并确定解决方案。
流程
从连接到 LVM 存储集群的客户端运行
must-gather
命令:oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.19 --dest-dir=<directory_name>
$ oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.19 --dest-dir=<directory_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.17. 持久性存储故障排除 复制链接链接已复制到粘贴板!
在使用逻辑卷管理器 (LVM) 存储配置持久性存储时,您可能会遇到一些需要故障排除的问题。
5.4.17.1. 检查 PVC 处于 Pending 状态 复制链接链接已复制到粘贴板!
持久性卷声明 (PVC) 可能会因为以下原因处于 Pending
状态:
- 计算资源不足。
- 网络问题。
- 不匹配的存储类或节点选择器。
- 没有可用的持久性卷 (PV)。
-
具有 PV 的节点处于
Not Ready
状态。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录到 OpenShift CLI (oc
)。
流程
运行以下命令来检索 PVC 列表:
oc get pvc
$ oc get pvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查与 PVC 关联的事件处于
Pending
状态:oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pvc_name>
替换为 PVC 的名称。例如:lvms-vg1
。
输出示例
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not found
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.17.2. 从缺少的存储类中恢复 复制链接链接已复制到粘贴板!
如果出现 storage class not found
错误,检查 LVMCluster
自定义资源 (CR),并确保所有逻辑卷管理器 (LVM)存储 pod 都处于 Running
状态。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录到 OpenShift CLI (oc
)。
流程
运行以下命令验证
LVMCluster
CR 是否存在:oc get lvmcluster -n openshift-storage
$ oc get lvmcluster -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE my-lvmcluster 65m
NAME AGE my-lvmcluster 65m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果
LVMCluster
CR 不存在,请创建一个LVMCluster
CR。如需更多信息,请参阅"创建 LVMCluster 自定义资源"。 在
openshift-storage
命名空间中,运行以下命令来检查所有 LVM 存储 pod 是否都处于Running
状态:oc get pods -n openshift-storage
$ oc get pods -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66m
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令的输出必须包含以下 pod 的运行实例:
-
lvms-operator
vg-manager
如果在加载配置文件时
vg-manager
pod 处于卡住状态,这是因为它无法找到可用磁盘以供 LVM 存储使用。要检索必要的信息来排除此问题,请运行以下命令来查看vg-manager
pod 的日志:oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
$ oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
5.4.17.3. 从节点故障中恢复 复制链接链接已复制到粘贴板!
由于集群中的节点故障,持久性卷声明 (PVC) 可能会处于 Pending
状态。
要识别出现故障的节点,您可以检查 topolvm-node
pod 的重启计数。增加了重启计数表示底层节点的潜在问题,这可能需要进一步调查和故障排除。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录到 OpenShift CLI (oc
)。
流程
运行以下命令,检查
topolvm-node
pod 实例的重启计数:oc get pods -n openshift-storage
$ oc get pods -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
-
如果 PVC 处于
Pending
状态,即使您解决了与节点相关的问题后,您必须执行强制清理。如需更多信息,请参阅"通知强制清理"。
5.4.17.4. 从磁盘失败中恢复 复制链接链接已复制到粘贴板!
如果您在检查与持久性卷声明 (PVC) 关联的事件时看到失败信息,则可能代表底层卷或磁盘存在问题。
磁盘和卷置备问题会导致通用错误消息,如 Failed to provision volume with storage class <storage_class_name>
。常规错误消息后带有特定的卷失败错误消息。
下表描述了卷故障错误消息:
错误消息 | 描述 |
---|---|
| 指明验证卷是否已存在的问题。卷验证失败可能是由网络连接问题或其他故障造成的。 |
| 如果可用持久性卷 (PV) 与 PVC 的要求不匹配,则无法绑定卷。 |
| 此错误表示试图将卷挂载到节点时出现问题。如果磁盘失败,pod 尝试使用 PVC 时可能会出现这个错误。 |
| 此错误表示尝试从节点卸载卷时出现问题。如果磁盘失败,pod 尝试使用 PVC 时可能会出现这个错误。 |
|
这个错误可能会出现不支持 |
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录到 OpenShift CLI (oc
)。
流程
运行以下命令,检查与 PVC 关联的事件:
oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<pvc_name>
替换为 PVC 的名称。
- 建立到发生问题的主机的直接连接。
- 解决磁盘问题。
后续步骤
- 如果卷失败消息在磁盘解决了这个问题后仍然保留或递归,您必须执行强制清理。如需更多信息,请参阅"通知强制清理"。
5.4.17.5. 执行强制清理 复制链接链接已复制到粘贴板!
如果在完成故障排除过程后仍存在磁盘或节点相关的问题,您必须执行强制清理。强制清理用于解决永久问题并确保逻辑卷管理器(LVM)存储正常工作。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您已以具有
cluster-admin
权限的用户身份登录到 OpenShift CLI (oc
)。 - 您已删除所有使用 LVM 存储创建的持久性卷声明(PVC)。
- 您已停止使用 LVM 存储创建的 PVC 的 pod。
流程
运行以下命令切换到
openshift-storage
命名空间:oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查
LogicalVolume
自定义资源 (CR) 是否存在:oc get logicalvolume
$ oc get logicalvolume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存在
LogicalVolume
CR,请运行以下命令删除它们:oc delete logicalvolume <name>
$ oc delete logicalvolume <name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<name>
替换为LogicalVolume
CR 的名称。
删除
LogicalVolume
CR 后,运行以下命令来删除其终结器:oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
$ oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<name>
替换为LogicalVolume
CR 的名称。
运行以下命令,检查
LVMVolumeGroup
CR 是否存在:oc get lvmvolumegroup
$ oc get lvmvolumegroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存在
LVMVolumeGroup
CR,请运行以下命令删除它们:oc delete lvmvolumegroup <name>
$ oc delete lvmvolumegroup <name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<name>
替换为LVMVolumeGroup
CR 的名称。
删除
LVMVolumeGroup
CR 后,运行以下命令来删除其终结器:oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
$ oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<name>
替换为LVMVolumeGroup
CR 的名称。
运行以下命令来删除任何
LVMVolumeGroupNodeStatus
CR:oc delete lvmvolumegroupnodestatus --all
$ oc delete lvmvolumegroupnodestatus --all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除
LVMCluster
CR:oc delete lvmcluster --all
$ oc delete lvmcluster --all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
LVMCluster
CR 后,运行以下命令来删除其终结器:oc patch lvmcluster <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
$ oc patch lvmcluster <name> -p '{"metadata":{"finalizers":[]}}' --type=merge
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<name>
替换为LVMCluster
CR 的名称。