虚拟数据优化器VDO

本章主要介绍虚拟化数据优化器。

  • 什么是虚拟数据优化器VDO
  • 创建VDO设备以节约硬盘空间

了解什么是VDO

VDO全称是Virtual Data Optimize(虚拟数据优化),主要是为了节省硬盘空间。 

现在假设有两个文件file1和 file2,大小都是10G。file1和 file2中包含了8G的相同数据, 如下图中的灰色部分。这个相同数据在硬盘中存储了两份,所以这两个文件占用的硬盘空间是20G。 

 

在没有VDO的情况下 

如果采用了VDO,效果如下图所示。 

 

 在VDO存储数据

  file1和 file2大小都是10G,两个文件中都有8G的相同数据。那么,这个相同数据在硬盘 中只存储一份,让filel和 file2共同使用。所以,最终在硬盘上占用的空间是12G,这样一个 20G大小的硬盘,完全可以存储大于20G的文件,主要看这些文件中到底有多少相同数据。 

  所以,VDO实现的效果是,多个文件中有相同数据,这个相同数据只存储一份,从而实现 节省硬盘空间的目的。 


配置VDO 

首先要安装VDO相关软件包(关于软件包的管理在后面章节中有详细讲解),步骤如下。 

  • 挂载光盘,命令如下。
[root@rhel03 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@rhel03 ~]# 

这里准备把光盘作为yum源。

  • 编写repo文件,命令如下。
[root@rhel03 ~]# cat /etc/yum.repos.d/aa.repo 
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0


[bb]
name=bb
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
  • 安装VDO,命令如下。
[root@rhel03 ~]# yum -y install vdo kmod-kvdo
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

aa                                                                                                  72 MB/s | 7.2 MB     00:00    
bb                                                                                                  83 MB/s | 2.4 MB     00:00    
上次元数据过期检查:0:00:01 前,执行于 2023年12月06日 星期三 11时12分57秒。
软件包 vdo-6.2.5.74-14.el8.x86_64 已安装。
软件包 kmod-kvdo-6.2.5.72-81.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[root@rhel03 ~]# 

查看 VDO设备,命令如下。 

[root@rhel03 ~]# vdo list

[root@rhel03 ~]#

没有任何输出,说明现在还没有任何VDO设备。 

  因为相同数据只存储一份,大大地节省了存储空间,所以本来20G的磁盘空间现在存储 30G、40G、50G的数据是完全有可能的。 

  下面创建一个名称为vdo1、底层设备为/dev/sdc的VDO设备,逻辑大小为50G,命令如下。(这里我给自己虚拟机添加一块50G的硬盘用作实验) 

[root@rhel03 ~]# vdo create --name vdo1 --device /dev/sdb --vdoLogicalSize 50G
Creating VDO vdo1
      The VDO volume can address 46 GB in 23 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 vdo1
Starting compression on VDO vdo1
VDO instance 0 volume is ready at /dev/mapper/vdo1
[root@rhel03 ~]# 

  上面提示的一堆信息不用管,最终能看到的是vdo1已经创建好了,可以通 过/dev/mapper/vdo1来使用 

再次查看有多少VDO设备,命令如下。

[root@rhel03 ~]# vdo list
vdo1
[root@rhel03 ~]#

格式化这个VDO设备,命令如下。 

[root@rhel03 ~]# mkfs.xfs -K /dev/mapper/vdo1 
meta-data=/dev/mapper/vdo1       isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@rhel03 ~]# 

这里-K(大写)的意思类似于Windows中的快速格式化。

把这个 VDO设备挂载到/vdo1目录上,命令如下。 

[root@rhel03 ~]# mkdir /vdo1
[root@rhel03 ~]# mount /dev/mapper/vdo1 /vdo1
[root@rhel03 ~]# 

如果希望能永久挂载,需要写入/etc/fstab中,命令如下。

[root@rhel03 ~]# cat /etc/fstab | grep vdo
/dev/mapper/vdo1                          /vdo1                   xfs     defaults,netdev 0 0

  需要注意的是,这里一定要有_netdev选项,否则重启系统时,系统是启动不起来的。 查看vdo1的空间使用情况,命令如下。 

