基于虚拟文件系统的小文件动态聚合方法技术方案

技术编号:39668942 阅读:8 留言:0更新日期:2023-12-11 18:33
本发明专利技术公开一种基于虚拟文件系统的小文件动态聚合方法

【技术实现步骤摘要】
基于虚拟文件系统的小文件动态聚合方法、装置及可读介质


[0001]本专利技术涉及计算机存储领域,具体涉及一种基于虚拟文件系统的小文件动态聚合方法

装置及可读介质


技术介绍

[0002]通常认为大小在
1MB
以内的文件称为小文件,在互联网
(
尤其是移动互联网
)、
物联网

云计算

大数据等技术高速发展的大背景下,数据呈现爆炸式地增长

海量小文件的应用在生活中已越来越常见,各类应用程序都会产生一些小文件,例如即时通讯软件中发送的表情包

办公文档和短视频等

由于小文件数据内容较少,因此元数据的访问性能对小文件访问性能影响巨大

磁盘文件系统中,目录项
(dentry)、
索引节点
(inode)
和数据
(data)
保存在存储介质的不同位置上

因此,访问一个文件需要经历至少3次独立的访问

这样,并发的小文件访问就转变成了大量的随机访问,而这种访问对于磁盘来说是非常低效的

磁盘文件系统使用块来组织磁盘数据,并在
inode
中使用多级指针或
hash
树来索引文件数据块

对于大文件,数据块会尽量进行连续分配,具有比较好的空间局部性

对于小文件,数据块可能零散分布在磁盘上的不同位置,会造成大量的磁盘碎片
(
包括内部碎片和外部碎片
)
,不仅造成访问性能下降,还导致大量磁盘空间浪费

[0003]小文件合并存储是目前优化小文件问题最为成功的策略,已经被包括
Facebook Haystack
和淘宝
TFS(Taobao File System)
在内多个分布式存储系统采用

它通过多个逻辑文件共享同一个物理文件,将多个小文件合并存储到一个大文件中,实现高效的小文件存储

这种机制对于
WORM(Write Once Read Many)
模式的分布式存储系统非常适合,但不适合允许多次改写和删除的存储系统

因为文件改写和删除操作,会造成大文件内部产生碎片,如果进行空间管理并在合适时机执行碎片整理,实现过程比较复杂而且产生额外开销

如果不对碎片进行处理,采用追加写的方式,一方面会浪费存储容量,另一方面又会破坏数据局部性,增加数据分布的随机性,导致读性能下降

此外,如果支持随机读写,大小文件如何统一处理,小文件增长成大文件

大文件退化为小文件,这些问题都是在实际处理时所需面临的挑战


技术实现思路

[0004]针对上述提到的技术问题

本申请的实施例的目的在于提出了一种基于虚拟文件系统的小文件动态聚合方法

装置及可读介质,来解决以上
技术介绍
部分提到的技术问题

[0005]第一方面,本专利技术提供了一种基于虚拟文件系统的小文件动态聚合方法,包括以下步骤:
[0006]响应于确定存在存储载体,打开存储载体,获取文件的操作句柄,在操作句柄的句柄表中读取幻数,响应于确定幻数合法,读取存储载体的初始化信息并进行反序列化,得到初始化信息结构;
[0007]基于初始化信息结构创建物理文件系统实例,构建从第一集合到第二集合的映射
关系,第一集合为虚拟文件系统提供给过滤驱动的访问服务集合,第二集合为物理文件系统提供给虚拟文件系统的访问服务集合,第一集合和第二集合的元素均包括读取

写入

更新;
[0008]构建挂载点,根据主机文件系统特性构建存储载体中存放的目录结构,获取操作系统对挂载点的文件操作并进行拦截;
[0009]通过映射关系查找文件操作在第二集合中对应的元素并进行调用,将对应的元素操作的对象重定向为存储载体

[0010]作为优选,获取操作系统对挂载点的文件操作并进行拦截,具体包括:
[0011]注册过滤驱动,获取操作系统对挂载点的文件操作,通过过滤驱动拦截操作系统对挂载点的文件操作

[0012]作为优选,还包括:
[0013]响应于确定收到退出信号,移除挂载点,卸载过滤驱动,刷写缓存,并释放映射关系

第一集合和第二结合,并结束流程

