VDO
目标
使用VDO压缩存储设备上的数据并进行重复删除,以此来优化存储空间的使用。
名词解释
- 虚拟数据优化器
红帽企业Linux8包含虚拟数据优化器(VDO)驱动程序,可以优化块设备上数据的空间占用。VDO是一个Linux设备映射器驱动程序,它可以减少块设备上的磁盘空间使用,同时最大限度减少数据重复,从而节省磁盘空间,甚至提高数据吞吐量。VDO包括两个内核模块:kvdo模块用于以透明的方式控制数据压缩,uds则可用于重复数据删除。
VDO层位于现有块存储设备(如RAID设备或本地磁盘)的顶部。这些块设备也可以是加密设备。存储层(如LVM逻辑卷和文件系统)位于VDO设备之上。
lvm
实际操作
- 环境准备
##检查是否有vdo服务
[root@sinfotek database]# rpm -ql vdo | grep serv
/usr/lib/systemd/system/vdo.service
[root@sinfotek database]# systemctl status vdo
● vdo.service - VDO volume services
Loaded: loaded (/usr/lib/systemd/system/vdo.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2022-11-10 13:52:07 CST; 3h 2min ago
Process: 954 ExecStart=/usr/bin/vdo start --all --confFile /etc/vdoconf.yml (code=exited, status=0/SUCCESS)
Main PID: 954 (code=exited, status=0/SUCCESS)
11月 10 13:52:00 sinfotek systemd[1]: Starting VDO volume services...
11月 10 13:52:07 sinfotek systemd[1]: Started VDO volume services.
- 挂在一个磁盘进行验证
[root@sinfotek ~]# mkfs.xfs /dev/mapper/vdo1
meta-data=/dev/mapper/vdo1 isize=512 agcount=4, agsize=392422 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1569686, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@sinfotek ~]# mkdir /vdo
[root@sinfotek ~]# mount /dev/mapper/vdo1 /vdo
[root@sinfotek ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.4M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root 17G 4.8G 13G 28% /
tmpfs 1.0M 0 1.0M 0% /run/stratisd/keyfiles
/dev/mapper/stratis-1-0f89b42052d34dd6a2fb95c6010964d5-thin-fs-230c4ea420cd4f9abc2996965fd09106 1.0T 7.2G 1017G 1% /database
/dev/sda1 976M 193M 716M 22% /boot
tmpfs 376M 4.0K 376M 1% /run/user/0
/dev/mapper/vdo1 6.0G 76M 6.0G 2% /vdo
[root@sinfotek vdo]# ll -lh
总用量 100M
-rw-r--r-- 1 root root 100M 11月 11 10:26 testfile
[root@sinfotek vdo]# dd if=/dev/zero of=testfile bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.27211 s, 320 MB/s
[root@sinfotek vdo]# ll -lh
总用量 1000M
-rw-r--r-- 1 root root 1000M 11月 11 10:26 testfile
[root@sinfotek vdo]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 10.0G 4.0G 6.0G 40% 99%
[root@sinfotek vdo]# dd if=/dev/zero of=testfile1 bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.7619 s, 97.4 MB/s
[root@sinfotek vdo]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 10.0G 4.0G 6.0G 40% 99%
[root@sinfotek vdo]# ls
testfile testfile1
文档更新时间: 2022-11-11 10:31 作者:xiubao yan