虚拟数据优化器VDO

目录

1.VDO简介

 2.配置vdo

 步骤①:挂载光盘,命令如下。

步骤②:编写repo文件,命令如下。 

步骤③:安装VDO,命令如下。

 3.测试Vdo

4.删除VDO设备。


1.VDO简介

VDO全称是Virtual Data Optimize虚拟数据优化),主要是为了节省硬盘空间。
现在假设有两个文件file1和 file2,大小都是10G。file1和 file2中包含了8G的相同数据,
如图16-1中的灰色部分。这个相同数据在硬盘中存储了两份,所以这两个文件占用的硬盘空间是20G。
如果采用了VDO,效果如图16-2所示。
file1和 file2大小都是10G,两个文件中都有8G的相同数据。那么,这个相同数据在硬盘中只存储一份,让filel和 file2共同使用。所以,最终在硬盘上占用的空间是12G,这样一个20G大小的硬盘,完全可以存储大于20G的文件,主要看这些文件中到底有多少相同数据。
所以,VDO实现的效果是,多个文件中有相同数据,这个相同数据只存储一份,从而实现节省硬盘空间的目的。

 2.配置vdo

首先要安装VDO相关软件包,步骤如下

 步骤①:挂载光盘,命令如下。

[root@RHEL813 ~]# mount /dev/cdrom /mnt/ ##挂载镜像
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@RHEL813 ~]# df -Th  ##查看是否成功挂载
文件系统       类型      容量  已用  可用 已用% 挂载点
devtmpfs       devtmpfs  948M     0  948M    0% /dev
tmpfs          tmpfs     976M     0  976M    0% /dev/shm
tmpfs          tmpfs     976M   11M  966M    2% /run
tmpfs          tmpfs     976M     0  976M    0% /sys/fs/cgroup
/dev/sda3      xfs        47G  5.4G   42G   12% /
/dev/sda1      xfs      1014M  225M  790M   23% /boot
tmpfs          tmpfs     196M   40K  195M    1% /run/user/1000
tmpfs          tmpfs     196M     0  196M    0% /run/user/0
/dev/sr0       iso9660    11G   11G     0  100% /mnt

 这里准备把光盘作为yum源

步骤②:编写repo文件,命令如下。 

[root@RHEL813 ~]# vim /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

[bb]
name=bb
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0

步骤③:安装VDO,命令如下。

[root@RHEL813 ~]# yum -y install vdo kmod-kvdo

查看vdo设备,命令如下。 

[root@RHEL813 ~]# vdo list ##由于还未创建vdo设备,所以显示为空

[root@RHEL813 ~]# 
因为相同数据只存储一份,大大地节省了存储空间,所以本来20G的磁盘空间现在存储30G、40G、50G的数据是完全有可能的。
下面创建一个名称为vdo1、底层设备为/dev/sdb的VDO设备,逻辑大小为50G,命令如下
[root@RHEL813 ~]# vdo create --name vdo1 --device /dev/sdb --vdoLogicalSize 50G
Creating VDO vdo1
      The VDO volume can address 66 GB in 33 data slabs, each 2 GB.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdo1
Starting compression on VDO vdo1
VDO instance 0 volume is ready at /dev/mapper/vdo1
[root@RHEL813 ~]# 
上面提示的一堆信息不用管,最终能看到的是vdo1已经创建好了,可以通
过/dev/mapper/vdo1来使用。

再次查看vdo设备有多少,命令如下。

[root@RHEL813 ~]# vdo list
vdo1
[root@RHEL813 ~]# 

格式化这个VDO设备,命令如下。  

[root@RHEL813 ~]# mkfs.xfs -K /dev/mapper/vdo1 
meta-data=/dev/mapper/vdo1       isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@RHEL813 ~]# 

这里-K(大写)的意思类似于Windows中的快速格式化 

把这个 VDO设备挂载到/vdo1目录上,命令如下。  

[root@RHEL813 ~]# mkdir /vdo1
[root@RHEL813 ~]# mount /dev/mapper/vdo1 /vdo1/
[root@RHEL813 ~]# 

如果希望能永久挂载,需要写入/etc/fstab中,命令如下。 

[root@RHEL813 ~]# vim /etc/fstab
/dev/mapper/vdo1                          /vdo1                   xfs     defaults,_netdev 0 0   ##在 /etc/fstab 中添加这一行即可

需要注意的是,这里一定要有_netdev选项,否则重启系统时,系统是启动不起来的。  

查看vdo1的空间使用情况,命令如下。 

[root@RHEL813 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         70.0G      4.0G     66.0G   5%           99%
[root@RHEL813 ~]# 
这里自身就消耗了4G空间(Used那列),因为这里不存在文件,所以空间节省率为99% (Space saving%那列)。

 3.测试Vdo

往 server2上传一个比较大的文件,这里上传的是一个rhel7.1的镜像,命令如下。
[root@RHEL813 ~]# du -sh rhel.7.1.iso 
3.7G	rhel.7.1.iso
[root@RHEL813 ~]# 

这个文件的大小是3.7G。 

下面开始第一次把 rhel7.1.iso拷贝到/vdol中并命名为file1,命令如下。  

[root@RHEL813 ~]# cp rhel.7.1.iso /vdo1/file1
[root@RHEL813 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         70.0G      7.6G     62.4G  10%            3%
[root@RHEL813 ~]# 
可以看到,现在消耗空间是7.6G,因为只有一个文件不存在相同数据,所以空间节省率为3%。

下面开始第二次把rhel7.1.iso拷贝到/vdo1中并命名为file2,命令如下。 

[root@RHEL813 ~]# cp rhel.7.1.iso /vdo1/file2
[root@RHEL813 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         70.0G      7.6G     62.4G  10%           51%
[root@RHEL813 ~]# 
因为是从同一个文件拷贝的,所以 file2的内容和filel的内容是完全相同的,这里磁盘使用 量仍然是7.6G。
因为实际写入了两个3.7G的文件,本来应该消耗7.4G的空间,但是这两个文件是相同的,所 以实际消耗还是3.7G的空间,节省了7.4-3.7=3.7G的空间,节省率在50%左右(节约出来的 空间除以应该消耗的空间,即3.7/7.4=50%)。

下面开始第三次把rhel7.1.iso铂贝到/vdo1中并命名为file3,命令如下。  

[root@RHEL813 ~]# cp rhel.7.1.iso /vdo1/file3
[root@RHEL813 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         70.0G      7.6G     62.4G  10%           67%
[root@RHEL813 ~]# 
因为是从同一个文件拷贝的,所以 file1、file2、file3三个文件的内容是完全相同的,这里磁盘使用量仍然是7.6G。
因为实际写入了三个3.7G的文件,本来应该消耗11.1G的空间,但是这三个文件是相同的, 所以实际消耗还是3.7G的空间,节省了11.1-3.7=7.4G的空间,节省率在67%左右(节约出 来的空间除以应该消耗的空间,即7.4/11.1~67%)。

4.删除VDO设备。

 要删除VDO设备,命令如下

root@RHEL813 ~]# vdo remove ‐n vdo1

 

 

 

 

 

 

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值