在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 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@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%那列)。

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

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

相关文章

cpu 300% 爆满 内存占用不高 排查

top查询 cpu最高的PID ps -ef | grep PID 查看具体哪一个jar服务 jstack -l PID > ./jstack.log 下载/打印进程的线程栈信息 可以加信息简单分析 或进一步 查看堆内存使用情况 jmap -heap Java进程id jstack.log 信息示例 Full thread dump Java HotSpot(TM) 64-Bit Se…

横向扩展统一存储与备份服务器功能

Infortrend 更新了GS,GSe,GSe Pro统一存储系列的备份服务器功能。该功能降低数据备份成本,并提供灵活的备份策略。通过备份服务器功能,用户可以通过多种途径实现数据备份,包括公有云(兼容S3)、文…

C/C++,树算法——二叉树的插入(Insert)算法之源程序

1 文本格式 #include<iostream> using namespace std; // A BTree node class BTreeNode { int* keys; // An array of keys int t; // Minimum degree (defines the range for number of keys) BTreeNode** C; // An array of child pointers int …

dell服务器重启后显示器黑屏

1.硬件层面&#xff1a;观察主机的指示灯 &#xff08;1&#xff09;指示灯偏黄&#xff0c;硬件存在问题&#xff08;内存条有静电&#xff0c;拔出后用橡皮擦擦拭&#xff1b;或GPU松动&#xff09; a.电源指示灯黄&#xff0c;闪烁三下再闪烁一下&#xff0c;扣下主板上的纽…

Python Appium Selenium 查杀进程的实用方法

一、前置说明 在自动化过程中&#xff0c;经常需要在命令行中执行一些操作&#xff0c;比如启动应用、查杀应用等&#xff0c;因此可以封装成一个CommandExecutor来专门处理这些事情。 二、操作步骤 # cmd_util.pyimport logging import os import platform import shutil i…

Java编程中通用的正则表达式(二)

正则表达式&#xff0c;又称正则式、规则表达式、正规表达式、正则模式或简称正则&#xff0c;是一种用来匹配字符串的工具。它是一种字符串模式的表示方法&#xff0c;可以用来检索、替换和验证文本。正则表达式是一个字符串&#xff0c;它描述了一些字符的组合&#xff0c;这…

dockers安装rabbitmq

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQhttps://www.rabbitmq.com/ Downloading and Installing RabbitMQ — RabbitMQ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 之后参照&#xff1a;dock…

高低压配电智能监控系统

高低压配电智能监控系统是一种综合运用物联网、云计算、大数据和人工智能等技术的智能化监控系统&#xff0c;主要用于对高低压配电设备进行实时监测、数据采集、故障预警和远程管理。 该系统通过安装智能传感器、智能设备、网络通讯技术等手段&#xff0c;依托电易云-智慧电力…

解决“由于找不到msvcr110.dll无法继续执行”的错误问题,一键修复msvcr110.dll丢失

当你遇到“由于找不到msvcr110.dll无法继续执行”的错误时&#xff0c;通常是因为你的电脑缺少相关的msvcr110.dll文件。如果你的电脑中缺失了msvcr110.dll文件丢失那么可以根据下面的方法尝试解决msvcr110.dll丢失的问题。 一.解决msvcr110.dll丢失的方法 使用dll修复工具 D…

学习笔记9——JUC三种量级的锁机制

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/197325.html 多线程访问共享资源冲突 临界区&#xff1a;一段代码块存在对共享资源的多线程读写操作&#xff0c;称这段代码块为临界区 竞态条件&#xff1a;多个线程在临界…

yolo目标检测+目标跟踪+车辆计数+车辆分割+车道线变更检测+速度估计

这个项目使用YOLO进行车辆检测&#xff0c;使用SORT&#xff08;简单在线实时跟踪器&#xff09;进行车辆跟踪。该项目实现了以下任务&#xff1a; 车辆计数车道分割车道变更检测速度估计将所有这些详细信息转储到CSV文件中 车辆计数是指在道路上安装相应设备&#xff0c;通过…

windows下 Tomcat启动黑框隐藏

进入到 tomcat/bin 目录下&#xff0c;找到此文件 setclasspath.bat &#xff0c;右键文本打开 找到此属性 &#xff1a; set _RUNJAVA"%JRE_HOME%\bin\java.exe"修改成以下属性&#xff0c;保存文件&#xff0c;重启启动tomcat会发现黑框不默认弹出了&#xff1a; …

使用hutool工具生成非对称加密公私密钥以及使用案例

1.导入hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version></dependency>2.直接复制代码 package com.common.utils;import cn.hutool.core.codec.Base64; i…

仅需30秒完美复刻任何人的声音 - 最强AI音频11Labs

我的用词一直都挺克制的&#xff0c;基本不会用到“最强”这个字眼。 但是这一次的这个AI应用&#xff0c;是我认为在TTS&#xff08;文字转音频&#xff09;这个领域&#xff0c;当之无愧的“最强”。 ElevenLabs&#xff0c;简称11Labs。 仅需30秒到5分钟左右的极少的数据集…

机器学习-分类问题

前言 《机器学习-回归问题》知道了回归问题的处理方式,分类问题才是机器学习的重点.从数据角度讲,回归问题可以转换为分类问题的微分 逻辑回归 逻辑回归&#xff08;Logistics Regression&#xff09;,逻辑回归虽然带有回归字样&#xff0c;但是逻辑回归属于分类算法。但只可…

极大提升GPT-4等模型推理效率,微软、清华开源全新框架

随着用户需求的增多&#xff0c;GPT-4、Claude等模型在文本生成、理解、总结等方面的能力越来越优秀。但推理的效率并不高&#xff0c;因为&#xff0c;多数主流模型采用的是“顺序生成词”方法&#xff0c;会导致GPU利用率很低并带来高延迟。 为了解决这一难题&#xff0c;清…

基于jsp+servlet的图书管理系统

基于jspservlet的图书管理系统演示地址为 图书馆后台管理系统 用户名:mr ,密码:123 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还&#xff0c; 因此系统最核心的功能便是实现图书的借阅和归还。此外&#xff0c;还需要提供图书…

Stable Diffusion XL on diffusers

Stable Diffusion XL on diffusers 翻译自&#xff1a;https://huggingface.co/docs/diffusers/using-diffusers/sdxl v0.24.0 非逐字翻译 Stable Diffusion XL (SDXL) 是一个强大的图像生成模型&#xff0c;其在上一代 Stable Diffusion 的基础上主要做了如下优化&#xff1a;…

生产上线需要注意的安全漏洞

一、关闭swagger 1、关闭swagger v3 # 需同时设置auto-startupfalse&#xff0c;否则/v3/api-docs等接口仍能继续访问 springfox:documentation:enabled: falseauto-startup: falseswagger-ui:enabled: false 2、关闭swagger v2 # 只要不是true就不启用 swagger:enable: fa…

代立冬:基于Apache Doris+SeaTunnel 实现多源实时数据仓库解决方案探索实践

大家好&#xff0c;我是白鲸开源的联合创始人代立冬&#xff0c;同时担任 Apache DolphinScheduler 的 PMC chair 和 SeaTunnel 的 PMC。作为 Apache Foundation 的成员和孵化器导师&#xff0c;我积极参与推动多个开源项目的发展&#xff0c;帮助它们通过孵化器成长为 Apache …