[0014]作为优选,还包括:
[0015]响应于确定未收到退出信号,重复步骤:映射关系查找文件操作在第二集合中对应的元素并进行调用,将对应的元素操作的对象重定向为存储载体

[0016]作为优选,还包括:
[0017]响应于确定不存在存储载体,创建存储载体,将指定的物理文件系统类型及相关的参数按照初始化信息结构进行序列化,得到初始化信息,并将初始化信息写入存储载体

[0018]作为优选,还包括:
[0019]响应于确定幻数不合法,结束流程

[0020]作为优选,初始化信息结构包括幻数
Magic Number、
所使用的物理文件系统类型
FSType、
扩展信息占用的大小
ExtendInfoSize、
扩展信息
ExtendInfo
及其分别对应的大小

类型和偏移量,读取初始化信息时按照类型和偏移量进行读取

[0021]第二方面,本专利技术提供了一种基于虚拟文件系统的小文件动态聚合装置,包括以下步骤:
[0022]反序列化模块,被配置为响应于确定存在存储载体,打开存储载体,获取文件的操作句柄,在操作句柄的句柄表中读取幻数,响应于确定幻数合法,读取存储载体的初始化信息并进行反序列化,得到初始化信息结构;
[0023]映射关系建立模块,被配置为基于初始化信息结构创建物理文件系统实例,构建从第一集合到第二集合的映射关系,第一集合为虚拟文件系统提供给过滤驱动的访问服务集合,第二集合为物理文件系统提供给虚拟文件系统的访问服务集合,第一集合和第二集合的元素均包括读取

写入

更新;
[0024]拦截模块,被配置为构建挂载点,根据主机文件系统特性构建存储载体中存放的目录结构,获取操作系统对挂载点的文件操作并进行拦截;
[0025]调用模块,被配置为通过映射关系查找文件操作在第二集合中对应的元素并进行调用,将对应的元素操作的对象重定向为存储载体

[0026]第三方面,本专利技术提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于虚拟文件系统的小文件动态聚合方法,其特征在于,包括以下步骤:响应于确定存在存储载体,打开所述存储载体,获取文件的操作句柄,在所述操作句柄的句柄表中读取幻数,响应于确定所述幻数合法,读取存储载体的初始化信息并进行反序列化,得到初始化信息结构;基于所述初始化信息结构创建物理文件系统实例,构建从第一集合到第二集合的映射关系,所述第一集合为虚拟文件系统提供给过滤驱动的访问服务集合,所述第二集合为物理文件系统提供给虚拟文件系统的访问服务集合,所述第一集合和第二集合的元素均包括读取

写入

更新;构建挂载点,根据主机文件系统特性构建所述存储载体中存放的目录结构,获取操作系统对所述挂载点的文件操作并进行拦截;通过所述映射关系查找所述文件操作在所述第二集合中对应的元素并进行调用,将所述对应的元素操作的对象重定向为所述存储载体
。2.
根据权利要求1所述的基于虚拟文件系统的小文件动态聚合方法,其特征在于,所述获取操作系统对所述挂载点的文件操作并进行拦截,具体包括:注册过滤驱动,获取操作系统对所述挂载点的文件操作,通过所述过滤驱动拦截操作系统对所述挂载点的文件操作
。3.
根据权利要求2所述的基于虚拟文件系统的小文件动态聚合方法,其特征在于,还包括:响应于确定收到退出信号,移除所述挂载点,卸载所述过滤驱动,刷写缓存,并释放映射关系

第一集合和第二结合,并结束流程
。4.
根据权利要求1所述的基于虚拟文件系统的小文件动态聚合方法,其特征在于,还包括:响应于确定未收到退出信号,重复步骤:所述映射关系查找所述文件操作在所述第二集合中对应的元素并进行调用,将所述对应的元素操作的对象重定向为所述存储载体
。5.
根据权利要求1所述的基于虚拟文件系统的小文件动态聚合方法,其特征在于,还包括:响应于确定不存在存储载体,创建存储载体,将指定的物理文件系统类型及相关的参数按照初始化信息结构进行序列化,得到初始化信息,并将所述初始化信息写入所述存储载体
。6.
根据权利要求1所...

【专利技术属性】
技术研发人员:苏再添杜鑫辉陈晓强苏步发
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1