一种文件读取的方法以及装置与流程

文档序号:11677722阅读:209来源:国知局
一种文件读取的方法以及装置与流程

本发明涉及分布式文件系统技术领域,特别是涉及一种文件读取的方法以及装置。



背景技术:

随着文件存储技术的发展进步,分布式文件系统的应用也越来越广泛。

ceph文件系统是一个可扩展、高性能的分布式文件系统,而ceph文件系统一般是基于纠删码技术的。基于纠删码的分布式文件系统可以提供优化的数据冗余度,且可以提高存储空间的利用率。在读取基于纠删码的分布式文件系统内的文件数据时,一般地,无论是读取整个文件,还是读取文件中一小块,底层存储系统都会读取k个osd上的所有文件数据,并对所有的文件数据进行解码,然后将所得到完整的数据返回给客户端。

但是,由于文件的读取需要大量的计算和数据传输,在基于纠删码的分布式文件系统内,小文件的读取速率要低于于大文件的读取速率。而小文件可以是指其容量小于纠删码分块存储的大小,即小文件的大小小于纠删码分块存储的大小。综上所述,如何提高基于纠删码的分布式文件系统内的小文件的读取速率是本领域亟待解决的问题。



技术实现要素:

本发明的目的是提供一种文件读取的方法以及装置,目的在于解决现有技术中基于纠删码的分布式文件系统内的小文件的读取速率较低的问题。

为解决上述技术问题,本发明提供一种文件读取的方法,该方法包括:

向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址,其中,所述文件为文件容量小于纠删码分块存储容量的小文件;

接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个;

若是,向所述存储节点地址对应的存储节点发送第二读取请求,以使所述存储节点根据所述第二读取请求返回文件数据;

对所述文件数据进行解析操作,得出所述文件。

可选地,在所述接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个之后还包括:

若否,向多个所述存储节点地址对应的多个所述存储节点发送所述第二读取请求,以使主存储节点获取所述文件数据,并对所述文件数据进行解析操作,得出所述文件;

接收所述主存储节点返回的所述文件。

可选地,所述向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址包括:

向所述元数据服务器发送包含所需读取所述文件的所述文件信息的所述第一读取请求,以使所述元数据服务器根据所述文件信息以及预记录的分块信息,寻找所述文件对应的存储节点地址;

其中,所述分块信息为所述元数据服务器在将所述文件数据存储至所述存储节点时所记录的各个存储节点的信息。

此外,本发明还提供了一种文件读取的装置,该装置包括:

第一发送模块,用于向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址,其中,所述文件为文件容量小于纠删码分块存储容量的小文件;

判断模块,用于接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个;

第二发送模块,用于若是,向所述存储节点地址对应的存储节点发送第二读取请求,以使所述存储节点根据所述第二读取请求返回文件数据;

解析模块,用于对所述文件数据进行解析操作,得出所述文件。

可选地,还包括

第三发送模块,用于若否,向多个所述存储节点地址对应的多个所述存储节点发送所述第二读取请求,以使主存储节点获取所述文件数据,并对所述文件数据进行解析操作,得出所述文件;

接收模块,用于接收所述主存储节点返回的所述文件。

可选地,所述第一发送模块包括:

发送单元,用于向所述元数据服务器发送包含所需读取所述文件的所述文件信息的所述第一读取请求,以使所述元数据服务器根据所述文件信息以及预记录的分块信息,寻找所述文件对应的存储节点地址;

其中,所述分块信息为所述元数据服务器在将所述文件数据存储至所述存储节点时所记录的各个存储节点的信息。

本发明所提供的一种文件读取的方法以及装置,通过向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使上述元数据服务器根据上述文件信息寻找上述文件对应的存储节点地址,其中,上述文件为文件容量小于纠删码分块存储容量的小文件;接收上述元数据服务器返回的上述存储节点地址,判断上述存储节点地址的个数是否为一个;若是,向上述存储节点地址对应的存储节点发送第二读取请求,以使上述存储节点根据上述第二读取请求返回文件数据;对上述文件数据进行解析操作,得出上述文件。当小文件存储在一个存储节点上时,直接从存储节点上读取所需的小文件,相较于传统的小文件读取方法,其省去了主存储节点搜集解析数据的过程,使得小文件读取速率较高。可见,本申请有利于提高小文件的读取速率。

附图说明

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

图1为本发明实施例所提供的文件读取方法的一种具体实施方式的流程示意图;

图2为本发明实施例所提供的文件读取装置的结构示意框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,图1为本发明实施例所提供的文件读取方法的一种具体实施方式的流程示意图,该方法包括以下步骤:

步骤101:向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址,其中,所述文件为文件容量小于纠删码分块存储容量的小文件;

需要说明的是,上述文件的文件容量小于纠删码分块存储容量,即上述文件的大小小于纠删码计算块的大小,可以称为小文件。而上述文件可以具体表现为某一个文件里面的某一小段文件内容。例如,一个文件所包括的内容有abcdefghi…jkmnopqr等内容,利用纠删码技术的基本思想,在进行文件存储时,需要将文件数据划分为多份数据,将多份数据分别存储在相应的存储节点上,其中某个存储节点上所存储的文件数据可以为ghipqr,此时,该小文件可以是指ghipqr。

具体地,客户端可以向元数据服务器(metadataserver,mds)发送第一读取请求,该第一读取请求可以包含所需读取文件的具体信息。mds可以根据文件信息,找出该文件存储在哪个存储节点地址,即存储在哪个osd上,即找出该文件所对应的osd地址。在基于纠删码的分布式文件系统上,osd可以与存储节点等同。

