简介:
VDO(Virtual Data Optimize虚拟数据优化):通过压缩或删除存储设备上的数据来优化存储空间
红帽企业Linux8包含虚拟数据优化器(VDO)驱动程序,可以优化块设备上数据的空间占用。VDO是一个Linux设备映射器驱动程序,它可以减少块设备上的磁盘空间使用,同时最大限度减少数据重复,从而节省磁盘空间,甚至提高数据吞吐量。VDO包括两个内核模块: kvdo模块用于以透明的方式控制数据压缩,uds 则可用于重复数据删除。
VDO会按以下顺序对数据实施三个阶段的处理,以减少存储设备上的空间占用:
1.零块消除将过滤掉仅包含零(0)的数据块,且仅在元数据中记录这些块的信息。非零数据块隨即被传递到下一个处理阶段。该阶段将启用VDO设备中的精简配置功能。(整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理重复数据删除:)
2.重复数据删除将去除冗余的数据块。在创建相同数据的多个副本时,VDO 会检测重复数据块并更新元数据,以便使用这些重复块来引用原始数据块,而不会创建冗余数据块。通用重复数据删除服务(UDS)内核模块将通过其维护的元数据来检查数据的冗余。该内核模块是作为VDO的一部分而提供的。
3.最后一个阶段是压缩。 kvdo 内核模块使用LZ4压缩对块进行压缩,并以4 KB块进行分组
案例一:添加一块硬盘大小为5G,安装3:1的方式创建vdo卷,测试是否对该卷删除重复元素
1、安装VDO模块,需要的软件包是kmod-kvdo vdo
2.添加一个磁盘为5G
3、创建VDO卷
[root@www ~]# vdo create --name vdo1 --device /dev/sdb --vdoLogicalSize 15G
3、分析一个VDO卷(deduplication重复删除数据 compression压缩)看是否启用了
4、给vdo1一个xfs文件系统,之后挂载到/mnt/vdo1上
-K选项可防止立即丢弃文件系统中未使用的块,从而使命令返回更快
5、查看使用状态
[root@www ~]#vdostats --human-readable