第 7 章 使用卷快照


集群管理员可以使用卷快照来帮助防止使用支持的 MicroShift 逻辑卷管理器存储(LVMS)容器存储(CSI)提供商来防止数据丢失。需要熟悉 持久性卷

快照 代表集群中特定时间点的存储卷的状态。卷快照也可用于调配新卷。快照创建为只读逻辑卷(LV),位于与原始数据相同的设备上。

集群管理员可以使用 CSI 卷快照完成以下任务:

  • 创建现有持久性卷声明(PVC)的快照。
  • 将卷快照备份到安全位置。
  • 将卷快照恢复为不同的 PVC。
  • 删除现有的卷快照。
重要

MicroShift 仅支持逻辑卷管理器存储(LVMS)插件 CSI 驱动程序。

7.1. 关于 LVM 精简卷

要使用创建卷快照或卷克隆等高级存储功能,您必须执行以下操作:

  • 配置逻辑卷管理器存储(LVMS)提供者和集群。
  • 在 RHEL for Edge 主机上置备逻辑卷管理器(LVM)精简池。
  • 将 LVM 精简池附加到卷组。
重要

要创建 Container Storage Interface (CSI)快照,您必须在 RHEL for Edge 主机上配置精简卷。CSI 不支持卷缩小。

重要

在使用精简配置时,监控存储池,并在可用物理空间耗尽时添加更多容量是非常重要的。您可以将存储池配置为在卷组中有可用空间(VG)时自动扩展。请参阅 创建精简配置的逻辑卷

要使 LVMS 管理精简逻辑卷(LV),必须在 etc/lvmd.yaml 配置文件中指定一个 thin-pool device-class 数组。允许多个精简池设备类。

如果使用设备类配置额外的存储池,则还必须存在其他存储类,才能将存储池公开给用户和工作负载。要在精简池上启用动态置备,集群中必须存在一个 StorageClass 资源。StorageClass 资源在 topolvm.io/ device-class 参数指定源 device-class 数组。

为 thin-pool 指定单个设备类的 lvmd.yaml 文件示例

socket-name: 1
device-classes: 2
  - name: thin 3
    default: true
    spare-gb: 0 4
    thin-pool:
      name: thin
      overprovision-ratio: 1 5
    type: thin 6
    volume-group: ssd 7

1
字符串.gRPC 的 UNIX 域套接字端点。默认为 /run/lvmd/lvmd.socket
2
每个 设备类 设置的映射列表。
3
字符串.device-class 的唯一名称。
4
64 位无符号整数。在卷组中未分配的存储容量(以 GB 为单位)。默认为 0。
5
指定一个浮点因子,您可以根据精简池中的可用存储置备额外存储。例如,如果此字段设置为 10,您可以在精简池中置备可用存储量最多 10 倍。要禁用过度配置,请将此字段设置为 1
6
创建卷快照需要精简配置。
7
字符串.device-class 创建逻辑卷的组。
重要

当同时创建多个 PVC 时,竞争条件可防止 LVMS 准确跟踪分配的空间,并为设备类保留存储容量。使用单独的卷组和逻辑卷类来防止存储高度动态工作负载相互影响。

7.1.1. 存储类

存储类提供选择设备类的工作负载层接口。MicroShift 支持以下存储类参数:

  • csi.storage.k8s.io/fstype 参数选择文件系统类型。支持 xfsext4 文件系统类型。
  • topolvm.io/device-class 参数是设备类的名称。如果没有提供设备类,则会假定默认设备类。

多个存储类可以引用同一设备类。您可以为同一后备设备类提供不同的参数集合,如 xfsext4 变体。

MicroShift 默认存储类资源示例

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true" 1
  name: topolvm-provisioner
parameters:
  "csi.storage.k8s.io/fstype": "xfs" 2
provisioner: topolvm.io 3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer 4
allowVolumeExpansion: 5

1
默认存储类示例。如果 PVC 没有指定存储类,则会假设这个类。集群中只能有一个默认存储类。不支持为此注解分配值。
2
指定要在卷中置备的文件系统。选项为 "xfs" 和 "ext4"。
3
标识哪个置备程序应该管理这个类。
4
指定是否在客户端 pod 存在或立即置备卷。选项为 WaitForFirstConsumerImmediate。建议使用 WaitForFirstConsumer,以确保只为可以调度的 pod 置备存储。
5
指定从 StorageClass 置备的 PVC 允许扩展。MicroShift LVMS CSI 插件支持卷扩展,但如果这个值被设置为 false,扩展会被阻断。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.