Red Hat Training

A Red Hat training course is available for RHEL 8

3.2. VDO 中的精简置备

VDO 是一个精简配置的块存储目标。VDO 卷使用的物理空间量可能与为存储用户显示的卷大小有所不同。您可以使用它来节约存储成本。

没有可用空间的条件

如果写入的数据没有达到预期的性能率,请小心会意外出现存储空间耗尽的问题。

每当逻辑块(虚拟存储)的数量超过物理块(实际存储)的数量时,文件系统和应用程序可能会意外地遇到空间耗尽的问题。因此,使用 VDO 的存储系统必须为您提供一个监控 VDO 卷中空闲池大小的方法。

您可以使用 vdostats 工具来确定此空闲池的大小。这个工具的默认输出会列出所有运行 VDO 卷的信息,其格式与 Linux df 工具列出的格式类似。例如:

Device                1K-blocks   Used        Available   Use%
/dev/mapper/vdo-name  211812352   105906176   105906176   50%

当 VDO 卷的物理存储容量接近满时,VDO 在系统日志中报告警告,如下所示:

Oct  2 17:13:39 system lvm[13863]: Monitoring VDO pool vdo-name.
Oct  2 17:27:39 system lvm[13863]: WARNING: VDO pool vdo-name is now 80.69% full.
Oct  2 17:28:19 system lvm[13863]: WARNING: VDO pool vdo-name is now 85.25% full.
Oct  2 17:29:39 system lvm[13863]: WARNING: VDO pool vdo-name is now 90.64% full.
Oct  2 17:30:29 system lvm[13863]: WARNING: VDO pool vdo-name is now 96.07% full.
注意

这些警告消息只有在 lvm2-monitor 服务运行时才会出现。它会被默认启用。

如何防止没有空间的问题

如果可用池的大小低于一定级别,可以执行以下操作:

  • 删除数据。当删除的数据不再被重复时,可能重新获得可用空间。只有发出了签发后,删除数据才可以释放空间。
  • 添加物理存储
重要

监控 VDO 卷的物理空间,以防止出现空间不足的情况。物理块不足可能会导致 VDO 卷中最近写入的数据丢失。

精简配置以及 TRIM 和 DISCARD 命令

要从精简配置节省的存储中受益,物理存储层需要知道数据何时被删除的。与精简配置存储一起工作的文件系统会发送 TRIMDISCARD 命令,来在不再需要逻辑块时通知存储系统。

有几种发送 TRIM 或 DISCARD 命令的方法:

  • 通过 discard 挂载选项,文件系统可以在删除块时发送这些命令。
  • 您可以通过使用 fstrim 等工具以受控的方式发送命令。这些工具告诉文件系统检测哪些逻辑块未使用,并以 TRIMDISCARD 命令的形式向存储系统发送信息。

对未使用的块使用 TRIM 或 DISCARD 并不是 VDO 独有的。任何精简置备的存储系统也会遇到同样的问题。