RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

时间:2024-03-19 18:29:24

1章部署VDO

作为系统管理员,您可以使用VDO创建重复数据删除和压缩的存储池。

1.1VDO简介

虚拟数据优化器(VDO)以重复数据删除,压缩和精简配置的形式为Linux提供了内联数据缩减。设置VDO卷时,可以指定要在其上构造VDO卷的块设备以及计划提供的逻辑存储量。

  • 当托管活动的虚拟机或容器时,红帽建议以10:1的逻辑与物理比率配置存储:即,如果您使用1 TB的物理存储,则将其表示为10 TB的逻辑存储。
  • 对于对象存储(例如Ceph提供的类型),Red Hat建议使用3:1的逻辑与物理比率:也就是说,将1 TB的物理存储表示为3 TB的逻辑存储。

无论哪种情况,您都可以将文件系统放在VDO提供的逻辑设备之上,然后直接使用它或将其用作分布式云存储体系结构的一部分。

因为VDO是精简配置的,所以文件系统和应用程序只能看到正在使用的逻辑空间,而无法知道可用的实际物理空间。应该使用脚本来监视实际的可用空间并在使用超过阈值时发出警报:例如,当VDO卷已满80%时。有关详细信息请参见第2.2节“管理VDO卷上的可用空间”

1.2VDO部署方案

您可以通过多种方式部署VDO,以为以下项目提供重复数据删除存储:

  • 阻止和文件访问
  • 本地和远程存储

由于VDO将其重复数据删除存储作为标准Linux块设备公开,因此您可以将其与标准文件系统,iSCSI和FC目标驱动程序一起使用,或作为统一存储使用。

注意

当前不支持通过Ceph Storage进行VDO部署。

虚拟机

您可以在配置了Direct Attached Storage的KVM服务器上部署VDO。

RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

文件系统

您可以在VDO之上创建文件系统,并使用NFS服务器或Samba将它们公开给NFS或CIFS用户。

RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

iSCSI目标

您可以将整个VDO存储目标作为iSCSI目标导出到远程iSCSI启动器。

RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

LVM

在功能更丰富的系统上,您可以使用LVM提供多个逻辑单元号(LUN),这些逻辑单元号均由相同的重复数据删除存储池支持。

在下图中,VDO目标已注册为物理卷,以便可以由LVM管理。从已删除重复数据的存储池中创建多个逻辑卷(LV1LV4)。这样,VDO可以支持对底层重复数据删除存储池的多协议统一块或文件访问。

RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

重复数据删除统一存储设计使多个文件系统可以通过LVM工具共同使用同一重复数据删除域。此外,文件系统可以利用LVM快照,写时复制以及缩小或增长功能,而这一切都是在VDO之上。

加密

诸如DM Crypt之类的设备映射器(DM)机制与VDO兼容。加密VDO卷有助于确保数据安全性,并且VDO之上的任何文件系统仍将进行重复数据删除。

RHEL 8 VDO重复数据删除和压缩存储-第1章部署VDO

重要

在VDO之上应用加密层几乎不会导致重复数据删除。加密会使重复的块有所不同,然后VDO才能对它们进行重复数据删除。

始终将加密层放在VDO之下。

1.3VDO要求

VDO对它的位置和您的系统资源有某些要求。

1.3.1。VDO在存储堆栈中的放置

您应将某些存储层放置在VDO下,并将其他存储层放置在VDO之上。

VDO卷是精简配置的块设备。为防止物理空间用完,请将卷放在存储的顶部,以后可以扩展。此类可扩展存储的示例是LVM卷或MD RAID阵列。

您可以在VDO之上放置厚置备层,但是在这种情况下,您不能依赖厚置备的保证。由于VDO层是精简配置的,因此精简配置的效果适用于其上方的所有层。如果不监视VDO设备,则可能会耗尽VDO上方的密集配置卷上的物理空间。

红帽推荐以下配置:

仅在VDO下放置

  • DM多路径
  • DM地穴
  • 软件RAID(LVM或MD RAID)

仅放置在VDO上方

  • LVM缓存
  • LVM快照
  • LVM精简配置

