Linux Virtual Data Optimizer(虚拟数据优化器)VDO
VDO
•Virtual Data Optimizer(虚拟数据优化器)
–一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽
–VDO是基于块设备层之上的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可
•重复数据删除
–输入的数据会判断是不是冗余数据
–判断为重复数据的部分不会被写入,然后对源数据进行更新,直接指向原始已经存储的数据块即可
•压缩
–对每个单独的数据块进行处理
[root@svr7 ~]# yum -y install vdo kmod-kvdo #所需软件包
制作VDO卷
•vdo基本操作:参考man vdo 全文查找/example
–vdo create --name=VDO卷名称 --device=设备路径 --vdoLogicalSize=逻辑大小
–vdo list
–vdo status -n VDO卷名称
–vdo remove -n VDO卷名称
–vdostatus [--human-readable] [/dev/mapper/VDO卷名称]
•VDO卷的格式化加速(跳过去重分析):
–mkfs.xfs –K /dev/mapper/VDO卷名称
–mkfs.ext4 -E nodiscard /dev/mapper/VDO卷名称
前提制作VDO需要2G以上的内存
[root@nb ~]# vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=200G [root@nb ~]# mkfs.xfs -K /dev/mapper/vdo0 [root@nb ~]# mkdir /nsd01 [root@nb ~]# mount /dev/mapper/vdo0 /nsd01 [root@nb ~]# df -h [root@nb ~]# vdostats --hum /dev/mapper/vdo0 #查看vdo设备详细信息 [root@svr7 ~]# vim /etc/fstab /dev/mapper/vdo0 /nsd01 xfs _netdev 0 0
实验题:VDO卷练习
使用新添加的第四块硬盘创建vdo卷,卷名称为baseurl,卷容量为50G
将卷格式化为xfs文件系统格式,永久挂载到/case目录
参考步骤
步骤一:使用新添加的第四块硬盘创建vdo卷,卷名称为baseurl,卷容量为50G
这里假设第四块新添加的硬盘名称为vde,如果你的硬盘名称不一样,不要照抄!
//安装vdo软件 [root@localhost ~]# yum -y install vdo //启动vdo服务 [root@localhost ~]# systemctl start vdo //设置服务开机自启动 [root@localhost ~]# systemctl enable vdo //使用vdo create命令创建VDO卷 //-n指定卷的名称为baseurl,--device指定使用/dev/vde硬盘创建VDO卷 //--vdoLogicalSize指定卷的容量大小 [root@localhost ~]# vdo create -n baseurl --device /dev/vde --vdoLogicalSize 50G Creating VDO baseurl Starting VDO baseurl Starting compression on VDO baseurl VDO instance 0 volume is ready at /dev/mapper/baseurl
仔细观察最后的提示,创建的VDO卷位置为/dev/mapper/baseurl(固定位置)。
步骤二:将卷格式化为xfs文件系统格式,永久挂载到/case目录
//格式化(-K可以让格式化速度更快) [root@localhost ~]# mkfs.xfs -K /dev/mapper/baseurl //创建挂载点目录 [root@localhost ~]# mkdir /case //编辑/etc/fstab实现设备永久挂载(不要删除或修改原有内容,添加新内容即可) [root@localhost ~]# vim /etc/fstab … … /dev/mapper/baseurl /case xfs defautls,_netdev 0 0 //刷新,挂载 [root@localhost ~]# mount -a //编辑/etc/fstab实现设备永久挂载(不要删除或修改原有内容,添加新内容即可) [root@localhost ~]# vim /etc/fstab//重启计算机,测试是否可以正常启动,如果无法启动,代表写错了,需要自己排错 [root@localhost ~]# reboot