虚拟数据优化器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 vdo1The 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习part40collections工具类

162-集合框架-Collections工具类的使用_哔哩哔哩_bilibili 1.collections工具类 感觉类似c的algorithm包,提供了很多集合的操作方法 2.排序 3.查找 4.复制替换 5.添加,同步

Dockerfile详解#如何编写自己的Dockerfile

文章目录 前言编写规则指令详解FROM:基础镜像LABEL:镜像描述信息MAINTAINER:添加作者信息COPY:从宿主机复制文件到镜像中ADD:从宿主机复制文件到镜像中WORKDIR:设置工作目录 前言 Dockerfile是编写docker镜…

Vue 静态渲染 v-pre

v-pre 指令&#xff1a;用于阻止 Vue 解析这个标签&#xff0c;直接渲染到页面中。 语法格式&#xff1a; <div v-pre> {{ 数据 }} </div> 基础使用&#xff1a; <template><h3>静态渲染 v-pre</h3><p v-pre>静态渲染&#xff1a;{{ n…

C++刷题 -- 链表

C刷题 – 链表 文章目录 C刷题 -- 链表1.删除链表的倒数第 N 个结点2.链表相交3.环形链表 1.删除链表的倒数第 N 个结点 https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ 快慢指针的应用 fast指针先移动N步&#xff0c;slow依然指向head&#xff1b;然后fa…

短视频文案生成器有哪些?【2024新版短视频文案生成器】

在当今数字化社交时代&#xff0c;短视频已经成为人们生活中不可或缺的一部分。然而&#xff0c;想要制作引人注目、独具创意的短视频&#xff0c;光有精彩的画面和音效可能不够&#xff0c;一个吸引眼球的短视频文案也是至关重要的。本文将专心分享短视频文案生成器的种类&…

OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件

你好&#xff0c;我是 Kagol。 非常高兴跟大家宣布&#xff0c;2023年11月30日&#xff0c;OpenTiny Vue 发布了 v3.12.0 &#x1f389;。 OpenTiny 每次大版本发布&#xff0c;都会给大家带来一些实用的新特性&#xff0c;10.24 我们发布了 v3.11.0 版本&#xff0c;增加了富…

企业级自动化测试理论(目标、框架要素、深入理解测试金字塔)

1. 自动化测试的目标 自动化测试的目标是加快研发过程&#xff0c;而不是试图省钱。 迅速检测出新版本中不稳定的变更。 迅速暴露程序回归的错误。 迅速报告问题&#xff0c; 因为这会使程序错误修改更容易。 为了达到目标&#xff0c;所需要的测试能力要求 测试技术&…

YITH WooCommerce Questions and Answers电商网站问答功能高级版

点击阅读YITH WooCommerce Questions and Answers电商网站问答功能高级版原文 YITH WooCommerce Questions and Answers电商网站问答高级版的作用在您的产品页面中构建强大的问答部分&#xff0c;以便您的客户可以找到问题的答案并毫无疑问地购买。 您如何从中受益&#xff1…

LabVIEW远程监控

LabVIEW远程监控 远程监控的应用场景 从办公室远程监控工厂车间的测试设备。 在世界另一端的偏远地区监控客户现场的发电设备。 从公司远程监控外场的产品。 技术更新与方法 自2018年以来&#xff0c;NI对基于Web的应用程序支持大幅增长。一些最初的方法&#xff08;如Lab…

3.镜像加速器

目录 1 阿里云 2 网易云 从网络上拉取镜像的时候使用默认的源可能会慢&#xff0c;用国内的源会快一些 1 阿里云 访问 阿里云-计算&#xff0c;为了无法计算的价值 然后登录&#xff0c;登录后搜索 容器镜像服务 点击容器镜像服务 点击管理控制台 点击 镜像工具->镜像…

【web安全】文件包含漏洞详细整理

前言 菜某的笔记总结&#xff0c;如有错误请指正。 本文用的是PHP语言作为案例 文件包含漏洞的概念 开发者使用include&#xff08;&#xff09;等函数&#xff0c;可以把别的文件中的代码引入当前文件中执行&#xff0c;而又没有对用户输入的内容进行充分的过滤&#xff0…

5G入门到精通 - 5G的十大关键技术

文章目录 一、网络切片二、自组织网络三、D2D技术四、低时延技术五、MIMO技术六、毫米波七、内容分发网络八、M2M技术九、频谱共享十、信息中心网络 一、网络切片 5G中的网络切片是一项关键技术&#xff0c;它允许将整个5G网络分割成多个独立的虚拟网络&#xff0c;每个虚拟网络…

CodeBlocks添加头文件,解决fatal error: ui.h No such file or directory

问题描述 在使用codeblocks工具进行LVGL仿真过程中报错&#xff0c;找不到头文件 原因分析&#xff1a; 没有将头文件加入编辑器搜索的目录中&#xff0c;编译时找不到头文件。 解决方案&#xff1a; 将要包含的头文件的目录加进去就可以了

BCI-Two-streams hypothesis(双流假说)

双流假说 双流假设(Two-stream hypothesis)是关于视觉和听觉神经处理的模型。该假设最初由大卫米尔纳&#xff08;David Milner&#xff09;和梅尔文古德尔&#xff08;Melvyn A. Goodale&#xff09;于1992年的一篇论文中进行了初步描述&#xff0c;认为人类拥有两个独立的视觉…

【爬取音乐,并将音乐信息储存到数据库中】

爬取音乐,并将音乐信息储存到数据库中 确定音乐网站的url并分析网站分析二级页面创建数据库使用Xpath解析&#xff0c;进行多层爬取保存信息完整代码结果 确定音乐网站的url并分析网站 分析二级页面 创建数据库 # 创建一个链接对象 conn pymysql.connect(hostmaster, userroo…

虚拟网络技术:bond技术

网卡bond也称为网卡捆绑&#xff0c;就是将两个或者更多的物理网卡绑定成一个虚拟网卡。 bond的作用&#xff1a; 1.提高网卡的吞吐量 2.增加网络的高可用&#xff0c;实现负载均衡。 一、bond简介 bond技术即bonding&#xff0c;能将多块物理网卡绑定到一块虚拟网卡上&…

六、C语言数组

1. 数组的概念 数组是⼀组相同类型元素的集合&#xff1b;从这个概念中我们就可以发现2个有价值的信息&#xff1a; 数组中存放的是1个或者多个数据&#xff0c;但是数组元素个数不能为0。数组中存放的多个数据&#xff0c;类型是相同的。 数组分为⼀维数组和多维数组&#xf…

Prometheus 发现机制和告警

1.服务发现 Prometheus Server的数据抓取工作于Pull模型&#xff0c;因而&#xff0c;它必需要事先知道各Target的位置&#xff0c;然后才能从相应的Exporter或Instrumentation中抓取数据。在不同的场景下&#xff0c;需要结合不同的机制来实现对应的数据抓取目的。 对于小型的…

企业级 接口自动化测试框架:Pytest+Allure+Excel

1. Allure 简介 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不仅以 Web 的方式展示了简介的测试结果&#xff0c;而且允许参与开发过程的每个人可以从日常执行的测试中&#xff0c;最大限度地提取有用信息。 Allure 是由 Java 语言开发…

【学习记录】从0开始的Linux学习之旅——字符型设备驱动及应用

一、概述 Linux操作系统通常是基于Linux内核&#xff0c;并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程&#xff0c;具有强大的网络功能和良好的兼容性。基于前面应用与驱动的开发学习&#xff0c;本文主要讲述如何在linux系统上把应用与驱动…