Rocky Linux 8 VDO原理和配置

理解什么是VDO

VDO(Virtual Data Optimize)是RHEL8/Centos8上新推出的一个存储相关技术(最早在7.5测试版中开始测试),是Redhat收购的Permabit公司的技术。

  VDO的主要作用是节省磁盘空间,比如让1T的磁盘能装下1.5T的数据,从而降低数据中心的成本。

  关键原理主要是重删和压缩,重删就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。类似我们在百度网盘中上传一个大型软件安装包,能实现秒传,其实是之前就有,所以无需再传一遍,也无需再占百度一份空间。另一方面是数据压缩,类似于压缩软件的算法,也可以更加节省磁盘空间。

配置VDO

[root@cpe-172-100-108-1 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    2M  0 part 
├─sda2        8:2    0    2G  0 part /boot
└─sda3        8:3    0   98G  0 part 
  ├─rl-root 253:0    0   94G  0 lvm  /
  └─rl-swap 253:1    0    4G  0 lvm  [SWAP]
sdb           8:16   0    1T  0 disk 
sr0          11:0    1 1024M  0 rom  
[root@cpe-172-100-108-1 ~]# vdo create --name=vdo_01 --device=/dev/sdb --vdoLogicalSize=1500G # 创建vdo虚拟磁盘,--name后跟vdo卷的名称,--device后跟真实的物理磁盘,--vdoLogicalSize后跟vdo卷的容量,这里按真实物理空间的1.5倍
Creating VDO vdo_01
      The VDO volume can address 1020 GB in 510 data slabs, each 2 GB.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdo_01
Starting compression on VDO vdo_01
VDO instance 0 volume is ready at /dev/mapper/vdo_01

[root@cpe-172-100-108-1 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    2M  0 part 
├─sda2        8:2    0    2G  0 part /boot
└─sda3        8:3    0   98G  0 part 
  ├─rl-root 253:0    0   94G  0 lvm  /
  └─rl-swap 253:1    0    4G  0 lvm  [SWAP]
sdb           8:16   0    1T  0 disk 
└─vdo_01   253:2    0  1.5T  0 vdo  
sr0          11:0    1 1024M  0 rom  

[root@cpe-172-100-108-1 ~]# mkfs.xfs -K /dev/mapper/vdo_01 # 创建文件系统(xfs)
meta-data=/dev/mapper/vdo_01    isize=512    agcount=4, agsize=98304000 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=393216000, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=192000, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@cpe-172-100-108-1 ~]# mkdir /vdodisk
[root@cpe-172-100-108-1 ~]# mount /dev/mapper/vdo_01 /vdodisk/  
[root@cpe-172-100-108-1 ~]# df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs               tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs               tmpfs     1.9G  8.6M  1.9G   1% /run
tmpfs               tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root xfs        94G  7.0G   87G   8% /
/dev/sda2           xfs       2.0G  292M  1.8G  15% /boot
tmpfs               tmpfs     374M     0  374M   0% /run/user/1000
/dev/mapper/vdo_01 xfs       1.5T   11G  1.5T   1% /vdodisk
[root@cpe-172-100-108-1 ~]# 

测试

  测试vdo的重删功能,同一测试文件往vdo所在挂载分区里拷贝了2次(重命名方式),当拷贝2+n次后,发现该测试文件没有再占用空间。

上一篇
下一篇