买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种用于分布式文件系统的文件读写方法_中山大学_201711113646.0 

申请/专利权人:中山大学

申请日:2017-11-13

公开(公告)日:2020-05-15

公开(公告)号:CN107832423B

主分类号:G06F16/182(20190101)

分类号:G06F16/182(20190101);G06F16/13(20190101);G06F16/172(20190101);H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.05.15#授权;2018.04.20#实质审查的生效;2018.03.23#公开

摘要:本发明公开了一种用于分布式文件系统的文件读写方法,文件读采用客户端‑元数据服务器‑数据服务器‑客户端的文件读取IO路径,文件写时客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则判定高性能计算场景,且针对高性能计算场景下大量的线程同时写文件采用“先写数据后创建元数据”的策略以降低元数据服务器上的突发负载;否则,针对每一个待写的目标文件采用客户端‑数据服务器‑元数据服务器‑客户端的文件写入IO路径。本发明具有文件读写速度快,效率高,减少了客户端和元数据服务器交互的次数,降低了通信开销的优点。

主权项:1.一种用于分布式文件系统的文件读写方法,其特征在于,文件读的实施步骤包括:A1)客户端向分布式文件系统的元数据服务器发送读取文件的请求;A2)元数据服务器在收到客户端的请求后向客户端返回查询元数据信息、且向读取文件的文件块所在的数据服务器发送客户端请求信息及通信地址,客户端根据元数据服务器返回信息找到读取文件的文件块所在的数据服务器;A3)数据服务器收到客户端请求信息及通信地址后,和客户端建立连接并开始向客户端发送读取文件的文件块数据;A4)客户端以文件块为单位接收数据,先在本地缓存、然后写入目标文件,将后面的文件块和前面的文件块合并成最终所需要的文件,完成数据读取;且文件写的实施步骤包括:B1)客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则跳转执行步骤B6);否则,针对每一个待写的目标文件跳转执行下一步;B2)客户端向分布式文件系统的数据服务器通信发送写入目标文件的请求;B3)数据服务器在收到客户端的请求后,检查写入的目标文件不存在、目标文件的父目录存在是否成立,如果成立则创建目标文件,跳转执行下一步;否则,让客户端抛出异常并退出;B4)客户端先将待写的目标文件切分成数据块,然后开始和数据服务器建立连接,数据服务器开始写入数据,并记录元数据信息;B5)数据服务器将目标文件写入存储完成,并向元数据服务器发送已写入存储完成的文件的元数据信息和文件存储数据块信息,退出;B6)客户端将直接与数据服务器交互,完成待写文件的文件对象的分配;B7)当获得分配的文件对象后,数据服务器直接将客户端上的待写文件数据存到数据服务器,然后同时把元数据信息和数据分布信息保存到本地对象储存中;B8)当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送对应的元数据和数据对象分布信息;B9)元数据服务器接收迁移的文件元数据和数据分布信息进行可靠存储。

