2.6. 优化 UDS 索引
您可以配置特定的 UDS 索引设置以便在您的系统中优化它。
在创建 VDO 卷后,您无法更改 UDS 索引的属性。
2.6.1. VDO 卷的组件
VDO 使用块设备作为后备存储,它包括由一个或多个磁盘、分区甚至平面文件组成的物理存储聚合。当存储管理工具创建 VDO 卷时,VDO 为 UDS 索引和 VDO 卷保留卷空间。UDS 索引和 VDO 卷会一起交互,以提供重复的块存储。
图 2.2. VDO 磁盘机构

VDO 解决方案包括以下组件:
kvdo
载入 Linux 设备映射器层的内核模块提供去除重复数据的、压缩的和精简配置的块存储卷。
kvdo
模块公开一个块设备。对于块存储,您可以直接访问块存储或通过 Linux 文件系统(如 XFS 或 ext4)呈现它。当
kvdo
收到一个读取 VDO 卷中数据的逻辑块的请求时,它会将请求的逻辑块映射到底层的物理块上,然后读取并返回请求的数据。当
kvdo
收到一个向 VDO 卷写数据块的请求时,它首先检查请求是 DISCARD 还是 TRIM 请求,或者数据是否统一为零。如果其中任何一个条件为真,则kvdo
会更新其块映射,并确认请求。否则,VDO 会处理并优化数据。uds
与卷上通用的去除重复数据服务(UDS)索引通信的内核模块,并分析数据的重复内容。对于每个新的数据,UDS 可以快速地判断该数据是否与之前存储的数据相同。如果索引发现匹配项,则存储系统可在内部引用现有项,以避免多次保存相同的信息。
UDS 索引作为
uds
内核模块运行在内核中。- 命令行工具
- 用于配置和管理优化的存储。
2.6.2. UDS 索引
VDO 使用名为 UDS 的高性能 deduplication 索引来检测正在存储的数据重复块。
UDS 索引提供了 VDO 产品的基础。对于每个新数据段,它会快速确定该数据段是否与之前存储的任何数据段相同。如果索引发现匹配项,则存储系统可在内部引用现有项,以避免多次保存相同的信息。
UDS 索引作为 uds
内核模块运行在内核中。
去除重复数据窗口 是索引记住的之前写入的块的数量。可配置去除重复数据窗口窗口的大小。对于给定的窗口大小,索引需要特定数量的 RAM 以及特定数量的磁盘空间。窗口的大小通常通过使用 --indexMem=size
选项指定索引内存的大小来决定。然后,VDO 决定自动使用的磁盘空间量。
UDS 索引由两个部分组成:
- 在内存中使用紧凑表示,每个唯一块最多包含一个条目。
- 记录在索引发生时的相关块名称的磁盘组件,按顺序记录。
UDS 在内存中平均每个条目使用 4 个字节,包括缓存。
磁盘上的组件维护传递给 UDS 的数据的相关历史记录。UDS 为属于这个去除重复数据窗口中的数据提供去除重复数据建议,其中包括最近看到的块的名称。去除重复数据窗口允许 UDS 尽可能高效地索引数据,同时限制索引大型数据存储库所需的内存量。尽管去除重复数据窗口具有局限性,但大部分具有大量去除重复数据的数据集也表现出高度的时间局部性 - 换句话说,大多数去除重复数据发生在几乎同时写入的块集合中。另外,通常要写入的数据通常可能会与最近写入的数据重复。因此,对于给定时间间隔的工作负载,去除重复数据比率通常相同,无论 UDS 仅索引了最新的数据还是所有数据。
由于重复数据往往会表现出时间局部性,因此很少需要对存储系统中的每个块进行索引。否则,索引内存的成本会耗尽导致复制性能降低的存储成本。索引大小要求与数据刷新率紧密相关。例如,假设存储系统的总容量为 100 TB,但每周的摄取率为 1 TB 。UDS 窗口的 deduplication 窗口为 4TB,UDS 可探测到上个月写入的数据的最大冗余度。
2.6.3. 推荐的 UDS 索引配置
本节介绍了根据您预期的用例,用于 UDS 索引的推荐选项。
通常,红帽建议在所有产品用例中使用 稀疏 UDS 索引。这是一个非常高效的索引数据结构,在其去除重复数据窗口中,每个块大约需要十分之一字节的 RAM 。在磁盘上,每个块大约需要 72 字节磁盘空间。这个索引的最小配置使用了 256 MB RAM,磁盘大约需要 25 GB 空间。
要使用此配置,请在 vdo create
命令中指定 --sparseIndex=enabled --indexMem=0.25
选项。这个配置会导致一个 deduplication 窗口 2.5 TB(也就是说它会记住 2.5 TB 的历史记录)。在大多数用例中,2.5 TB 的去除重复数据窗口适合用于大小高达 10 TB 的去除重复数据存储池。
但是,索引的默认配置是使用密度 索引。该索引在 RAM 中的效率要低得多(10 倍),但它需要最少的磁盘空间(也是 10 倍),这使其更便于在受限环境中进行评估。
通常,建议配置一个 VDO 卷的物理大小的 deduplication 窗口。但这不是实际要求。即便是小的去除重复数据窗口(与物理存储量相比)也可以在许多用例中发现大量重复的数据。也可以使用较大的窗口,但多数情况下,这样做将无用。
其它资源
- 请联系您的红帽大客户经理代表来获得关于调整这个重要系统参数的更多指南。