不支持 以下配置:

  • VDO卷之上的VDO:存储→VDO→LVM→VDO
  • LVM快照之上的VDO
  • LVM缓存上的VDO
  • 环回设备顶部的VDO
  • LVM精简配置之上的VDO
  • VDO之上的加密卷:存储→VDO→DM-Crypt
  • VDO卷上的分区
  • VDO卷顶部的RAID(LVM RAID,MD RAID或任何其他类型)

额外资源

  • 有关使用LVM堆栈VDO的更多信息,请参见“堆栈LVM卷”文章。

1.3.2。VDO内存要求

每个VDO卷都有两个不同的内存要求:

VDO模块

VDO需要370 MB的DRAM,此外,该卷管理的每1 TB物理存储还需要268 MB的内存。

通用重复数据删除服务(UDS)索引

UDS至少需要250 MB的DRAM,这也是重复数据删除使用的默认数量。

UDS索引所需的内存由索引类型和重复数据删除窗口的所需大小确定:

索引类型

重复数据删除窗口

注意

稠密

每1 GB RAM 1 TB

1 GB的密集索引通常足以支持4 TB的物理存储。

每1 GB RAM 10 TB

1 GB的稀疏索引通常足以存储多达40 TB的物理存储。

对于VDO,建议使用UDS稀疏索引功能。它依赖于数据的时间局部性,并尝试仅将最相关的索引条目保留在内存中。使用稀疏索引,UDS可以在使用相同数量的内存的同时,保持重复数据删除窗口比使用密集型数据删除窗口大十倍。

尽管稀疏索引提供了最大的覆盖范围,但密集索引提供了更多的重复数据删除建议。对于大多数工作负载,给定相同的内存量,密集索引和稀疏索引之间的重复数据删除率差异可以忽略不计。

额外资源

1.3.3。VDO存储空间要求

您可以将VDO卷配置为使用最多256 TB的物理存储。物理存储中只有一部分可用于存储数据。本节提供确定VDO管理卷的可用大小的计算。

VDO要求存储两种类型的VDO元数据和UDS索引:

  • 第一种VDO元数据每4 GB 物理存储使用大约1 MB的空间,另外每个平板额外使用1 MB的空间。
  • 第二种VDO元数据对于每1 GB 逻辑存储消耗约1.25 MB ,四舍五入到最接近的平板。
  • UDS索引所需的存储量取决于索引的类型和分配给该索引的RAM的数量。对于每1 GB的RAM,密集的UDS索引将使用17 GB的存储,而稀疏的UDS索引将使用170 GB的存储。

额外资源

1.3.4。物理卷大小对VDO要求的示例

下表根据基础物理卷的大小提供了VDO的近似系统要求。每个表列出了适合于预期部署的要求,例如主存储或备份存储。

确切的数字取决于您对VDO卷的配置。

主存储部署

在主存储情况下,UDS索引介于物理卷大小的0.01%到25%之间。

1.1。主存储的存储和内存要求

物理体积大小

RAM使用

磁盘使用情况

索引类型

10GB–1TB

250MB

2.5 GB

稠密

2–10TB

1GB

10GB

稠密

250MB

22GB

11–50TB

2GB

170GB

51–100TB

3GB

255GB

101–256TB

12GB

1020GB

备份存储部署

在备份存储的情况下,UDS索引覆盖了备份集的大小,但不大于物理卷。如果您希望备份集或物理大小将来会增加,请将其作为索引大小。

1.2。备份存储的存储和内存要求

物理体积大小

RAM使用

磁盘使用情况

索引类型

10GB–1TB

250MB

2.5 GB

稠密

2–10TB

2GB

170GB

11–50TB

10GB

850GB

51–100TB

20GB

1700GB

101–256TB

26GB

3400GB

1.4。安装VDO

此过程将安装创建,安装和管理VDO卷所必需的软件。

程序

  • 安装vdo和kmod-kvdo软件包:

#yum install vdo kmod-kvdo

1.5。创建一个VDO

此过程在块设备上创建VDO卷。

先决条件

程序

