VDO Centos8 中安装并配置 VDO 来优化存储空间

栏目:国内 2021-09-25 16:39:27
分享到:

虚拟数据优化器是一种数据块虚拟化技术,可以提供透明的重复数据消除。通过消除冗余数据块,VDO可以大大减少实际使用的磁盘容量。

VDO由两个内核模块和两个命令组成:

它由以下两个内核模块组成:

kvdo-该模块加载到设备管理器层,并为重复数据消除提供数据块存储卷。

uds-该模块负责与VDO磁盘上的通用重复数据消除索引进行通信。

包括两个命令行工具:

vdo-用于创建、删除、启动和停止Vdo卷,以及执行其他配置操作。

vdostats-用于报告VDO卷的所有方面,包括物理卷的有效减少和利用。

系统环境

Centos8

安装VDO

以下命令安装vdo和相关依赖项,并在安装完成后重新启动系统:

# yum -y安装vdo

#重新启动

创建一个VDO设备

确保还有一个空磁盘或分区可供VDO使用。虽然可以在LVM逻辑卷上创建VDO卷,但系统重新启动时会出现引导顺序问题。因此,在原始磁盘上创建一个vdo卷,然后在其上创建一个LVM逻辑卷。

以下使用20GB磁盘,/dev/sda作为vdo卷

创建了以下vdo卷:

# vdo create-name = vdolvm-device/dev/sda-vdocalsize 60G-write policy异步

创建VDO虚拟桌面

VDO卷可以在8个数据片中寻址16 GB,每个2 GB。

它可以增长到在8192个板中最多处理16 TB的物理存储。

如果可能需要更大的最大尺寸,使用更大的板材。

启动VDO vdolvm

在VDO vdolvm上开始压缩

VDO实例卷已在/dev/mapper/vdolvm准备就绪

让我们分解命令,看看使用的选项:

-device-指定创建vdo卷的硬盘

-vdocalsize-这里我们指定了60G的容量大小,这比我们实际的磁盘20G要大得多。假设我们将从重复数据消除中获得至少3:1的缩减,这对于大多数数据来说是相当保守的,但是如果您的数据没有许多重复数据,那么比率应该会有所不同。日志文件和其他纯文本文件通常经过良好的重复数据消除,重复数据消除率可能达到10:1甚至更高。但是二进制文件,如视频、音频或压缩包,将比3:1低得多,在某些情况下甚至是1:1。在这种情况下,不建议使用vdo卷。

- writePolicy -vdo有三种写入策略:

只有在数据写入物理设备后,才会确认写入VDO卷。

在数据写入缓存后确认。如果在设备故障或断电之前没有刷新缓存,可能会发生数据丢失。

在此默认模式下,VDO会检查存储设备并确定其是否支持刷新。如果是这样,VDO将使用异步模式。如果没有,它将使用同步模式。

查看新创建的VDO卷的信息

正如我们在上一步的输出中看到的,VDO创建了一个名为/dev/mapper/vdolvm的新dm设备。当我们创建lvm卷组时,这是我们将使用的设备。

# ll /dev/mapper/vdolvm

lrwxrwxrwx 1根7 3月4日13:31/dev/mapper/vdolvm-->../dm-2

让我们看看使用vdostats可以获得哪些有关vdo卷的信息:

# vdostats - hu

设备大小已用可用使用%节省空间%

/dev/mapper/vdolvm 20.0克4.0克16.0克20%不适用

由于我们没有向该卷写入任何数据,因此该字段为。当我们稍后写一些数据时,我们会在这里看到更多有用的信息。

从上图可以看出,我们还没有写任何数据,但是4GB,20% 空已经在用了!这是因为通用重复数据消除索引已写入磁盘。这基本上是一个记录石板指纹及其位置的数据库。这就是重复数据消除成为可能的原因。

将VDO卷设置为普通磁盘设备

现在我们已经创建了VDO设备,我们可以对它进行分区和格式化,或者在这个vod卷上创建lvm逻辑卷。让我们创建一个逻辑卷:

#创建物理卷

# pvcreate /dev/mapper/vdolvm

物理卷/dev/mapper/vdolvm”已成功创建。

#创建卷组vdo_vg

# vgcreate vdo _ VG/dev/mapper/vdolvm

卷组“vdo_vg”已成功创建

#查看vdo_vg卷组的信息

# vgdisplay vdo_vg

-卷组-

VG名称vdo_vg

系统标识

格式化lvm2

元数据领域1

元数据序列1

VG访问读/写

VG状态可调整大小

