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 命令
要从精简配置节省的存储中受益,物理存储层需要知道数据何时被删除的。与精简配置存储一起工作的文件系统会发送 TRIM
或 DISCARD
命令,来在不再需要逻辑块时通知存储系统。
有几种发送 TRIM 或
DISCARD
命令的方法:
-
通过
discard
挂载选项,文件系统可以在删除块时发送这些命令。 -
您可以通过使用
fstrim
等工具以受控的方式发送命令。这些工具告诉文件系统检测哪些逻辑块未使用,并以TRIM
或DISCARD
命令的形式向存储系统发送信息。
对未使用的块使用 TRIM
或 DISCARD
并不是 VDO 独有的。任何精简置备的存储系统也会遇到同样的问题。