全文数据:一种用于分布式文件系统的文件读写方法技术领域[0001]本发明涉及分布式存储系统领域,具体涉及一种用于分布式文件系统的文件读写方法。背景技术[0002]随着大数据应用的普及与深入,基础计算框架对储存系统在规模和性能要求等方面提出了更高的挑战。高性能计算机对分布式文件系统性能要求越来越高,在海量小文件频繁创建删除和大规模并发IO操作的应用场景中,文件系统读写效率成为限制其性能的关键因素。例如,对健康大数据,交通大数据和金融大数据等这些应用来说,数据量通常都在TB、PB甚至EB数量级,因此需要大量的储存资源来储存和管理这些数据。此外,大量的数据分析任务需要从不同存储地址快速的访问数据,这对于储存系统的读写速度也具有很高的要求。因此,要支持海量大规模数据储存和计算,除了系统的硬件特性之外,高效的数据组织和管理也是必不可少的关键技术之一。作为应用系统基础平台的用于支持数据访问的文件系统,其性能和可扩展性就变得越来越重要。为了提高文件系统性能,并在一定程度上提高文件系统的可扩展性,如GFS、HadoopDistributeFileSystemHDFS、Lustre等分布式文件系统应运而生。这些分布式文件系统通过将元数据服务和数据服务分离,由元数据服务器来提供元数据服务,由多个数据服务器来并行提供数据服务。其中,元数据采用集中式管理方式,在数据规模小或特定的应用环境下,集中式管理方式在减小元数据访问的通信代价以及维护元数据的一致性开销等方面显示了优势,但这种管理方式可维护的元数据量,以及可提供的元数据服务性能都会受到限制,元数据服务器随着数据量的增长,将会成为系统的性能瓶颈,不利于系统进一步扩展。[0003]传统的分布式文件系统读写文件的具体过程为:(1客户端接收用户发送的文件创建请求;(2客户端向元数据服务器请求创建文件;(3元数据服务器根据文件创建请求将该文件在数据服务器中创建后返回文件ID;4客户端接收元数据服务器返回的文件ID,把文件ID编码为字符串文件名发送给用户;(5客户端接收用户通过该字符串文件名发起的文件读写请求;(6客户端将字符串文件名反编码为文件ID,并向元数据服务器请求该文件相关的数据服务器信息,该数据服务器信息用于指示将该文件被创建至在哪个数据服务器。[0004]但是传统的分布式文件系统读与文件在执行步骤4后,客户端无法根据用户传入的该文件的文件名直接读写数据服务器,必须通过执行步骤5和步骤6之后,必须通过从元数服务器获取该文件的数据服务器信息之后,才能读写数据服务器。这种读写文件的方式降低了客户端访问文件的效率,同时也增大了元数服务器的访问压力。发明内容[0005]本发明要解决的技术问题:针对现有技术的上述问题,提供一种用于分布式文件系统的文件读写方法,具有文件读写速度快,效率高,减少了客户端和元数据服务器交互的次数,降低了通信开销的优点。[0006]为了解决上述技术问题,本发明采用的技术方案为:一种用于分布式文件系统的文件读写方法,文件读的实施步骤包括:A1客户端向分布式文件系统的元数据服务器通信发送读取文件的请求;A2元数据服务器在收到客户端的请求后向客户端返回通信查询元数据信息、且向读取文件的文件块所在的数据服务器发送客户端请求信息及通信地址,客户端根据元数据服务器返回信息找到读取文件的文件块所在的数据服务器;A3数据服务器收到客户端请求信息及通信地址后,和客户端建立连接并开始向客户端发送读取文件的文件块数据;A4客户端以文件块为单位接收数据,先在本地缓存、然后写入目标文件,将后面的文件块和前面的文件块合并成最终所需要的文件,完成数据读取。[0007]优选地,文件写的实施步骤包括:B1客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则跳转执行步骤B6;否则,针对每一个待写的目标文件跳转执行下一步;B2客户端向分布式文件系统的数据服务器通信发送写入目标文件的请求;B3数据服务器在收到客户端的请求后,检查写入的目标文件存在、目标文件的父目录存在是否成立,如果成立则会为文件创建一个记录,跳转执行下一步;否则,让客户端抛出异常并退出;B4客户端先将待写的目标文件切分成数据块,然后开始和数据服务器建立连接,数据服务器开始写入数据,并记录元数据信息;B5数据服务器将目标文件写入存储完成,并向元数据服务器发送已写入存储完成的文件的元数据信息和文件存储数据块信息,退出;B6客户端将直接与数据服务器交互,完成待写文件的文件对象的分配;B7当获得分配的文件对象后,数据服务器直接将客户端上的待写文件数据存到数据服务器,然后同时把元数据信息和数据分布信息保存到本地对象储存中;B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送对应的元数据和数据对象分布信息;B9元数据服务器接收迀移的文件元数据和数据分布信息进行可靠存储。[0008]优选地,步骤B6客户端将直接与数据服务器交互时,预先向数据服务器发送每一个待写文件的类型,每一个待写文件的类型包括文件是否为临时文件;步骤B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送类型为非临时文件的待写文件对应的元数据和数据对象分布信息。[0009]本发明用于分布式文件系统的文件读写方法具有下述优点:1、本发明用于分布式文件系统的文件读写方法的文件读采用客户端-元数据服务器-数据服务器-客户端的文件读取10路径,文件读写速度快,效率高,减少了客户端和元数据服务器交互的次数,降低了通信开销。[0010]2、本发明用于分布式文件系统的文件读写方法的文件写针对高性能计算场景下大量的线_程同时写文件采用“先写数据后创建元数据”的策略以降低元数据服务器上的突发负载,采用“先写数据后创建元数据”的策略,可以将计算节点上的数据写到存储设备上,然后异步的创建文件,这样,计算节点将数据输出后可以进行接下来的计算,并同时向元数据服务器提交创建文件的请求,一方面,元数据服务器有充裕的时间创建这些文件,平均负载较低,另一方面,元数据服务器创建文件与计算节点的计算过程重叠,体现一定的并行性。[0011]3、本发明用于分布式文件系统的文件读写方法的文件写针对非高性能计算场景下的每一个待写的目标文件采用客户端-数据服务器-元数据服务器-客户端的文件写入10路径,文件读写速度快,效率高,减少了客户端和元数据服务器交互的次数,降低了通信开销。附图说明[0012]图1为本发明实施例的文件读的流程示意图。[0013]图2为本发明实施例的文件写的流程示意图。具体实施方式[0014]如图1所示,本实施例用于分布式文件系统的文件读写方法文件读的实施步骤包括:A1客户端向分布式文件系统的元数据服务器通信发送读取文件的请求;A2元数据服务器在收到客户端的请求后向客户端返回通信查询元数据信息、且向读取文件的文件块所在的数据服务器发送客户端请求信息及通信地址,客户端根据元数据服务器返回信息找到读取文件的文件块所在的数据服务器;A3数据服务器收到客户端请求信息及通信地址后,和客户端建立连接并开始向客户端发送读取文件的文件块数据;A4客户端以文件块为单位接收数据,先在本地缓存、然后写入目标文件,将后面的文件块和前面的文件块合并成最终所需要的文件,完成数据读取。[0015]如图2所示,文件写的实施步骤包括:B1客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则跳转执行步骤B6;否则,针对每一个待写的目标文件跳转执行下一步;B2客户端向分布式文件系统的数据服务器通信发送写入目标文件的请求;B3数据服务器在收到客户端的请求后,检查写入的目标文件存在、目标文件的父目录存在是否成立,如果成立则会为文件创建一个记录,跳转执行下一步;否则,让客户端抛出异常并退出;B4客户端先将待写的目标文件切分成数据块,然后开始和数据服务器建立连接,数据服务器开始写入数据,并记录元数据信息;B5数据服务器将目标文件写入存储完成,并向元数据服务器发送已写入存储完成的文件的元数据信息和文件存储数据块信息,退出;B6客户端将直接与数据服务器交互,完成待写文件的文件对象的分配;B7当获得分配的文件对象后,数据服务器直接将客户端上的待写文件数据存到数据服务器,然后同时把元数据信息和数据分布信息保存到本地对象储存中;B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发达对K的兀数据和数据对象分布信息;B9元数据服务器接收迁移的文件元数据和数据分布信息进行可靠存储。^〇16J参见步骤B2〜B5,高性能计算场景下,大量的线程同时写文件,传统的文件系统采用“先创建文件后写数据”的方法,会导致元数据服务器上的突发负载。参见步骤B6〜B9」本实施例中针对高性能计算场景待写文件数量超过预设阈值),采用“先写数据后创建元数据”的策略,可以将计算节点上的数据写到存储设备上,然后异步的创建文件,这样,计算节点将数据输出后可以进行接下来的计算,并同时向元数据服务器提交创建文件的请求,一方面,元数据服务器有充裕的时间创建这些文件,平均负载较低,另一方面,元数据服务器创建文件与计算节点的计算过程重叠,体现一定的并行性。[0017]本实施例中,步骤B6客户端将直接与数据服务器交互时,预先向数据服务器发送每一个待写文件的类型,每一个待写文件的类型包括文件是否为临时文件;步骤B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送类型为非临时文件的待写文件对应的元数据和数据对象分布信息。大数据分析环境下,客户端计算节点产生大量的临时文件,而大量临时文件并不需要提交到元数据服务器上,所以可以考虑只将数据输出到存储设备上,但并不向元数据服务器创建文件,降低了元数据服务器的负载。[0018]以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

权利要求:1.一种用于分布式文件系统的文件读写方法,其特征在于,文件读的实施步骤包括:A1客户端向分布式文件系统的元数据服务器通信发送读取文件的请求;A2元数据服务器在收到客户端的请求后向客户端返回通信查询元数据信息、且向读取文件的文件块所在的数据服务器发送客户端请求信息及通信地址,客户端根据元数据服务器返回信息找到读取文件的文件块所在的数据服务器;A3数据服务器收到客户端请求信息及通信地址后,和客户端建立连接并开始向客户端发送读取文件的文件块数据;A4客户端以文件块为单位接收数据,先在本地缓存、然后写入目标文件,将后面的文件块和前面的文件块合并成最终所需要的文件,完成数据读取。2.根据权利要求1所述的用于分布式文件系统的文件读写方法,其特征在于,文件写的实施步骤包括:B1客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则跳转执行步骤B6;否则,针对每一个待写的目标文件跳转执行下一步;B2客户端向分布式文件系统的数据服务器通信发送写入目标文件的请求;B3数据服务器在收到客户端的请求后,检查写入的目标文件存在、目标文件的父目录存在是否成立,如果成立则会为文件创建一个记录,跳转执行下一步;否则,让客户端抛出异常并退出;B4客户端先将待写的目标文件切分成数据块,然后开始和数据服务器建立连接,数据服务器开始写入数据,并记录元数据信息;B5数据服务器将目标文件写入存储完成,并向元数据服务器发送已写入存储完成的文件的元数据信息和文件存储数据块信息,退出;B6客户端将直接与数据服务器交互,完成待写文件的文件对象的分配;B7当获得分配的文件对象后,数据服务器直接将客户端上的待写文件数据存到数据服务器,然后同时把元数据信息和数据分布信息保存到本地对象储存中;B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送对应的元数据和数据对象分布信息;B9元数据服务器接收迁移的文件元数据和数据分布信息进行可靠存储。3.根据权利要求2所述的用于分布式文件系统的文件读写方法,其特征在于,步骤B6客户端将直接与数据服务器交互时,预先向数据服务器发送每一个待写文件的类型,每一个待写文件的类型包括文件是否为临时文件;步骤B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送类型为非临时文件的待写文件对应的元数据和数据对象分布信息。4.一种用于分布式文件系统的文件读写方法,其特征在于,文件写的实施步骤包括:B1客户端获取需要进行文件写的待写文件数量,如果待写文件数量超过预设阈值,则跳转执行步骤B6;否则,针对每一个待写的目标文件跳转执行下一步;B2客户端向分布式文件系统的数据服务器通信发送写入目标文件的请求;B3数据服务器在收到客户端的请求后,检查写入的目标文件存在、目标文件的父目录存在是否成立,如果成立则会为文件创建一个记录,跳转执行下一步;否则,让客户端抛出异常并退出;B4客户端先将待写的目标文件切分成数据块,然后开始和数据服务器建立连接,数据服务器开始写入数据,并记录元数据信息;B5数据服务器将目标文件写入存储完成,并向元数据服务器发送已写入存储完成的文件的元数据信息和文件存储数据块信息,退出;B6客户端将直接与数据服务器交互,完成待写文件的文件对象的分配;B7当获得分配的文件对象后,数据服务器直接将客户端上的待写文件数据存到数据服务器,然后同时把元数据信息和数据分布信息保存到本地对象储存中;B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送对应的元数据和数据对象分布信息;B9元数据服务器接收迁移的文件元数据和数据分布信息进行可靠存储。5.根据权利要求4所述的用于分布式文件系统的文件读写方法,其特征在于,步骤B6客户端将直接与数据服务器交互时,预先向数据服务器发送每一个待写文件的类型,每一个待写文件的类型包括文件是否为临时文件;步骤B8当一个客户端的所有待写文件的写入作业完成后,数据服务器向元数据服务器发送类型为非临时文件的待写文件对应的元数据和数据对象分布信息。

百度查询: 中山大学 一种用于分布式文件系统的文件读写方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。