在linux上如何运用虚拟数据优化器VDO

本章主要介绍虚拟化数据优化器。
  • 什么是虚拟数据优化器VDO
  • 创建VDO设备以节约硬盘空间

16.1 了解什么是VDO

VDO全称是Virtual Data Optimize(虚拟数据优化),主要是为了节省硬盘空间。
现在假设有两个文件file1和 file2,大小都是10G。file1和 file2中包含了8G的相同数据,
如图16-1中的灰色部分。这个相同数据在硬盘中存储了两份,所以这两个文件占用的硬盘空
间是20G。
如果采用了VDO,效果如图16-2所示。
file1和 file2大小都是10G,两个文件中都有8G的相同数据。那么,这个相同数据在硬盘
中只存储一份,让filel和 file2共同使用。所以,最终在硬盘上占用的空间是12G,这样一个
20G大小的硬盘,完全可以存储大于20G的文件,主要看这些文件中到底有多少相同数据。
所以,VDO实现的效果是,多个文件中有相同数据,这个相同数据只存储一份,从而实现
节省硬盘空间的目的。
16.2 配置VDO
首先要安装VDO相关软件包(关于软件包的管理在第23章和第24章中有详细讲解),步骤
如下。
步骤①:挂载光盘,命令如下。
[root@pp ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@pp ~]# 
这里准备把光盘作为yum 源。
步骤②:编写repo文件,命令如下。
[root@pp ~]# 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
[root@pp ~]# 
步骤③:安装VDO,命令如下。
[root@pp ~]# yum -y install vdo kmod-kvdo
查看 VDO设备,命令如下。
[root@pp ~]# vdo list 

