linux中的高级存储管理之虚拟数据优化器VDO


前言

我们之前已经介绍了逻辑卷管理器LVM,他的主要功能就是能够伸缩文件系统,使得人们能够更加灵活的使用磁盘空间。但是LVM的出现却不能解决数据优化的问题,在我们的设备上往往会出现一些重复数据或者是空区块的情况,这会大大的浪费我们的磁盘空间,这些问题该如何解决呢?这就要使用到我们今天的主角——虚拟数据优化器VDO了

1. VDO是什么?

VDO即Virtual Data Optimize,中文名为虚拟数据优化器,它可以通过压缩或删除设备上的数据来优化存储空间。

VDO一般置于现有块存储设备(如:本地磁盘)的顶部,分为三个阶段来进行工作,从而减少存储设备上的占用空间。

  1. 零区块的排除
  2. 删除重复数据
  3. 压缩数据

2. 建立VDO设备

安装VDO要点:VDO设备必须安装在新盘上,当然如果你的磁盘并不是新盘的话,也可以通过初始化来获得一个新盘。

这部分用到的命令如下:

dd if=/dev/zero of=/dev/vdb bs=1M count=1      作用:初始化磁盘
dnf install vdo -y                             安装vdo
vdo create --name=mars_vdo1 --device=/dev/vdb  将设备/dev/vdb创建名为mars_vdo1的vdo
vdo status --name=mars_vdo1 |less              使用less翻页阅读名为mars_vdo1的vdo功能状态

具体操作如下:
在这里插入图片描述

在这里插入图片描述
创建vdo并使用less翻页阅读相关功能状态,主要查看该vdo的两个功能:删除重复数据、数据压缩是否处于开启状态,具体如下:

在这里插入图片描述在这里插入图片描述DeduplicationCompression两个功能enabled时即是功能开启状态。

3. VDO设备的挂载及使用

创建好vdo后,它并不会自动开始工作,我们还需要对vdo设备进行初始化并且将它挂载在一个空目录下才能使vdo开始它的数据优化工作。

这部分使用的命令如下:

   mkfs.xfs -K /dev/mapper/mars_vdo1          初始化vdo
   mkdir /mars_vdo                            建立一个可以用于挂载vdo的空目录
   mount /dev/mapper/mars_vdo1 /mars_vdo/     挂载vdo

具体操作如下:

在这里插入图片描述初始化挂载完成后我们就可以使用vdo了,在此,我们还有几个关于vdo设备的命令如下:

 vdo stop --name 设备名称        关闭VDO设备 
 vdo start --name 设备名称       开启VDO设备
 vdo remove --name 设备名称      删除VDO设备

4. 测试vdo

以上我们就可以使用vdo了,接下来让我们见识一下vdo的魅力吧。

基本思路是:挂载vdo后,我们建立一个与vdo中的某个文件内容相同的重复文件或者某个空白文件,然后检测建立该文件前后我们设备存储的使用率。为了使得测试效果更明显,我们需要一个大文件作为实验素材,如果你的主机中难以找到大文件,可以使用以下操作:

建立素材使用到的命令:

   touch big                                建立空文件
   dd if=/dev/zero of=big bs=1M count=1024  使用1G空白区域覆盖该文件获得1G空文件
   ls -l big
   history >> big                           将history内容追加到文件中
   ls -l big

具体操作如下:

在这里插入图片描述在这里插入图片描述
得到这个大文件素材后我们终于可以开始我们的测试了。

测试使用的命令如下:

   df -h /mars_vdo/           查看挂载情况
   vdostats --human-readable  读取vdo存储情况
   cp big /mars_vdo/big1      复制大文件
   vdostats --human-readable  再次读取vdo存储情况

操作过程如下:
在这里插入图片描述
在这里插入图片描述
我们可以发现即使将big文件存入了mars_vdo中,该vdo的存储占用率等并没有发生很大的变化,这主要是因为vdo设备排除了零区块。

如果你们的主机中有非空的大文件,可以再做一次这个测试,来检测以下vdo删除重复数据的功能。需要注意的是,检测重复数据需要确保vdo中至少有两个内容相同的文件,观察出现重复文件前和重复文件后的存储占有率。

5. VDO的永久挂载

说到永久挂载,那必然要先想到我们的设备挂载策略文件/etc/fstab,想要永久挂载即在系统开机时能够自动挂载我们的vdo设备到指定目录上,需要对我们刚提到的文件进行编写,文件内容如下:

/dev/mapper/mars_vdo  /mars_vdo  xfs  defaults,x-systemd.requires=vdo.service 0 0

需注意:x-systemd.requires=vdo.service意思是在挂载该目录前需要先开启vdo服务,一定要有它,否则在开机的时候由于vdo服务未开启,可能导致挂载失败,将会无法开机。
相关命令如下:

 vim /etc/fstab          编写设备挂载策略文档/etc/fstab
 reboot                  重启系统
 df -h                   查看挂载设备

具体操作如下:
在这里插入图片描述在这里插入图片描述其中设备挂载策略文件中如下:
在这里插入图片描述

重启设备后,df查询挂载设备,发现vdo设备已经自动挂载。

6. 删除VDO

最后,我们看来看一下关于VDO的最后一个部分,VDO的删除是如何操作的呢?

删除VDO设备流程的命令如下:

  umount /mars_vdo                  删除设备前需卸载
  vim /etc/fstab                    删除自动挂载VDO的内容
  vdo stop --name mars_vdo1         关闭VDO设备 
  vdo remove --name mars_vdo1       删除VDO设备
  ls -l /dev/mapper                 查看是否删除成功

具体操作如下:
在这里插入图片描述


以上就是我们关于VDO的全部内容了~~~~~~~
下一篇文章见呐~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值