1.vdo(虚拟数据优化)
Virtual Data Optimize:
通过压缩或删除存储设备上的数据来优化存储空间
VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也可以是加密设备。存储层(如LVM logic卷和文件系统放置在VDO层的顶部。
VDO按以下顺序将三个阶段应用于数据,减少存储设备上的占用空间
零区块的排除:
在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理;
重复数据删除:
在第二阶段,输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(U niversal D eduplication S ervice),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可;
压缩:
一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能。
- 虚拟数据优化器
kvdo:压缩数据
uds:优化重复数据
2.vdo创建
- 检查是否安装vdo
dnf search vdo
—>dnf list vdo.x86_64
安装vdo:dnf install vdo -y
- 创建vdo:
vdo create --name westos_vdo1 --device /dev/vdb
- 查看vdo是否开启:
vdo status --all
:所有vdo
vdo status --name westos_vdo1 | less
:westos_vdo1
#显示内容:
Deduplication:enable #vdo检测并删除重复数据的功能开启
Compression:enable #vdo数据压缩功能开启
- 开启vdo
vdo start --name westos_vdo1
2.1.示例
3.使用vdo设备
mkfs.xfs -K /dev/mapper/westos_vdo1
:格式化
(-K加快格式化速度)mount /dev/mapper/westos_vdo1 /westosdir/
:挂载
3.1.示例
4.测试vdo性能
vdostats --human-readable
:查看设备使用情况
4.1.示例
找一个空间较大的文件,复制三次到vdo所挂载的目录下,发现文件已经复制过来,但相同文件不占空间
(每次复制要改名,否则会覆盖文件)
5.开机自动挂载
vim /etc/fstab
/dev/mapper/westos_vdo1 /westosdir xfs defaults,x-systemd.requires=vdo.service 0 0
6.删除vdo设备
umount /westosdir
:取消挂载vim /etc/fstab
:删除vdo开机自动挂载vdo stop --name westos_vdo1
:停止vdovdo remove --name westos_vdo1
:删除vdovdostats --human-readable
:查看设备使用情况