第1章部署VDO
作为系统管理员,您可以使用VDO创建重复数据删除和压缩的存储池。
1.1。VDO简介
虚拟数据优化器(VDO)以重复数据删除,压缩和精简配置的形式为Linux提供了内联数据缩减。设置VDO卷时,可以指定要在其上构造VDO卷的块设备以及计划提供的逻辑存储量。
无论哪种情况,您都可以将文件系统放在VDO提供的逻辑设备之上,然后直接使用它或将其用作分布式云存储体系结构的一部分。
因为VDO是精简配置的,所以文件系统和应用程序只能看到正在使用的逻辑空间,而无法知道可用的实际物理空间。应该使用脚本来监视实际的可用空间并在使用超过阈值时发出警报:例如,当VDO卷已满80%时。有关详细信息,请参见第2.2节“管理VDO卷上的可用空间”。
1.2。VDO部署方案
您可以通过多种方式部署VDO,以为以下项目提供重复数据删除存储:
由于VDO将其重复数据删除存储作为标准Linux块设备公开,因此您可以将其与标准文件系统,iSCSI和FC目标驱动程序一起使用,或作为统一存储使用。
注意
当前不支持通过Ceph Storage进行VDO部署。
虚拟机
您可以在配置了Direct Attached Storage的KVM服务器上部署VDO。
文件系统
您可以在VDO之上创建文件系统,并使用NFS服务器或Samba将它们公开给NFS或CIFS用户。
iSCSI目标
您可以将整个VDO存储目标作为iSCSI目标导出到远程iSCSI启动器。
LVM
在功能更丰富的系统上,您可以使用LVM提供多个逻辑单元号(LUN),这些逻辑单元号均由相同的重复数据删除存储池支持。
在下图中,VDO目标已注册为物理卷,以便可以由LVM管理。从已删除重复数据的存储池中创建多个逻辑卷(LV1至LV4)。这样,VDO可以支持对底层重复数据删除存储池的多协议统一块或文件访问。
重复数据删除统一存储设计使多个文件系统可以通过LVM工具共同使用同一重复数据删除域。此外,文件系统可以利用LVM快照,写时复制以及缩小或增长功能,而这一切都是在VDO之上。
加密
诸如DM Crypt之类的设备映射器(DM)机制与VDO兼容。加密VDO卷有助于确保数据安全性,并且VDO之上的任何文件系统仍将进行重复数据删除。
重要
在VDO之上应用加密层几乎不会导致重复数据删除。加密会使重复的块有所不同,然后VDO才能对它们进行重复数据删除。
始终将加密层放在VDO之下。
1.3。VDO要求
VDO对它的位置和您的系统资源有某些要求。
1.3.1。VDO在存储堆栈中的放置
您应将某些存储层放置在VDO下,并将其他存储层放置在VDO之上。
VDO卷是精简配置的块设备。为防止物理空间用完,请将卷放在存储的顶部,以后可以扩展。此类可扩展存储的示例是LVM卷或MD RAID阵列。
您可以在VDO之上放置厚置备层,但是在这种情况下,您不能依赖厚置备的保证。由于VDO层是精简配置的,因此精简配置的效果适用于其上方的所有层。如果不监视VDO设备,则可能会耗尽VDO上方的密集配置卷上的物理空间。
红帽推荐以下配置:
仅在VDO下放置
仅放置在VDO上方
不支持 以下配置:
额外资源
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索引:
额外资源
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卷所必需的软件。
程序
#yum install vdo kmod-kvdo
1.5。创建一个VDO卷
此过程在块设备上创建VDO卷。
先决条件
程序
在以下所有步骤中,将vdo-name替换为要用于VDO卷的标识符;例如,vdo1。您必须为系统上的每个VDO实例使用不同的名称和设备。
如果使用非永久性设备名称,则如果设备名称发生更改,则VDO将来可能无法正常启动。
--vdoLogicalSize = 逻辑大小
在大于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卷”。
#mkfs.xfs -K / dev / mapper / vdo-name
#mkfs.ext4 -E nodiscard / dev / mapper / vdo-name
#udevadm解决
下一步
额外资源
1.6。挂载VDO卷
此过程可以手动或持久地在VDO卷上安装文件系统。
先决条件
程序
#mount / dev / mapper / vdo-name 挂载点
/ dev / mapper / vdo-name 挂载点 xfs默认值,_netdev,x-systemd.device-timeout = 0,x-systemd.requires = vdo.service 0 0
/ dev / mapper / vdo-name 挂载点 ext4默认值,_netdev,x-systemd.device-timeout = 0,x-systemd.requires = vdo.service 0 0
1.7。启用定期块丢弃
此过程使systemd计时器能够定期丢弃所有受支持的文件系统上未使用的块。
程序
#systemctl enable --now fstrim.timer
1.8。监控VDO
此过程描述了如何从VDO卷获取使用情况和效率信息。
先决条件
程序
/ dev / mapper / node1osd2 926.5G 28.2G 898.3G 3%64%
额外资源