第 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 不支持卷缩小。

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

如果使用设备类配置额外的存储池,则还需要存在额外的存储类,才能向用户和工作负载公开存储池。要在 thin-pool 上启用动态置备,集群中必须存在 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: 10 5
    type: thin 6
    volume-group: ssd 7

1
字符串.gRPC 的 UNIX 域套接字端点。默认为 /run/lvmd/lvmd.socket
2
每个 设备类 设置的映射列表。
3
字符串.device-class 的唯一名称。
4
64 位无符号整数。存储容量(以 GB 为单位)在卷组中未分配。默认为 0。
5
如果您有多个共享同一池的精简置备设备,那么这些设备可以是过度配置的。过度置备需要一个浮点值 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.