[root@rhel03 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         50.0G      4.0G     46.0G   8%           99%
[root@rhel03 ~]# 

这里自身就消耗了4G空间(Used那列),因为这里不存在文件,所以空间节省率为99% (Space saving%那列) 


测试VDO 

往 rhel03上传一个比较大的文件,这里上传的是一个windows7的镜像,命令如下。

[root@rhel03 ~]# du -sh cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso 
1002M	cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
[root@rhel03 ~]# 

这个文件的大小是1G。 

下面开始第一次把windos.iso拷贝到/vdol中并命名为file1,命令如下。 

[root@rhel03 ~]# cp cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso /vdo1/file1
[root@rhel03 ~]# 
[root@rhel03 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         50.0G      5.0G     45.0G  10%           84%
[root@rhel03 ~]# 

可以看到,现在消耗空间是5G。

下面开始第二次把windos.iso拷贝到/vdo1中并命名为file2,命令如下。 

[root@rhel03 ~]# cp cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso /vdo1/file2
[root@rhel03 ~]#  vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         50.0G      5.0G     45.0G  10%           83%
[root@rhel03 ~]# 

  因为是从同一个文件拷贝的,所以file2的内容和filel的内容是完全相同的,这里磁盘使用量仍然是5G。 

  因为实际写入了两个1G的文件,本来应该消耗2G的空间,但是这两个文件是相同的,所以实际消耗还是1G的空间,节省了2-1=1G的空间。

下面开始第三次把windos.iso铂贝到/vdo1中并命名为file3,命令如下。

[root@rhel03 ~]# cp cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso /vdo1/file3
[root@rhel03 ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         50.0G      5.0G     45.0G  10%           83%
[root@rhel03 ~]# du -sh /vdo1/
3.0G	/vdo1/
[root@rhel03 ~]# 

  因为是从同一个文件拷贝的,所以 file1、file2、file3三个文件的内容是完全相同的,这里磁盘使用量仍然是5G。

  因为实际写入了三个1G的文件,本来应该消耗3G的空间,但是这三个文件是相同的, 所以实际消耗还是1G的空间,节省了3-1=2G的空间。

要删除VDO设备,命令如下(删除设备之前要先取消挂载)

[root@rhel03 ~]# vdo remove -n vdo1 
Removing VDO vdo1
Stopping VDO vdo1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/225006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

定时器的使用及实现

在Java中,定时器(Timer)是一个用于执行任务的工具类。它可以安排任务在指定的时间点执行,或者按照指定的时间间隔周期性地执行。 1. Timer类 Timer类位于java.util包中,它提供了一种简单而便利的方式来安排以后的任务…

AR + 通信,虚实结合让工作协同从线上到「现场」

在数字经济无所不在的当下,千行百业都与数智化办公接轨并因其实现转型升级。关注【融云 RongCloud】,了解协同办公平台更多干货。 升级的背后,是利用技术把工作用更自然的方式连接起来,让整个工作流协同更顺、体验更好。 而其中…

Dijkstra(迪杰斯特拉)算法

Dijkstra(迪杰斯特拉)算法的思想是广度优先搜索(BFS) 贪心策略。 是从一个顶点到其余各顶点的最短路径算法,节点边是不各自不同的权重,但都必须是正数 如果是负数,则需要 Bellman-Ford 算法 如果想求任意两点之间的距离…

占用站点资源,无法正常登录?这个功能帮助解决

在企业里随着PDM用户的增加PDM管理员是否发现原本的站点已经不够用出现部分用户占用站点资源导致其他用户无法正常登录导致该问题无法解决,本篇介绍PDM自动下线的功能助力企业解决问题,更好的帮助企业完成PDM的正常使用 今天我给大家带来的就是SOLIDWOR…

外网的maven项目转移到内网操作的步骤

1、新起一个仓库路径testRep,idea 引用的maven里的setting.xml里仓库配置修改成刚才建的路径,目的把需要的jar全部下载到那个文件夹里 2、项目打压缩包,刚才仓库文件夹打压缩包,并复制到内网电脑 3、内网电脑idea引入项目 4、修改…

【重点】【矩阵】48. 旋转图像

题目 参考答案 法1&#xff1a;辅助矩阵 class Solution {public void rotate(int[][] matrix) {int n matrix.length;int[][] newMatrix new int[n][];for (int i 0;i < n; i) {newMatrix[i] matrix[i].clone();}for (int i 0; i < n; i) {for (int j 0; j <…

PD-1、BRAF和MEK联合抑制BRAFV600E结直肠癌癌症的2期试验

今天给同学们分享一篇文章“Combined PD-1, BRAF and MEK inhibition in BRAFV600E colorectal cancer: a phase 2 trial”&#xff0c;这篇文章发表在Nat Med期刊上&#xff0c;影响因子为82.9。 结果解读&#xff1a; MAPK抑制增强BRAF V600E CRC的免疫反应 作者之前在BRAF…

图的深度优先搜索(数据结构实训)

题目&#xff1a; 图的深度优先搜索 描述&#xff1a; 图的深度优先搜索类似于树的先根遍历&#xff0c;是树的先根遍历的推广。即从某个结点开始&#xff0c;先访问该结点&#xff0c;然后深度访问该结点的第一棵子树&#xff0c;依次为第二顶子树。如此进行下去&#xff0c;直…

彩色成像的基础和应用 原理 Principles(一)

下面我将不定期尽可能出一系列&#xff08;我觉的非常好&#xff09;翻译的文章来解释颜色这们学科。【下图为此次翻译的书籍封面】 Introduction: 颜色是一种与光的物理学&#xff0c;物质的化学&#xff0c;物体的几何特性以及人…

【【RGB LCD 彩条显示实验 ---1】】

RGB LCD 彩条显示实验 —1 TFT-LCD 的全称是 Thin Film Transistor-Liquid Crystal Display&#xff0c;即薄膜晶体管液晶显示屏&#xff0c;它显示的每个像素点都是由集成在液晶后面的薄膜晶体管独立驱动&#xff0c;因此 TFT-LCD 具有较高的响应速度以及较好的图像质量。 我…

基于JAVA+SpringBoot+微信小程序的宠物领养平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着人们生活水平的提…

Linux挂载配置本地yum源

1.vi /etc/yum.repos.d/redhat.repo 2. [baseos] namebaseos baseurlfile:///mnt/BaseOS #enabled:默认为1 enabled1 gpgcheck0 [appstream] nameappstream baseurlfile:///mnt/AppStream enabled1 gpgcheck0 3. mount /dev/sr0 /mnt/ 4.yum clean all 5.yum makecache

Java 简易版 UDP 多人聊天室

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

校园跑腿小程序源码系统 源码完全开源可二开,在线下单 附带完整的搭建教程

随着互联网的快速发展&#xff0c;人们的生活方式也在不断改变。特别是在校园内&#xff0c;由于学习、生活等各种原因&#xff0c;学生们需要处理许多琐碎的事情。而校园跑腿服务正是在这样的背景下应运而生&#xff0c;它能够为学生们提供便捷、快速、个性化的服务&#xff0…

LeetCode题:931下降路径最小和

目录 一、题目要求 二、解题思路 &#xff08;1&#xff09;状态表示 &#xff08;2&#xff09;状态转移方程 &#xff08;3&#xff09;初始化 &#xff08;4&#xff09;填表顺序 &#xff08;5&#xff09;返回值 三、代码 一、题目要求 931. 下降路径最小和 给你…

统信UOS_麒麟KYLINOS上使用WeekToDo

原文链接&#xff1a;统信UOS/麒麟KYLINOS上使用WeekToDo hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在统信UOS/麒麟KYLINOS上使用WeekToDo的介绍。在忙碌的工作和生活中&#xff0c;有效地管理时间和任务是非常重要的。WeekToDo作为一个免费和开源的每周计划器…

python实现pdf转word、word转pdf

我的博客 文章首发于公众号&#xff1a;小肖学数据分析 Python自动化办公通常对常用的办公软件文档格式进行操作&#xff0c;比如Word和PDF。 很多软件都需要付费&#xff0c;作为程序员&#xff0c;怎么可能付费。 下面是一个简单示例&#xff0c;如何在Python中将Word文档…

Java网络编程——非阻塞通信

对于用ServerSocket以及Socket编写的服务器程序和客户程序&#xff0c;它们在运行过程中常常会阻塞。例如当一个线程执行ServerSocket的accept()方法时&#xff0c;假如没有客户连接&#xff0c;该线程就会一直等到有了客户连接才从accept()方法返回。再例如当线程执行Socket的…

跨境电商做自己养号做测评,收货地址怎么解决?

近期有很多朋友问我&#xff0c;自己在做自媒体的时候&#xff0c;物流方面的问题该怎么解决&#xff1f;其实这个问题很简单&#xff0c;下面我就给大家分享一些解决物流问题的方法。 首先&#xff0c;如果你是自己发货&#xff0c;可以选择直接找物流商购买单号或者发空包。这…

基于ssm人事管理信息系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本人事管理信息系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…