掌桥专利:专业的专利平台
掌桥专利
首页

一种实现lustre分层文件系统与对象存储s3数据互访方法

文献发布时间:2024-04-18 19:58:21


一种实现lustre分层文件系统与对象存储s3数据互访方法

技术领域

本发明涉及计算系统网络传输领域,尤其涉及一种实现lustre分层文件系统与对象存储s3数据互访方法。

背景技术

当前开源文件系统lustre是一种分层并行文件系统,该文件系统是在linux操作系统上运行,并提供了符合POSIX标准的文件系统接口且是面向集群的存储架构。Lustre提供一个名叫lustrefs的文件系统可运行在各种厂商的内核上。不受硬件架构影响,可无限扩展,并行扩容,此文件系统在客户端节点数量、磁盘存储量、带宽上进行扩大或缩小。Lustre文件系统支持多种配置方式进行部署,这些配置的可扩展性远远超出了其他生产存储系统中的规模和性能,包括开源分布式存储系统。另外lustre具有强大的横向扩展能力,通过扩展能够支持大存储容量和满足数以万计的客户端同时访问。LustreFS借助lent网络模块将来自多个服务器的磁盘存储资源聚合到一个全局命名空间中。使用全局统一命名空间来管理数据,对上层用户和应用屏蔽了底层的物理硬件。

Lustrefs能够对外提供多种访问方式,可以通过NFS,SMB,HTTP协议等访问,还可以通过本身提供的客户端访问,但是终究只适合于兼容posix标准的文件系统访问方式,在当前大数据,5g,原生云时代,lustre就显得格格不入了。另外由于Lustre的集群设计和并行架构,非常适合众多客户端并发进行大文件读写的场合,但目前对于小文件应用非常不适用,尤其是海量小文件应用LOSF(Lots Of Small Files),而对象存储s3接口由于其扁平化的存储方式,以及基于http的访问请求,非常适合于小文件存储,尤其是扁平方式的数据组织方式能够解决海量的且大并发的小文件访问。所以,如何将这2种完全不同的底层存储方式,甚至上层应用架构完全不同的2个功能模块组合起来,形成一个整体是急需要解决问题,这样既能够利用lustrefs高并发的大文件性能,又能满足海量小文件io带宽需求,且在文件系统以及对象存储系统之间完美实现利于企业用户感知的文件树展示形式。

发明内容

本发明提供了一种实现lustre分层文件系统与对象存储s3数据互访方法,解决由于Lustre的集群设计和并行架构,对于小文件应用非常不适用的问题,具备既满足大文件高带宽的需求,又实现了海量小文件的高性能传输,达到双赢的效等优点。

根据本申请实施例提供的一种实现lustre分层文件系统与对象存储s3数据互访方法,包括以下步骤:

通过mkfs.lustre工具部署一套lustre并行分层文件系统,将文件系统挂载到/data目录;

分别创建mgt,mdt,ost,client四个功能组件,使用文件系统挂载方式将此系统挂载并行系统上,对外提供基于posix标准的文件系统;

配置对象存储系统,使用radosgw-admin接口工具配置对象存储s3接口,对外提供一个restful风格的http数据存储访问接口;

部署数据转换模块rclus-s3,将之前创建并行分层系统的子目录与对象存储数据桶进行链接操作,通过rclus-s3-admin创建relink操作使得文件系统与对象存储系统之间接口互通;

配置模块,设置相关文件转换策略,包括文件写入,删除,读取操作,开启自动转存,并将配置转存信息写入到数据库中,记录一些元数据信息;

配置多用户虚拟子文件系统隔离功能,也就是说实现不同的lustre并行客户端实现与不同的对象网关以及存储bucket之间的数据互存,实现逻辑上的空间隔离。

优选地,包括如下步骤:

file-stream文件流功能部分,监控前端lustrefs文件系统接口;

当捕获到客户对文件进行读写增删操作之后,立刻初始化消息队列message-queue,并向其中注册命令执行文件获取函数;

Message-queue是此模块中的网络多线程模块,会在收到客户请求后,回调file-stream在消息队列排队阶段注册文件处理函数;

sqlite-record数据库转存过程在整个文件转储的文件生命周期中被反复调用;当文件流触发消息队列下发队列消息之后,此数据库转存功能便开始记录所有文件的metadata信息,own属组信息,xattr其他文件附加属性值;记录所有这些文件属性信息后,通过probe方式下发到fsapi-convert模块进行对象文件s3接口转存。

优选地,还包括如下步骤:

fsapi-convert收到Probing消息的节点执行回调信息并回复file-stream,通过条用convert模块将文件转存成适合对象接口访问的文件接口形式,主要涉及文件id,文件分块信息,数据主体内容,对象键值对,随后调用sqlite-record数据库转存功能在原有文件信息处新增外检表记录对应的对象文件信息。

本申请实施例提供的技术方案可以包括以下有益效果:

