配置过程:
首先安装vdo的软件包
yum install -y vdo kmod-kvdo #默认已安装
创建vdo卷
[root@guochanghe ~]# vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=15G #创建一个15G的vdo卷
Creating VDO vdo0
Starting VDO vdo0
Starting compression on VDO vdo0
VDO instance 0 volume is ready at /dev/mapper/vdo0
[root@guochanghe ~]# vdo list #查看vdo卷列表
vdo0
[root@guochanghe ~]# vdostats --human-readable #用vdostatus来查看卷的状态
Device Size Used Available Use% Space saving%
/dev/mapper/vdo0 20.0G 4.0G 16.0G 20% 0%
[root@guochanghe ~]# mkfs.xfs /dev/mapper/vdo0 #将vdo格式化为xfs文件系统
meta-data=/dev/mapper/vdo0 isize=512 agcount=4, agsize=983040 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=3932160, 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@guochanghe ~]# mount /dev/mapper/vdo0 /file01/ #挂载在file01目录上
[root@guochanghe ~]# df -TH /file01/
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vdo0 xfs 17G 147M 16G 1% /file01 #这个是逻辑上的空间
现在进行重复数据删除和压缩的功能
[root@guochanghe file01]# ll rhel-server-6.0-i386-dvd.iso
-rw-r--r--. 1 root root 2931056640 6月 7 02:17 rhel-server-6.0-i386-dvd.iso
我们先上传一个文件用来测试
[root@guochanghe ~]# vdostats --human-readable #上传第一个文件后的物理空间
Device Size Used Available Use% Space saving%
/dev/mapper/vdo0 20.0G 6.7G 13.3G 33% 2%
[root@guochanghe ~]# df -TH /file01/
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vdo0 xfs 17G 3.1G 14G 20% /file01
[root@guochanghe file01]# mv rhel-server-6.0-i386-dvd.iso rhel.iso #改个名字,再进行上传一次相等的数据。
[root@guochanghe ~]# df -TH /file01/ #可以看到,两个文件都占用了逻辑空间。
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vdo0 xfs 17G 6.1G 11G 38% /file01
[root@guochanghe ~]# !vd
vdostats --human-readable #但是可以看到,物理空间一直都没有动。
Device Size Used Available Use% Space saving%
/dev/mapper/vdo0 20.0G 6.7G 13.3G 33% 51%
vdo 的重复删除,其实有点类似于百度网盘,传进来之后进行计算,如果重复了就删除。
1.tuned特性主要还是使用linux系统现有的一些调节手段和工具,包括CPU、磁盘的电源管理工具,内核参数调整等方式进行系统的性能调节。其主要的特点在于将上述的调整整合到一个具体的策略(profile)中,这样用户可以根据不同的使用场景和需求,很方便的对系统的性能进行设置,极大的简化了linux的性能调节。
2.Stratis 是新一代的存储管理解决方案,称为卷管理文件系统。可以通过它创建文件系统及调整其大小时以动态、透明的方式来管理卷层。不过,尽管这些文件系统的社区开发已经持续很多年,但仍未达到红帽企业 Linux 主要本地存储所需要的功能支持和稳定性水平。
Stratis 以管理物理存储池的服务形式运行,并透明地为所创建的文件系统创建和管理卷。由于 Stratis 使用现有的存储驱动程序和工具,因此 Stratis 也支持当前在 lvm、xfs 和设备映射器中使用的所有高级存储功能。Stratis 文件系统没有固定大小,也不再预分配未使用的块空间。
Stratis 使用存储的元数据来识别所管理的池、卷和文件系统。因此绝不应该对 Stratis 创建的文件系统进行手动重新格式化或重新配置;只应使用 Stratis 工具和命令对它们进行管理。手动配置 Stratis 文件系统可能会导致该元数据丢失,并阻止 Stratis 识别它已创建的文件系统。您可以使用不同组的块设备来创建多个池。在每个池中,您可以创建一个或多个文件系统。目前每个池最多可以创建 2^24 个文件系统。
3.VDO的主要作用是节省磁盘空间,关键原理主要是重删和压缩,重删就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。类似我们在百度网盘中上传一个大型软件安装包,能实现秒传,其实是之前就有,所以无需再传一遍,也无需再占百度一份空间。另一方面是数据压缩,类似于压缩软件的算法,也可以更加节省磁盘空间。