Red Hat Training
A Red Hat training course is available for RHEL 8
2.9. 增大 VDO 卷的大小
您可以增加 VDO 卷的物理大小,以利用更多的底层存储容量,或者增加逻辑大小以在卷上提供更多的容量。
2.9.1. VDO 卷的物理和逻辑大小
VDO 通过以下方法使用物理、可用物理和逻辑大小:
- 物理大小
这与底层块设备的大小相同。VDO 使用这个存储用于:
- 用户数据,这些数据可能会进行重复数据删除和压缩
- VDO 元数据,如 UDS 索引
- 可用物理大小
这是 VDO 可用于用户数据的物理大小的一部分
它等同于物理大小减去元数据的大小,再减去将卷根据指定的 slab 的大小分为 slab 后剩余的值。
- 逻辑大小
这是 VDO 卷在应用程序中的置备大小。它通常大于可用的物理大小。如果没有指定
--vdoLogicalSize
选项,则逻辑卷的调配现在被配置为1:1
的比率。例如,如果将 VDO 卷放在 20GB 块设备之上,则为 UDS 索引保留 2.5 GB(如果使用默认索引大小)。剩余的 17.5 GB 为 VDO 元数据和用户数据提供。因此,要消耗的可用存储不超过 17.5 GB,且可能会因为组成实际 VDO 卷的元数据而减少。VDO 目前支持任意逻辑卷大小最多为物理卷的 254 倍,但不能超过 4PB。
图 2.3. VDO 磁盘机构
在这个图表中,VDO 重复数据删除存储对象完全位于块设备之上,这意味着 VDO 卷的物理大小与基本块设备大小相同。
其它资源
- 有关不同大小的块设备上需要多少存储 VDO 元数据的更多信息,请参阅 第 1.6.4 节 “按物理大小的 VDO 要求示例”。
2.9.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 独有的。任何精简置备的存储系统也会遇到同样的问题。
2.9.3. 增大 VDO 卷的逻辑卷大小
这个过程会增加给定 VDO 卷的逻辑大小。它允许您首先创建具有逻辑大小足够小的 VDO 卷,使其安全而无法耗尽空间。一段时间后,您可以评估实际的数据减少率,如果足够的话,您可以增大 VDO 卷的逻辑大小以利用节省的空间。
不可能缩小 VDO 卷的逻辑卷大小。
流程
要增大逻辑大小,请使用:
# vdo growLogical --name=my-vdo \ --vdoLogicalSize=new-logical-size
当逻辑卷增大时,VDO 会报告有新的大小卷上的任何设备或文件系统。
2.9.4. 增加 VDO 卷的物理大小
此流程增加 VDO 卷可以使用的物理存储量。
不可能以这种方式缩小 VDO 卷。
先决条件
基础块设备的容量大于 VDO 卷的当前物理大小。
如果不是这样,您可以尝试增加设备的大小。确切的流程取决于设备的类型。例如:要调整 MBR 或 GPT 分区的大小,请参阅 管理存储设备 指南中的 重新调整分区大小 部分。
流程
为 VDO 卷添加新物理存储空间:
# vdo growPhysical --name=my-vdo