最大低压

电流低压

打开低压

最大光伏

Cur PV 1

第一幕

VG尺寸

聚乙烯尺寸4.00 MiB

总PE 15359

允许的PE /尺寸/

免费PE /尺寸15359 /

VG UUID qfPiH6-eMCU-Z6kr-eeCu-jd0J-8lmf-49 dazx

从上面可以看出,lvm认为我们的基本磁盘是120GB,虽然我们知道它只有40GB。LVM不知道VDO后端磁盘的大小。

现在,让我们创建几个逻辑卷:

# lvcreate -n vdo_lv01 -L 15G vdo_vg

# lvcreate -L 15G -n vdo_lv02 vdo_vg

# lvcreate -L 15G -n vdo_lv03 vdo_vg

#检查创建的逻辑卷

# LVS-o+器件

创建装载点和装载文件系统

通常,创建文件系统后,它将在设备上运行操作。使用VDO时,这不是一个理想的选择,因为磁盘容量是按需分配的。因此,我们应该告诉mkfs不要在文件系统创建期间丢弃数据块。对XFS使用该选项。对于EXT4,使用。下面使用for循环将三个逻辑卷格式化为XFS文件系统:

#对于“seq 1 3”中的I;do mkfs . xfs-K/dev/vdo _ VG/vdo _ lv0 $ I;完成的

元数据=/dev/vdo _ VG/vdo _ lv01 isize = 512 ag count = 4,agsize=983040 blks

= sectsz=4096 attr=2,projid32bit=1

= crc=1 finobt=1,稀疏=1,rmapbt=

= reflink=1

data = bsize=4096块=3932160,imaxpct=25

= sunit= swidth= blks

命名=版本2 bsize=4096 ascii-ci=,ftype=1

log =内部日志bsize=4096块=2560,版本=2

= sectsz=4096 sunit=1 blks,lazy-count=1

实时=无extsz=4096块=,rtextents=

元数据=/dev/vdo _ VG/vdo _ lv02 isize = 512 ag count = 4,agsize=983040 blks

= sectsz=4096 attr=2,projid32bit=1

= crc=1 finobt=1,稀疏=1,rmapbt=

= reflink=1

data = bsize=4096块=3932160,imaxpct=25

= sunit= swidth= blks

命名=版本2 bsize=4096 ascii-ci=,ftype=1

log =内部日志bsize=4096块=2560,版本=2

= sectsz=4096 sunit=1 blks,lazy-count=1

实时=无extsz=4096块=,rtextents=

元数据=/dev/vdo _ VG/vdo _ lv03 isize = 512 ag count = 4,agsize=983040 blks

= sectsz=4096 attr=2,projid32bit=1

= crc=1 finobt=1,稀疏=1,rmapbt=

= reflink=1

data = bsize=4096块=3932160,imaxpct=25

= sunit= swidth= blks

命名=版本2 bsize=4096 ascii-ci=,ftype=1

log =内部日志bsize=4096块=2560,版本=2

= sectsz=4096 sunit=1 blks,lazy-count=1

实时=无extsz=4096块=,rtextents=

当我们将新文件系统装载到装载点时,我们将告诉XFS放弃该数据块,因为这将大大加快文件删除速度。

# mkdir -p /data/{01..03}

#对于“seq 1 3”中的I;do mount -o丢弃/dev/vdo _ VG/vdo _ lv0 $ I/data/$ I;完成的

现在,我们已经向设备写入了少量数据,我们可以再次检查VDO卷,看看情况是否发生了变化。

# vdostats - hu

设备大小已用可用使用%节省空间%

/dev/mapper/vdolvm 20.0g 4.0G 16.0g 20% 86%

设置为启动

以下三个逻辑卷设置为引导,需要添加到fstab文件中。

用于查看这三个逻辑卷的UUID。

使用上面获得的UUID,并将其添加到/etc/fstab文件中:

# vim /etc/fstab

UUID =“bd2c 1c 61-4656-4065-b5a 0-3c a53 ef 0 f 949”/data/01 xfs默认值,x-systemd.device-timeout=,x-systemd.requires=vdo.service

UUID = " 1e 53579 b-f1da-4f 77-80e 6-d61a 40515525 "/数据/02 xfs默认值,x-systemd.device-timeout=,x-systemd.requires=vdo.service

UUID = " d41 BF 7e 2-BF 75-4d B7-b323-a 923375 F6 e "/数据/03 xfs默认值,x-systemd.device-timeout=,x-systemd.requires=vdo.service

结束