而mds在将划分之后的数据块存储至相应的osd上时,会相应地记录各个数据块与相应的osd信息。mds可以根据文件信息以及所记录的信息寻找到相应的存储节点地址。

作为一种具体实施方式,上述向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址的过程可以具体为:向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息以及预记录的分块信息,寻找所述文件对应的存储节点地址;其中,所述分块信息为所述元数据服务器在将所述文件数据存储至所述存储节点时所记录的各个存储节点的信息。

可以理解的是,而上述文件可能存储在一个osd上,此时则返回一个osd地址,也可能存储在多个osd上,此时则返回多个相应的osd地址。

步骤102:接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个;

显而易见地,当返回的存储节点地址的个数是一个时,则表明上述文件只存储在一个存储节点上,即只存储在一个osd上。此时,可以直接根据该存储节点地址,读取到所需的文件数据。

具体地,客户端可以接受mds返回的存储节点地址,继而判断所返回的存储节点地址的个数多少。

步骤103:若是,向所述存储节点地址对应的存储节点发送第二读取请求,以使所述存储节点根据所述第二读取请求返回文件数据;

客户端判断出当前存储节点地址的个数为一个,则可以判断出所需读取的文件只存储在一个存储节点上,故可以根据存储节点地址,向存储节点发送第二读取请求,相应的存储节点会返回所存储的文件数据。

步骤104:对所述文件数据进行解析操作,得出所述文件。

具体地,客户端可以接受存储节点返回的文件数据,继而对文件数据进行解码还原,得出所需的文件。

可以理解的是,mds可能返回多个存储节点地址,此时,上述文件存储在多个存储节点上。此时,可以同时向多个存储节点发送读取数据的请求,由主存储节点收集解析数据。

可以看出,通过判断mds所返回的存储节点地址是否为一个,进而得出小文件是否存储在一个存储节点上。当文件存储在一个存储节点即一个osd上时,则直接从相应的osd上读取所需数据,并由客户端进行数据的解码还原操作,相较于传统的小文件读取方法,其提高了小文件的读取速率,减轻了主osd的运算压力以及通信压力。

作为一种具体实施方式,在上述接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个之后还可以包括:若否,向多个所述存储节点地址对应的多个所述存储节点发送所述第二读取请求,以使主存储节点获取所述文件数据,并对所述文件数据进行解析操作,得出所述文件;接收所述主存储节点返回的所述文件。

具体地,客户端向多个osd发送读取数据请求,此时,主osd会承担数据搜集以及数据解析还原的操作,主osd得出完整文件后,会将文件返回给客户端。

本发明实施例所提供的文件读取的方法,通过向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使上述元数据服务器根据上述文件信息寻找上述文件对应的存储节点地址,其中,上述文件为文件容量小于纠删码分块存储容量的小文件;接收上述元数据服务器返回的上述存储节点地址,判断上述存储节点地址的个数是否为一个;若是,向上述存储节点地址对应的存储节点发送第二读取请求,以使上述存储节点根据上述第二读取请求返回文件数据;对上述文件数据进行解析操作,得出上述文件。当小文件存储在一个存储节点上时,直接从存储节点上读取所需的小文件,相较于传统的小文件读取方法,其省去了主存储节点搜集解析数据的过程,使得小文件读取速率较高。可以看出,该装置有利于提高小文件的读取速率。

下面对本发明实施例提供的文件读取装置进行介绍,下文描述的文件读取装置与上文描述的文件读取方法可相互对应参照。

图2为本发明实施例所提供的文件读取装置的结构示意框图,参照图2文件读取装置可以包括:

第一发送模块201,用于向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使所述元数据服务器根据所述文件信息寻找所述文件对应的存储节点地址,其中,所述文件为文件容量小于纠删码分块存储容量的小文件;

判断模块202,用于接收所述元数据服务器返回的所述存储节点地址,判断所述存储节点地址的个数是否为一个;

第二发送模块203,用于若是,向所述存储节点地址对应的存储节点发送第二读取请求,以使所述存储节点根据所述第二读取请求返回文件数据;

解析模块204,用于对所述文件数据进行解析操作,得出所述文件。

可选地,还包括

第三发送模块,用于若否,向多个所述存储节点地址对应的多个所述存储节点发送所述第二读取请求,以使主存储节点获取所述文件数据,并对所述文件数据进行解析操作,得出所述文件;

接收模块,用于接收所述主存储节点返回的所述文件。

可选地,所述第一发送模块包括:

发送单元,用于向所述元数据服务器发送包含所需读取所述文件的所述文件信息的所述第一读取请求,以使所述元数据服务器根据所述文件信息以及预记录的分块信息,寻找所述文件对应的存储节点地址;

其中,所述分块信息为所述元数据服务器在将所述文件数据存储至所述存储节点时所记录的各个存储节点的信息。

本发明实施例所提供的文件读取的装置,通过向元数据服务器发送包含所需读取文件的文件信息的第一读取请求,以使上述元数据服务器根据上述文件信息寻找上述文件对应的存储节点地址,其中,上述文件为文件容量小于纠删码分块存储容量的小文件;接收上述元数据服务器返回的上述存储节点地址,判断上述存储节点地址的个数是否为一个;若是,向上述存储节点地址对应的存储节点发送第二读取请求,以使上述存储节点根据上述第二读取请求返回文件数据;对上述文件数据进行解析操作,得出上述文件。当小文件存储在一个存储节点上时,直接从存储节点上读取所需的小文件,相较于传统的小文件读取方法,其省去了主存储节点搜集解析数据的过程,使得小文件读取速率较高。可以看出,该装置有利于提高小文件的读取速率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的文件读取的方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1