linux中VDO的使用

作者: 重庆思庄 | 来源:发表于2019-11-25 15:26 被阅读0次

    VDO(Virtual Data Optimize虚拟数据优化):通过压缩或删除存储设备上的数据来优化存储空间 VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也可以是加密设备。存储层(如LVM logic卷和文件系统放置在VDO层的顶部。 VDO按以下顺序将三个阶段应用于数据,减少存储设备上的占用空间 零区块的排除: 在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理 重复数据删除: 在第二阶段,输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(U niversal D eduplication S ervice),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可 压缩: 一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能

    实验 1、安装VDO模块,需要的软件包是kmod-kvdo vdo #yum install vdo kmod-kvdo -y 2、创建VDO卷 # vdo create --name=vdo1 --device=/dev/sdd --vdoLogicalSize=5G

    3、分析一个VDO卷(deduplication重复删除数据 compression压缩) # vdo status --name=vdo1

    4、给vdo1一个xfs文件系统,之后挂载到/mnt/vdo1上 #mkfs.xfs -K /dev/mapper/vdo1 -K选项可防止立即丢弃文件系统中未使用的块,从而使命令返回更快

    刷新存储设备

    # udevadm settle

    #mkdir /mnt/vod1

    挂载使用

    #mount /dev/mapper/vdo1 /mnt/vdo1/

    5、使用vdostats命令查看卷的初始统计信息和状态

    # vdostats --human-readable

    Device Size Used Available Use% Space saving%

    /dev/mapper/vdo1 8.0G 4.0G 4.0G 50% 98%

    6、创建文件

    # cp /run/media/root/RHEL-8-0-0-BaseOS-x86_64/images/install.img /root/install.img

    7、移动文件到挂载点中,然后看一下结果

    #mv /root/install.img /mnt/install.1.img

    # vdostats --human-readable

    Device Size Used Available Use% Space saving%

    /dev/mapper/vdo1 8.0G 4.4G 3.6G 54% 73%

    8、重新复制一遍

    # cp /root/install.img /mnt/vdo1/install.2.img

    # vdostats --human-readable

    Device Size Used Available Use% Space saving%

    /dev/mapper/vdo1 8.0G 4.4G 3.6G 55% 70%

    总结:会发现传一个相同的文件,但是空间并不会发生变化。

    相关文章

      网友评论

        本文标题:linux中VDO的使用

        本文链接:https://www.haomeiwen.com/subject/dycjwctx.html