vdo管理
文章目录
- vdo管理
- 一、VDO基本概念
- 二、常用操作
- 三、验证VDO卷
一、VDO基本概念
- VDO(Virtual Data Optimize虚拟数据优化)
通过压缩或删除存储设备上的数据来优化存储空间。VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也可以是加密设备。存储层(如LVM logic卷和文件系统)放置在VDO层的顶部。 - VDO按以下顺序将三个阶段应用于数据,减少存储设备上的占用空间
- 零区块的排除:在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理
- 重复数据删除:在第二阶段,输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(U niversal D eduplication S ervice),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可
- 压缩:一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能
二、常用操作
1.检查软件包是否安装
[root@localhost ~]# rpm -qa vdo
vdo-6.2.0.293-10.el8.x86_64
[root@localhost ~]# rpm -qa kmod-kvdo
kmod-kvdo-6.2.0.293-50.el8.x86_64
2.安装软件包
[root@localhost ~]# yum -y install vdo kmod-kvdo
3.添加一块新磁盘。
[root@localhost ~]# fdisk -l /dev/sdb
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
4.创建vdo卷
[root@localhost ~]# vdo create --name=vdodisk1 --device=/dev/sdb --vdoLogicalSize=5G
5.查看vdo卷状态(主要查看重删压缩功能状态是否打开deduplication重复删除数据 compression压缩)
[root@localhost ~]# fdisk -l /dev/mapper/vdodisk1
Disk /dev/mapper/vdodisk1:5 GiB,5368709120 字节,1310720 个扇区
单元:扇区 / 1 * 4096 = 4096 字节
扇区大小(逻辑/物理):4096 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
[root@localhost ~]# vdo status --name=vdodisk1
[root@localhost ~]# vdo status --name=vdodisk1 |grep -E "Deduplication|Compression"Compression: enabled
Deduplication: enabled
扩展:如果状态异常可以使用启动关闭vdo:
[root@localhost images]# vdo stop -n vdodisk1
Stopping VDO vdodisk1
[root@localhost images]# vdo start -n vdodisk1
Starting VDO vdodisk1
Starting compression on VDO vdodisk1
VDO instance 1 volume is ready at /dev/mapper/vdodisk1
6.格式化挂载
[root@localhost ~]# mkfs.xfs -K /dev/mapper/vdodisk1
-K选项可防止立即丢弃文件系统中未使用的块,从而使命令返回更快(硬盘较大的时候使用)。
[root@localhost by-id]# udevadm settle ---刷新设备,向udev注册新设备。
[root@localhost /]# mkdir /vdotest
[root@localhost /]# mount /dev/mapper/vdodisk1 /vdotest/
[root@localhost /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 10M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda3 12G 3.9G 8.2G 32% /
/dev/sda1 195M 122M 73M 63% /boot
tmpfs 392M 16K 392M 1% /run/user/42
tmpfs 392M 3.5M 389M 1% /run/user/0
/dev/sr0 6.7G 6.7G 0 100% /mnt
/dev/mapper/vdodisk1 5.0G 69M 5.0G 2% /vdotest
三、验证VDO卷
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.0G 16.0G 20% 98%
[root@localhost /]# cp /mnt/images/install.img /vdotest/
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.3G 15.7G 21% 3%
[root@localhost /]# cp /mnt/images/install.img /vdotest/install.img-2
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.4G 15.6G 22% 38%
[root@localhost /]# cp /mnt/images/install.img /vdotest/install.img-3
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.5G 15.5G 22% 61%
[root@localhost /]# cp /mnt/images/install.img /vdotest/install.img-4
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.5G 15.5G 22% 70%
[root@localhost /]# cp /mnt/images/install.img /vdotest/install.img-5
[root@localhost /]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdodisk1 20.0G 4.5G 15.5G 22% 77%# 扩展:扩容vdo卷
[root@localhost images]# lsof /vdotest/
[root@localhost images]# kill -9 xxxxx
bash: kill: xxxxx: 参数必须是进程或任务 ID
[root@localhost images]# umount /vdotest
[root@localhost images]# vdo growLogical --name=vdodisk1 --vdoLogicalSize=10G
[root@localhost images]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 12G 0 part /
sdb 8:16 0 20G 0 disk
└─vdodisk1 253:0 0 10G 0 vdo
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 6.6G 0 rom /mnt
[root@localhost images]# xfs_growfs /dev/mapper/vdodisk1
[root@localhost images]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 10M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda3 12G 3.9G 8.2G 33% /
/dev/sda1 195M 122M 73M 63% /boot
tmpfs 392M 16K 392M 1% /run/user/42
tmpfs 392M 3.5M 389M 1% /run/user/0
/dev/sr0 6.7G 6.7G 0 100% /mnt
/dev/mapper/vdodisk1 10G 3.2G 6.9G 32% /vdotest# 扩展:删除vdo卷
[root@localhost images]# umount /vdotest
[root@localhost images]# vdo remove --name vdodisk1
Removing VDO vdodisk1
Stopping VDO vdodisk1
[root@localhost images]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 12G 0 part /
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 6.6G 0 rom /mnt8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 6.6G 0 rom /mnt