学习目标:
- 理解什么是VDO,VDO有什么作用。
- 学会使用VDO。
内容前导:
- VDO(Virtual Data Optimize,虚拟数据优化)是一种通过压缩或删除存储设备上的数据来优化存储空间的技术,其技术的关键在于对硬盘内原有的数据进行删重操作,除此之外,它还可以对日志和数据库进行自动压缩,进一步减少存储浪费的情况。
- 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 版权协议,转载请附上原文出处链接和本声明。