在以下所有步骤中,将vdo-name替换要用于VDO卷的标识符;例如,vdo1。您必须为系统上的每个VDO实例使用不同的名称和设备。

  1. 在要创建VDO卷的块设备中找到一个永久名称。有关持久名称的更多信息,请参见第4章,持久命名属性概述

如果使用非永久性设备名称,则如果设备名称发生更改,则VDO将来可能无法正常启动。

  1. 创建VDO卷:
  1. #vdo创建\
  2.       --name = vdo-name \
  3.       --device = 块设备 \

      --vdoLogicalSize = 逻辑大小

    • 块设备替换为要在其中创建VDO卷的块设备的永久名称。例如,/dev/disk/by-id/scsi-3600508b1001c264ad2af21e903ad031f。
    • 用VDO卷应提供的逻辑存储量替换逻辑大小
      • 对于主动VM或容器存放,使用逻辑大小是10的块设备的物理尺寸倍。例如,如果您的块设备大小为1TB,请在10T此处使用。
      • 对于对象存储,使用逻辑大小是3的块设备的物理尺寸倍。例如,如果您的块设备大小为1TB,请在3T此处使用。
    • 如果物理块设备大于16TiB,则添加--vdoSlabSize=32G选项以将卷上的平板尺寸增加到32GiB。

在大于16TiB的块设备上使用默认平板大小2GiB会导致vdo create命令失败,并显示以下错误:

vdo:错误-vdoformat:formatVDO在'/ dev / device ' 上失败:VDO状态:超出了支持的最大平板数

范例1.1 创建用于容器存储的VDO

例如,要为1TB块设备上的容器存储创建VDO卷,可以使用:

#vdo创建\

      --name = vdo1 \

      --device = / dev / disk / by-id / scsi-3600508b1001c264ad2af21e903ad031f \

      --vdoLogicalSize = 10T

重要

如果在创建VDO卷时发生故障,请删除该卷以进行清理。有关详细信息请参见第2.11.2节“删除未成功创建的VDO卷”

  1. 在VDO卷上创建一个文件系统:
    • 对于XFS文件系统:

#mkfs.xfs -K / dev / mapper / vdo-name

    • 对于ext4文件系统:

#mkfs.ext4 -E nodiscard / dev / mapper / vdo-name

  1. 使用以下命令等待系统注册新设备节点:

#udevadm解决

下一步

  1. 挂载文件系统。有关详细信息请参见第1.6节“安装VDO音量”
  2. discard在VDO设备上为文件系统 启用该功能。有关详细信息请参见第1.7节“启用周期性块丢弃”

额外资源

  • 该vdo(8)手册页

1.6。挂载VDO

此过程可以手动或持久地在VDO卷上安装文件系统。

先决条件

程序

  • 要在VDO卷上手动挂载文件系统,请使用:

#mount / dev / mapper / vdo-name  挂载点

  • 要将文件系统配置为在引导时自动挂载,请在/etc/fstab文件中添加一行:
    • 对于XFS文件系统:

/ dev / mapper / vdo-name  挂载点 xfs默认值,_netdev,x-systemd.device-timeout = 0,x-systemd.requires = vdo.service 0 0

    • 对于ext4文件系统:

/ dev / mapper / vdo-name  挂载点 ext4默认值,_netdev,x-systemd.device-timeout = 0,x-systemd.requires = vdo.service 0 0

1.7。启用定期块丢弃

此过程使systemd计时器能够定期丢弃所有受支持的文件系统上未使用的块。

程序

  • 启用并启动systemd计时器:

#systemctl enable --now fstrim.timer

1.8。监控VDO

此过程描述了如何从VDO卷获取使用情况和效率信息。

先决条件

程序

  • 使用该vdostats实用工具获取有关VDO卷的信息:
  • #vdostats-人类可读
  •  
  • 设备1K块已使用可用使用%节省空间%
  • / dev / mapper / node1osd1 926.5G 21.0G 905.5G 2%73%

/ dev / mapper / node1osd2 926.5G 28.2G 898.3G 3%64%

额外资源

  • 该vdostats(8)手册页。