vdo虚拟数据优化器
数据 优化 虚拟
2023-09-14 09:15:55 时间
vdo虚拟数据优化器
vdo
和百度网盘的秒传
技术很像.
如果校验
发现这个文件已经存在
,就创建一个链接
,而不是真的复制一份,实现重复数据不重复写入
.
安装kmod-kvdo和vdo
# 安装kmod-kvdo包和vdo包
yum install vdo kmod-kvdo -y
创建vdo
让磁盘以虚假的形式变大
准备一块磁盘
# 查看当前磁盘大小
fdisk -lu /dev/sda
## 该磁盘大小是20G
Disk /dev/sda:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
创建一个vdo卷
# 创建一个vdo卷,指定逻辑大小使1000G
vdo create --name vdo1 --device /dev/sda --vdoLogicalSize 1000
G
## 在/dev/mapper/目录下已经创建了一个vdo1目录(dm设备,逻辑卷)
[rocky1 root ~]# ls /dev/mapper/vdo1 -l
lrwxrwxrwx. 1 root root 7 10月 30 14:52 /dev/mapper/vdo1 -> ../dm-2
# 格式化这个逻辑卷
mkfs.xfs /dev/mapper/vdo1
# 查看磁盘大小
[rocky1 root ~]# fdisk -lu /dev/mapper/vdo1
Disk /dev/mapper/vdo1:1000 GiB,1073741824000 字节,262144000 个扇区
单元:扇区 / 1 * 4096 = 4096 字节
扇区大小(逻辑/物理):4096 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
## vdo卷是100G
挂载VDO卷
# 创建挂载点
mkdit /vdo1
# 挂载vdo卷
mount /dev/mapper/vdo1 /vdo1/
# 查看挂载点
[rocky1 root ~]# df -Th /vdo1
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vdo1 xfs 1000G 7.1G 993G 1% /vdo1
持久挂载vdo卷
vdo
写fstab
一定要加参数_netdev 1 2
否则重启后
会进入紧急模式
,系统起不来
# 编辑/etc/fstab
vim /etc/fstab
# 写入挂载配置,需要加_netdev,防止在系统就绪之前开始挂载文件系统
/dev/mapper/vdo1 /vdo1 xfs _netdev 1 2
## 第五列dump选项,是选择是否备份,1是开启0是关闭
## 第六列fsck选项,fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若文件系统无需在启动时扫描检查,则设置该字段为0。
查看vdo真正的大小
# 显示vdo真实大小
[rocky1 root ~]# vdostats
Device 1K-blocks Used Available Use% Space saving%
/dev/mapper/vdo1 20971520 4207216 16764304 20% 99%
# 以人类易读的方式来显示vdo真实大小
[rocky1 root ~]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 4.0G 16.0G 20% 99%
vdo重复文件测试
# 在/vdo1中存放一个iso文件
D:\Downloads\iso> scp .\Rocky-8.4-x86_64-minimal.iso rocky1:/vdo1
Rocky-8.4-x86_64-minimal.iso 100% 1889MB 32.7MB/s 00:57
# 查看/vdo1目录下文件
[rocky1 root /vdo1]# ls /vdo1/
Rocky-8.4-x86_64-minimal.iso
# df -Th查看/vdo1空间占用情况
[rocky1 root /vdo1]# df -Th /dev/mapper/vdo1
/dev/mapper/vdo1 xfs 1000G 8.9G 991G 1% /vdo1
# 查看vdo真实磁盘占用情况
[rocky1 root /vdo1]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 5.8G 14.2G 28% 25%
# 将这个iso文件复制一份
[rocky1 root /vdo1]# cp Rocky-8.4-x86_64-minimal.iso Rocky-8.4-x86_64-minimal1.iso
[rocky1 root /vdo1]# ls /vdo1/
Rocky-8.4-x86_64-minimal1.iso Rocky-8.4-x86_64-minimal.iso
# 再次查看vdo真实磁盘占用情况,实际占用空间没有变化
[rocky1 root /vdo1]# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 20.0G 5.8G 14.2G 28% 58%
## 但是df -Th查看到的空间占用有变化
[rocky1 root /vdo1]# df -Th /dev/mapper/vdo1
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vdo1 xfs 1000G 11G 989G 2% /vdo1
网盘的秒传技术就是这么实现的,其实底层根本没多少物理磁盘.
vdo的常用查看命令
列出所有vdo
# 列出所有vdo
vdo list
查看vdo的状态
vdo status vdo名称
# 查询是否压缩
vdo status |grep -i compress
# 查询是否开启重复文件删除
vdo status |grep -i deduplication
删除vdo
vdo remove --name vdo名称
相关文章
- MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"
- Android数据库大批量数据插入优化
- 大数据应用之HBase数据插入性能优化之多线程并行插入测试案例
- PgSQL · 性能优化 · 如何潇洒的处理每天上百TB的数据增量
- SQL server 导入数据 (excel导入到SQL server数据库)
- Fluid 0.4 新版本正式发布:支持数据预热,优化小文件场景
- python通过post提交数据的方法
- 中小企业大数据应用之道:思维在于借力
- loadrunner:Summary Peport和Graphs-Average Transaction Response 中事务响应时间数据不一致问题
- 根据一个表的数据情况显示另一个表的数据
- 大数据基础之Flume(2)应用之kafka-kudu
- 数据价值的4种常见定位
- 数据中台坠落神坛,数据服务平台闪亮登场,阿里、快手又整烂活?
- Atittit HDFS hadoop 大数据文件系统java使用总结 目录 1. 操作系统,进行操作1 2. Hdfs 类似nfs ftp远程分布式文件服务2 3. 启动hdfs服务start
- 基于WebSocket的手机应用和浏览器应用的数据传递
- BigData:数据中台相关术语概念简介—数据域/业务过程/业务域/指标字典/指标类型/原子指标/派生指标/度量/维度/维度属性/时间周期/修饰词/修饰类型等之详细攻略
- Qt数据可视化性能优化
- 使用PSO优化的RBF进行数据预测回归(Matlab)
- 基于PSO优化的SVM数据预测算法matlab仿真
- 基于蜣螂算法优化的SVM数据分类预测-附代码
- 基于海鸥算法优化的Elman神经网络数据预测-附代码
- 基于遗传算法优化的Elman神经网络数据预测-附代码
- 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表文件格式 | 头文件 数据格式 | 全局字符串池 数据格式 | 包数据 数据格式 | 包头 数据格式 )
- CEF(Chromium Embedded Framework和JavaScript交互相互调用函数和设置数据
- Effective JavaScript Item 35 使用闭包来保存私有数据
- 优化数据页面(18)——标注keyword
- elasticsearch 索引搜索和索引性能优化配置——思路:去掉不必要的数据,减小数据的磁盘空间占用,同时提升性能
- hadoop集群离线化搭建(利用HDP快速搭建大数据集群)
- 【mysql学习】6.where高级数据过滤
- Flutter StatefulWidget 有状态组件 、 页面上绑定数据、改变页面数据、 BottomNavigationBar 自定义 底部导航条、以及实现页面切换