阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Centos8中安装并配置VDO来优化存储空间

343次阅读
没有评论

共计 4883 个字符,预计需要花费 13 分钟才能阅读完成。

导读 虚拟数据优化器(VDO)是一种块虚拟化技术,可提供透明的数据重复删除功能。通过消除冗余的数据块,VDO 可以大大减少实际使用的磁盘容量。

VDO 由两个内核模块和两个命令组成:

由下面两个内核模块组成:

  • kvdo – 该模块加载到设备管理器层,提供用于重复数据删除的块存储卷。
  • uds – 该模块负责与 VDO 磁盘上的通用的重复数据删除索引进行通信。

包括两个命令行工具:

  • vdo – 用于创建,删除,启动和停止 VDO 卷,以及执行其他配置操作。
  • vdostats – 用于报告 VDO 卷的各个方面,包括有效的减少和物理卷的利用率。
系统环境

Centos8

安装 VDO

下面命令安装 vdo 和相关依赖,安装完成之后重启系统:

[root@localhost ~]# yum -y install vdo
[root@localhost ~]# reboot

Centos8 中安装并配置 VDO 来优化存储空间

创建一个 VDO 设备

确保有一个空余磁盘或分区可供 VDO 使用。尽管可以在 LVM 逻辑卷上面创建 VDO 卷,但是重新引导系统时会出现引导顺序问题。所以再裸盘上面创建 vdo 卷之后在它之上创建 LVM 逻辑卷。
Centos8 中安装并配置 VDO 来优化存储空间
下面使用一块 20GB 的磁盘,/dev/sda 做 vdo 卷
下面创建 vdo 卷:

[root@localhost ~]# vdo create --name=vdolvm --device /dev/sda --vdoLogicalSize 60G --writePolicy async 
Creating VDO vdolvm
      The VDO volume can address 16 GB in 8 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 vdolvm
Starting compression on VDO vdolvm
VDO instance 0 volume is ready at /dev/mapper/vdolvm

Centos8 中安装并配置 VDO 来优化存储空间
下面分解一下命令,看看所使用的选项:

  • –device – 指定在哪个硬盘上创建 vdo 卷
  • –vdoLogicalSize – 这里我们指定了容量大小为 60G,比我们实际磁盘 20G 大了许多。假设我们将从重复数据删除中至少得到 3:1 的减少,对于大多数的数据,这是相当保守的,但如果你的数据没有很多重复的,那么比率应该是不同的。日志文件和其他纯文本文件通常可以很好地进行重复数据删除,可能会得到 10:1 甚至更高的重复数据删除率。但是二进制文件,如视频、音频或压缩包,将远远低于 3:1,甚至在某些情况下 1:1。这种情况下不建议使用 vdo 卷。
  • –writePolicy – vdo 有三种写策略:sync:只有在数据写入物理设备后,才会确认对 VDO 卷的写入。async:在数据写入缓存后被确认。如果在设备故障或掉电之前没有刷新缓存,可能会导致数据丢失。auto:在这种默认模式下,VDO 将检查存储设备并确定它是否支持刷新。如果是这样,VDO 将使用异步模式。如果没有,它将使用同步模式。
查看新建 VDO 卷相关的信息

正如我们在上一步的输出中看到的,VDO 创建了一个名为 /dev/mapper/vdolvm 的新 dm 设备。当我们创建 lvm 卷组时,这就是我们将要使用的设备。

[root@localhost ~]# ll /dev/mapper/vdolvm 
lrwxrwxrwx 1 root root 7 Mar  4 13:31 /dev/mapper/vdolvm -> ../dm-2

Centos8 中安装并配置 VDO 来优化存储空间
让我们看看使用 vdostats 可以获得有关 vdo 卷的什么样的信息:

[root@localhost ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdolvm       20.0G      4.0G     16.0G  20%           N/A

Centos8 中安装并配置 VDO 来优化存储空间
由于我们尚未将任何数据写入该卷,因此 Space saving% 字段为N/A。稍后我们将写一些数据时,在此处看到更多有用的信息。

可以看到上图中,我们还没有写任何数据,但是已经有 4GB,20%的空间正在使用中了!这是因为“通用重复数据删除索引”已被写入磁盘。这基本上是一个数据库,用于记录 slab 指纹及其位置。这就是使重复数据删除成为可能的原因。

将 VDO 卷作为普通磁盘设备进行设置

现在我们已经创建了 VDO 设备,我们可以对其进行分区并格式化,或者在这个 vod 卷上面创建 lvm 逻辑卷。下面我们创建逻辑卷:

# 创建物理卷
[root@localhost ~]# pvcreate /dev/mapper/vdolvm 
  Physical volume "/dev/mapper/vdolvm" successfully created.
# 创建卷组 vdo_vg
[root@localhost ~]# vgcreate vdo_vg /dev/mapper/vdolvm 
  Volume group "vdo_vg" successfully created
# 查看 vdo_vg 卷组的信息
[root@localhost ~]# vgdisplay vdo_vg 
  --- Volume group ---
  VG Name               vdo_vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <60.00 GiB
  PE Size               4.00 MiB
  Total PE              15359
  Alloc PE / Size       0 / 0   
  Free  PE / Size       15359 / <60.00 GiB
  VG UUID               qfPiH6-eMCU-Z6kr-eeCu-jd0J-8lmf-49daZX

从上面可以看到,lvm 认为我们的基础磁盘为 120GB,尽管我们知道它只有 40GB。由于 LVM 不知道 VDO 后端磁盘的大小。
Centos8 中安装并配置 VDO 来优化存储空间
现在,让我们创建几个逻辑卷吧:

[root@localhost ~]# lvcreate -n vdo_lv01 -L 15G vdo_vg 
[root@localhost ~]# lvcreate -L 15G -n vdo_lv02 vdo_vg
[root@localhost ~]# lvcreate -L 15G -n vdo_lv03 vdo_vg 
# 查看创建好的逻辑卷
[root@localhost ~]# lvs -o +devices

Centos8 中安装并配置 VDO 来优化存储空间

创建挂载点并挂载文件系统

通常,创建文件系统后,它将在设备上运行 Trim 操作。使用 VDO 时,这不是理想的选择,因为磁盘容量是按需分配的。因此,我们要告诉 mkfs 在文件系统创建过程中不要丢弃块。对于 XFS,请使用 -K 选项。对于 EXT4,请使用-E nodiscard。下面使用了一个 for 循环,将三个逻辑卷格式化为 XFS 文件系统:

[root@localhost ~]# for i in `seq 1 3`; do mkfs.xfs -K /dev/vdo_vg/vdo_lv0$i ; done
meta-data=/dev/vdo_vg/vdo_lv01   isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
meta-data=/dev/vdo_vg/vdo_lv02   isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
meta-data=/dev/vdo_vg/vdo_lv03   isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Centos8 中安装并配置 VDO 来优化存储空间
当我们将新文件系统挂载到挂载点时,我们要告诉 XFS 放弃块,因为这将大大加快文件删除的速度。

[root@localhost ~]# mkdir -p /data/{01..03}
[root@localhost ~]# for i in `seq 1 3`; do mount -o discard /dev/vdo_vg/vdo_lv0$i /data/0$i; done

Centos8 中安装并配置 VDO 来优化存储空间
现在,我们向设备写入了少量数据,我们可以再次检查 VDO 卷以查看情况是否已更改。

[root@localhost ~]# vdostats --hu
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdolvm       20.0G      4.0G     16.0G  20%           86%

Centos8 中安装并配置 VDO 来优化存储空间

设置为开机启动

下面将三个逻辑卷设置为开机启动,需要在 fstab 文件中添加 x-systemd.device-timeout=0x-systemd.requires=vdo.service

使用 blkid 查看这三个逻辑卷的 UUID。
Centos8 中安装并配置 VDO 来优化存储空间
使用上面获取到的 UUID,添加在 /etc/fstab 文件中:

[root@localhost systemd]# vim /etc/fstab 

UUID="bd2c1c61-4656-4065-b5a0-3ca53ef0f949" /data/01  xfs  defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
UUID="1e53579b-f1da-4f77-80e6-d61a40515525" /data/02  xfs  defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
UUID="d41bf7e2-bf75-4db7-b323-a923375f6a6e" /data/03  xfs  defaults,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0
总结

虚拟数据优化器(VDO)是一种块虚拟化技术,可提供透明的数据重复删除功能。通过消除冗余的数据块,VDO 可以大大减少实际使用的磁盘容量。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计4883字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7988203
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...