[root@pp ~]# 
没有任何输出,说明现在还没有任何VDO设备。
因为相同数据只存储一份,大大地节省了存储空间,所以本来20G的磁盘空间现在存储
30G、40G、50G的数据是完全有可能的。
下面创建一个名称为vdo1、底层设备为/dev/sdc的VDO设备,逻辑大小为50G,命令如
下。
[root@pp ~]# vdo create --name vdo1 --device /dev/nvme0n2 --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@pp ~]# 
上面提示的一堆信息不用管,最终能看到的是vdo1已经创建好了,可以通
过/dev/mapper/vdo1来使用。 再次查看有多少VDO设备,命令如下。
[root@pp ~]# vdo list
vdo1
[root@pp ~]# 
格式化这个VDO设备,命令如下。
[root@pp ~]# 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@pp ~]# 
这里-K(大写)的意思类似于Windows中的快速格式化。
把这个 VDO设备挂载到/vdo1目录上,命令如下。
[root@pp ~]# mkdir /vdo1
[root@pp ~]# mount /dev/mapper/vdo1 /vdo1/
[root@pp ~]# 
如果希望能永久挂载,需要写入/etc/fstab中,命令如下。
[root@pp ~]# grep vdo /etc/fstab 
/dev/mapper/vdo1 /vdo1   xfs  defaults,_netdev 0 0
[root@pp ~]# 
需要注意的是,这里一定要有_netdev选项,否则重启系统时,系统是启动不起来的。
查看vdo1的空间使用情况,命令如下。
[root@pp ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1         50.0G      4.0G     46.0G   8%           99%
[root@pp ~]# 
这里自身就消耗了4G空间(Used那列),因为这里不存在文件,所以空间节省率为99%
(Space saving%那列)。

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

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

相关文章

docker安装node及使用

文章目录 一、安装node二、创建node容器三、进入创建的容器如有启发,可点赞收藏哟~ 一、安装node 查看可用版本 docker search node安装最新版本 docker install node:latest二、创建node容器 docker run -itd --name node-test node–name node-test&#xff1…

HarmonyOS4.0从零开始的开发教程05 应用程序入口—UIAbility的使用

HarmonyOS(三)应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,…

视觉资料记录

1. 江南才尽,年少无知!_RK3399移植,(02)Cartographer源码无死角解析-免费,(01)ORB-SLAM2源码无死角解析-免费-CSDN博客江南才尽,年少无知!擅长RK3399移植,(02)Cartographer源码无死角解析-免费,(01)ORB-SLAM2源码无死角解析-免费,…

jira创建用例,与任务关联

项目用的jira,但之前的用例放在禅道上,或者归档于svn,都不是很好用,所以研究了下jira的用法 1、下载插件: synapseRT - Test management and QA in JIRA 完成后在tab会多出一个test 2、常用的功能 1、建立用例&#…

node.js和浏览器之间的区别

node.js是什么 Node.js是一种基于Chrome V8引擎的JavaScript运行环境,可以在服务器端运行JavaScript代码 Node.js 在浏览器之外运行 V8 JavaScript 引擎。 这使得 Node.js 非常高效。 浏览器如何运行js代码 nodejs运行环境 在浏览器中,大部分时间你所…

力扣题:字符的统计-12.6

力扣题-12.6 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:696. 计数二进制子串 解题思想:先统计连续的0和连续的1的个数,然后进行相加即可(想不到一点) class Solution(object):def countBinaryS…

利用管道、信号量、信号、共享内存和消息队列进行多进程通信

一.管道(分为命名管道和匿名管道) 管道的特点: ①无论是命名管道还是匿名管道,写入管道的数据都存放在内存之中。 ②管道是一种半双工的通信方式(半双工是指终端A能发信号给终端B,终端B也能发信号给终端…

keil添加了头文件仍然报找不到头文件的原因

如图,我在user分组新建Item,可是keil提示头文件不存在,所有的一切设置都是对的,但就是找不到头文件,找了很久,最后才发现是user分组和文件系统中的文件夹不一致的原因。 如图,在分组的文件系统的…

入门指南:使用Prometheus监控Linux服务器

Prometheus介绍 Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍: Prometheus的架构由四个主要组件组成: Prometheus Server(Prom…

Win10 安装.NET Framework 3.5 报错0x80240438

环境: Win10专业版 NET Framework 3.5 问题描述: Win10 安装.NET Framework 3.5 报错0x80240438 解决方案: 1.检查自动更新服务是否未开启,开启自动更新失败,用工具开启自动更新,重启电脑(未解决&am…

JVM虚拟机:如何查看JVM初始和最终的参数?

本文重点 在前面的课程中,我们学习了如何查看当前程序所处于的xx参数,本文再介绍一种如何参看JVM的xx参数? 查看JVM的所有初始化参数 方式一:java -XX:PrintFlagsInitial 方式二:java -XX:PrintFlagsInitial -versio…

Java基础50题:14. 使用方法求最大值(2种方法)

概述 使用方法求最大值。 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值函数max3。 要求: 在max3这个方法中,调用max2函数,来实现3个数的最大值计算。 方法一 【代码】 public class P14 {public static int max…

AI烟火识别智能视频分析系统解决方案

引言 随着城市化进程的加快和高科技的迅猛发展,传统的消防系统逐渐显露出局限性。在这种背景下,AI烟火识别智慧消防解决方案应运而生,它融合了最新的AI技术,旨在提高火灾的预防、检测、应对和控制能力,保护人民生命财…

Halcon threshold_sub_pix (Operator)

read_image(Image,fabrik) threshold_sub_pix(Image,Border,35) dev_display(Border)Image是输入的原始图像,Threshold是设定的阈值,Width和Height是像素值计算区域的大小,ThresholdedRegion是经过分割后得到的二值化结果。 在对图像进行二值…

“line“

服务端 package work; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.util.ArrayList; import java.util.List; public class UDPServer { private static final int PORT 9876; private static List<ClientInfo> clients …

小航助学2023年6月GESP_Scratch一级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号 单选题3.00分 删除编辑附件图文 答案:A 第1题以下不属于计算机输出设备的有&#xff08; &#xff09;。 A、麦克风B、音箱C、打印机D、显示器 答案解析&#xff1a; 单选…

机器学习之全面了解模型验证

本专栏我们将和大家一起探讨机器学习与数据科学的主题&#xff0c;解释相关背景知识&#xff0c;并就一些来自社区的问题进行解答。 本文主要介绍模型验证及其相关主题&#xff0c;如过拟合和超参数调优。我将概括介绍该主题及其重要性&#xff0c;然后探讨以下四个问题&#…

HarmonyOS系统架构及项目结构浅析

语雀知识库地址&#xff1a;语雀HarmonyOS知识库 飞书知识库地址&#xff1a;飞书HarmonyOS知识库 基本概念 UI框架 HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xf…

Vulnerability: File Upload(low)--MYSQL注入

选择难度&#xff1a; 1.打开DVWA&#xff0c;并登录账户 2.选择模式&#xff0c;这里我们选择 文件上载的最低级模式&#xff08;low&#xff09; 在vsc里面写个一句话木马 这里我们注意&#xff0c;因为这个是木马很容易被查杀&#xff0c;从而无法使用&#xff0c;所以我们…

uni-app 微信小程序之好看的ui登录页面(三)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面&#xff08;一&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;二&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;三&#xff09; uni-app 微信小程…