本发明提出一种实现lustre分层文件系统与对象存储s3数据互访方法,采用上述方法之后,在lustrefs进行大量小文件、海量图片写入的时候,客户端则直接将文件写入到对象存储s3存储中。利用对象存储扁平化的基于键值对的存储方式消除了元数据的依赖,并且打通了并行分层文件系统与对象存储系统之间的壁垒,实现了lustrefs文件转入到对象存储、对象存储数据转入文件系统的数据互相访问,不同文件接口系统并存且实现文件互访。使得lustre能够用于各种高性能计算负载场景,低密度高io低延时场景,既满足大文件高带宽的需求,又实现了海量小文件的高性能传输,达到双赢的效果。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1和图2为本发明一种实现lustre分层文件系统与对象存储s3数据互访方法的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本发明通过部署使用本方法所实现的模块rclus-s3转换方法,通过此模块分别连通lustre并行分层文件系统与对象存储提供s3接口,然后在对象存储服务器作为lustre的客户端一部分部署本文实现的rclus-s3模块实现数据互访。通过本文提供的转换功能模块rclus-s3来实现2个完全不同的系统文件互相访问并互相存储数据。这样使得整个系统能够使用所有的存储场景,满足不同的工作负载,实现s3对象存储用于数据转换,lustrefs文件接口满足posix标准的文件系统需求。当将对象数据桶bucket连接到文件系统时,rclus-s3模块会透明的将s3对象呈现为文件展示给到用户界面,并允许结果写回到s3对象存储系统里面。本文所描述的方法便是将lustrefs文件系统与对象接口s3结合起来,打通数据互通互存互取的通道,实现lustre分层并行文件系统与对象存储s3数据互相访问读取并共存。使得lustre能够用于各种高性能计算负载场景,低密度高io低延时场景,满足所有客户需求场景,加速大数据,云,超级计算机等快速发展。

请参阅图1和图2,本发明提供一种实现lustre分层文件系统与对象存储s3数据互访方法,包括以下步骤:

通过mkfs.lustre工具部署一套lustre并行分层文件系统,将文件系统挂载到/data目录;

分别创建mgt,mdt,ost,client四个功能组件,使用文件系统挂载方式将此系统挂载并行系统上,对外提供基于posix标准的文件系统;

配置对象存储系统,使用radosgw-admin接口工具配置对象存储s3接口,对外提供一个restful风格的http数据存储访问接口;

部署数据转换模块rclus-s3,将之前创建并行分层系统的子目录与对象存储数据桶进行链接操作,通过rclus-s3-admin创建relink操作使得文件系统与对象存储系统之间接口互通;

配置模块,设置相关文件转换策略,包括文件写入,删除,读取操作,开启自动转存,并将配置转存信息写入到数据库中,记录一些元数据信息;

配置多用户虚拟子文件系统隔离功能,也就是说实现不同的lustre并行客户端实现与不同的对象网关以及存储bucket之间的数据互存,实现逻辑上的空间隔离。

整个方法实现部分最重要的便是rclus-s3模块,接下来重点介绍此模块的设计方法。此功能模块主要是在对象存储服务器节点启动,涉及三大功能:自下而上依次初始化上述的三大组成部分:file-stream,sqlite-record,fsapi-convert。

可以理解,包括如下步骤:

file-stream文件流功能部分,监控前端lustrefs文件系统接口;

当捕获到客户对文件进行读写增删等操作之后,立刻初始化消息队列message-queue,并向其中注册命令执行文件获取函数;

Message-queue是此模块中的网络多线程模块,会在收到客户请求后,回调file-stream在消息队列排队阶段注册文件处理函数;

sqlite-record数据库转存过程在整个文件转储的文件生命周期中被反复调用;当文件流触发消息队列下发队列消息之后,此数据库转存功能便开始记录所有文件的metadata信息,own属组信息,xattr其他文件附加属性值;记录所有这些文件属性信息后,通过probe方式下发到fsapi-convert模块进行对象文件s3接口转存。

可以理解,还包括如下步骤:

fsapi-convert收到Probing消息的节点执行回调信息并回复file-stream,通过条用convert模块将文件转存成适合对象接口访问的文件接口形式,主要涉及文件id,文件分块信息,数据主体内容,对象键值对等,随后调用sqlite-record数据库转存功能在原有文件信息处新增外检表记录对应的对象文件信息。

本申请实施例提供的技术方案可以包括以下有益效果:

本发明提出一种实现lustre分层文件系统与对象存储s3数据互访方法,采用上述方法之后,在lustrefs进行大量小文件、海量图片写入的时候,客户端则直接将文件写入到对象存储s3存储中。利用对象存储扁平化的基于键值对的存储方式消除了元数据的依赖,并且打通了并行分层文件系统与对象存储系统之间的壁垒,实现了lustrefs文件转入到对象存储、对象存储数据转入文件系统的数据互相访问,不同文件接口系统并存且实现文件互访。使得lustre能够用于各种高性能计算负载场景,低密度高io低延时场景,既满足大文件高带宽的需求,又实现了海量小文件的高性能传输,达到双赢的效果。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种实现glusterfs文件系统与对象存储s3数据互访方法
  • 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统
技术分类

06120116481311