VDO压缩存储和去除冗余数据

VDO是一种用于优化块设备存储空间的技术,通过零块消除、重复数据删除和压缩三个阶段减少数据占用。在Linux系统中,VDO可以通过YUM安装,使用vdocreate命令创建卷,并能以XFS等文件系统格式挂载。VDO的使用有助于节省存储空间并提高读取性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

VDO:Virtual Data Optimizer 虚拟数据优化器驱动程序,可以优化块设备上数据的空间占用。

VDO层位于块存储设备的顶部,而存储层位于VDO设备之上。

VDO按以下顺序将三个阶段应用于数据,减少存储设备上的占用空间

零块消除-->去除冗余数据块-->压缩

零区块的排除:
在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理
重复数据删除:
在第二阶段,输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(U niversal D eduplication S ervice),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可
压缩:
一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能
实施VDO

VDO卷的逻辑大小可以大于实际块设备的物理大小。如果创建卷时未指定逻辑大小,则VDO会将实际物理大小视为卷的逻辑大小。

若VDO卷的逻辑大小超过物理大小时,应使用vdostats --verbose命令主动监控卷统计信息,可以查看实际使用情况。

(1)启用VDO

安装有关软件包VDO和kmodo-kvdo

yum install vdo kmod-kvdo
(2)创建VDO卷

运行vdo create命令创建VDO卷(使用未分区的磁盘)

vdo create --name=vdo1 --device=/dev/vdd --vdoLogicalSize=50G
#指定名称,设备,大小,如果没有指定大小,则与物理设备大小相同
(3)分析VDO
vdo status --name=vdo1   #查看vdo1的状态
vdo list                 #显示当前启动的VDO卷
vdo start                #启动VDO卷
vdo stop                 #停止VDO卷

VDO卷就位可以将它格式化为所选的文件系统类型并挂载于系统的文件系统层次结构下。

udevadm settle                  #注册新设备节点
mkfs.xfs -K /dev/mapper/vdo1    #格式化为XFS文件系统
mkdir /mnt/vdo1                 #创建挂载点目录
mount /dev/mapper/vdo1 /mnt/vdo1   #挂载
vdostats --human-readable    #查看VDO的初始统计信息和状态

由此可见,VDO的使用节省了空间

(在/etc/fstab文件下编辑添加条目以便启动时自动挂载)

vdo设备的删除

  • 解除挂载:umount /data

  • vdo设备的停止:vdo stop --name westos_vdo

  • vdo设备的删除:vdo remove --name westos_vdo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值