大量小文件的存储场景,有什么优化办法
来源:互联网 发布:ubuntu rm删除多个文件 编辑:程序博客网 时间:2024/04/27 14:27
可以参考Google的GFS以及变种HDFS、淘宝TFS以及腾讯TencentFS的设计。这些都是处理大量小文件的典范。
大家知道传统的文件系统下,每个文件都要被创建对应的inode之类元数据,但是在海量文件场景下,传统FS已经无法承载如此多的元数据IO量以及如此庞大的元数据搜索计算量了,唯一的做法就是降低元数据量,那么势必就要降低文件实体的数量,所以这些文件系统无一例外的都是用了这样一种变通的方法,即在文件中再创建文件,比如一个64MB的大文件,比如其中可以包含16384个4KB的小文件,但是这个64MB的大文件只占用了1个inode,而如果存放4KB的文件的话,就需要16384个inode了。
那么如何寻址这个大文件中的小文件呢?方法就是利用一个旁路数据库来记录每个小文件在这个大文件中的起始位置和长度等信息,也就是说将传统文件系统的大部分元数据剥离了开来,拿到了单独的数据库中存放,这样通过查询外部数据库先找到小文件具体对应在哪个大文件中的从哪开始的多长,然后直接发起对这个大文件的对应地址段的读写操作即可。另外还可以创建索引以加速文件查找动作。
在一个海量分布式文件系统中,元数据就像上面的思想一样是分级的,中控节点,也就是MDS,存储一级元数据,也就是大文件与底层块的对应关系,而数据节点则存放二级元数据,也就是最终的用户文件在这些一级大块中的存储位置对应关系,经过两级寻址从而读写数据。其实这些一级大文件,就可以认为它们是卷了,也就是在卷管理层之上再存放文件,这样就降低了单一空间下的文件总数量从而提高性能。
作者:张冬
链接:https://www.zhihu.com/question/26504749/answer/33012474
- 大量小文件的存储场景,有什么优化办法
- mapReduce大量小文件的优化策略
- hadoop大量小文件的优化策略
- spark批量读取大量小文件的办法
- mapreduce关于大量小文件的优化策略
- 中病毒的u盘文件有什么办法恢复?
- 机械硬盘上存储大量小文件
- redis中的map存储大量数据会有什么问题
- 关于hadoop中maptask运行切片前,运行的文件有大量小文件问题
- 今日收获 --- 场景中大量集合体的优化
- JVM内存溢出有什么优化、具体使用场景
- Hadoop小文件存储优化
- hadoop小文件存储优化
- 微信息小程序 有没有什么办法让小程序tabbar未读消息数的提醒
- 大量小文件的实时同步方案
- 大量小文件的实时同步方案
- 大量小文件的实时同步方案
- 大量小文件的实时同步方案
- 不可重复读和幻读的一些区别
- 数组之sort Array中,找出给定数字出现的次数
- 初识.net界面程序(4)——数组排序和计算练习
- HDU 2546 饭卡
- 初识进程
- 大量小文件的存储场景,有什么优化办法
- 笔试面试算法经典--二叉搜索树转有序的双向链表(Java)
- ZOJ2965-Accurately Say "CocaCola"!
- linux查看某串口(或串口终端)的波特率等属性
- Java学习【知识点及代码6】
- TabWidget 添加多个tab
- ZOJ2966-Build The Electric System
- linux命令useradd添加用户详解
- ARM开发各种烧写文件格式说明(ELF、HEX、BIN)