第 1 章 LVM 的 VDO 介绍
Virtual Data Optimizer(VDO)为存储提供内联块级的重复数据删除(deduplication)、压缩和精简置备。您可以将 VDO 作为逻辑卷管理器(LVM)逻辑卷(LVM)的一种类型(类似于 LVM 精简配置的卷)来管理。
LVM (LVM-VDO)上的 VDO 卷包含以下组件:
- VDO 池 LV
- 这是用于 VDO LV 存储、重复数据删除和压缩的后端物理设备。VDO 池 LV 设置 VDO 卷的物理大小,即 VDO 可保存到磁盘中的数据量。
- 目前,每个 VDO 池 LV 只能有一个 VDO LV。因此,VDO 会单独去重和压缩每个 VDO LV。存储在单独 LV 上的重复数据不会从同一 VDO 卷的数据优化中受益。
- VDO LV
- 这是 VDO 池 LV 上的虚拟置备设备。VDO LV 设定 VDO 卷的置备和逻辑大小,即应用程序在重复数据删除和压缩发生前可写入卷的数据量。
dm-vdo
-
dm-vdo
模块是一个 Linux 设备映射器目标,它提供重复数据删除、压缩和精简配置的块存储卷。 -
dm-vdo
模块公开 VDO 池 LV 用于创建 VDO LV 的块设备。然后,系统将使用 VDO LV。 -
当
dm-vdo
收到从 VDO 卷读取数据的逻辑块的请求时,它会将请求的逻辑块映射到底层物理块,然后读取并返回请求的数据。 -
当
dm-vdo
收到向 VDO 卷写入数据的请求时,它首先检查请求是 DISCARD 还是 TRIM 请求,或者数据是否统一为零。如果满足其中任何一个条件,dm-vdo
会更新其块映射并确认请求。否则,VDO 会处理并优化数据。 -
dm-vdo
模块在内部利用卷上的通用重复数据删除服务(UDS)索引并分析数据,因为它被接收用于重复数据。对于每个新的数据,UDS 可以快速地判断该数据是否与之前存储的数据相同。如果索引发现匹配项,则存储系统可以验证该匹配项的准确性,然后更新内部引用以避免多次存储相同的信息。
-
如果您已经熟悉 LVM 精简配置实现的结构,请参阅下表,以了解 VDO 的不同方面是如何呈现给系统的。
物理设备 | 置备的设备 | |
---|---|---|
LVM 上的 VDO | VDO 池 LV | VDO LV |
LVM 精简配置 | 精简池(thin poll) | 精简卷(thin volume) |
因为 VDO 是精简置备的,所以文件系统和应用程序只会看到正在使用的逻辑空间,而不是实际可用的物理空间。使用脚本来监控可用的物理空间,并在使用超过阈值时产生一个报警。