VDO—虚拟数据优化

  • Post author:
  • Post category:其他




学习目标:

  • 理解什么是VDO,VDO有什么作用。
  • 学会使用VDO。



内容前导:

  1. VDO(Virtual Data Optimize,虚拟数据优化)是一种通过压缩或删除存储设备上的数据来优化存储空间的技术,其技术的关键在于对硬盘内原有的数据进行删重操作,除此之外,它还可以对日志和数据库进行自动压缩,进一步减少存储浪费的情况。
  2. VDO技术支持本地存储和远程存储,可以作为本地文件系统、iSCSI或Ceph存储下的附加存储层使用。



实验输出:

第一步:添加一块20GB的新SATA硬盘,开机后就看到显示为/dev/sdc的新硬盘了。

第二步:创建一个全新的VDO卷,其中name参数代表新的设备卷名称;device参数代表由哪块磁盘进行制作;vdoLogicalSize参数代表制作后的设备大小。

[root@linuxprobe ~]# vdo create --name=storage --device=/dev/sdc --vdoLogicalSize=200G
//20G硬盘将翻成200GB的逻辑存储
Creating VDO storage
Starting VDO storage
Starting compression on VDO storage
VDO instance 0 volume is ready at /dev/mapper/storage  //新建的vdo设备被存放在/dev/mapper目录下

第三步:对vdo设备进行格式化并挂载

[root@linuxprobe ~]# mkfs.xfs /dev/mapper/storage  //将设备进行格式化
meta-data=/dev/mapper/storage    isize=512    agcount=4, agsize=13107200 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=52428800, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@linuxprobe ~]# udevadm settle //为避免上面的配置没有生效,使用udevadm settle刷新设备
[root@linuxprobe ~]# mkdir /storage
[root@linuxprobe ~]# mount /dev/mapper/storage /storage  //挂载设备

第四步:使用vdostats命令查看设备的实际使用情况或者df命令查看

[root@linuxprobe ~]# vdostats --human-readable  //这里显示的是实际的物理存储大小
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.0G     16.0G  20%           99%
[root@linuxprobe ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               969M     0  969M   0% /dev
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  984M  9.7M  974M   1% /run
tmpfs                  984M     0  984M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   17G  3.9G   14G  23% /
/dev/sda1             1014M  152M  863M  15% /boot
tmpfs                  197M   16K  197M   1% /run/user/42
tmpfs                  197M  3.4M  194M   2% /run/user/0
/dev/sr0               6.7G  6.7G     0 100% /run/media/root/RHEL-8-0-0-BaseOS-x86_64
/dev/mapper/storage    200G  1.5G  199G   1% /storage  //逻辑存储大小

第五步 :复制一个大文件夹到/storage中,观察占用的容量及空间节省率是多少?

[root@linuxprobe ~]# ls -lh /run/media/root/RHEL-8-0-0-BaseOS-x86_64/images/install.img
-r--r--r--. 1 root root 448M Apr  4  2019 /run/media/root/RHEL-8-0-0-BaseOS-x86_64/images/install.img
[root@linuxprobe ~]# cp /run/media/root/RHEL-8-0-0-BaseOS-x86_64/images/install.img /storage
[root@linuxprobe ~]# ls -lh /storage
total 448M
-r--r--r--. 1 root root 448M Dec 30 19:36 install.img
[root@linuxprobe ~]# vdostats --human-readable
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.4G     15.6G  22%           18%

第六步:效果不明显,再复制一份相同的文件夹过来,看看这次占用了多少空间,可以看到原先448M的文件这次只占用了不到100M的容量。空间节省率也从18%提升到55%。而且这仅仅是两次操作而已。

[root@linuxprobe ~]# cp /run/media/root/RHEL-8-0-0-BaseOS-x86_64/images/install.img /storage/rhel.img
[root@linuxprobe ~]# vdostats --human-readable
Device                    Size      Used Available Use% Space saving%
/dev/mapper/storage      20.0G      4.5G     15.5G  22%           55%

第七步:要想永远与该设备关联,记得要进行永久挂载哦 。



学习产出:

​​​​​​​        今天主要理解并学习了如何使用VDO,小伙伴们记得要进行实验哦!



版权声明:本文为qq_45364825原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。