一种分布式文件系统中的并发写入方法及装置的制作方法

文档序号:6364926阅读:241来源:国知局
专利名称:一种分布式文件系统中的并发写入方法及装置的制作方法
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种分布式文件系统中的并发写入方法及装置。
背景技术
随着互联网和多媒体产业的迅猛发展,海量的媒体文件存储对存储技术和系统提出了更高的要求。为保证高可靠性、大容量和性价比,IT厂商和互联网服务商通常采用分布式文件系统来存储数据。分布式文件系统采用冗余存储的方式来保证存储数据的可靠性,以高可靠软件来弥补硬件的不可靠,从而提供廉价可靠的海量分布式存储和计算系统。如图I所示,在分布式文件系统中,一般主要包括元数据服务器、文件存储服务器和文件访问服务器,其中元数据服务器主要负责管理文件路径、文件名称等信息,以及文件数据块在文件存储服务器上的分布情况;文件存储服务器主要负责管理文件数据块在本地硬盘上的存储,通常是在硬盘上创建本地文件系统,然后将数据块作为文件保存在本地硬盘上;文件访问服务器(即客户端)负责提供用户访问接口,通过与元数据服务器交互元数据信息,以及与文件存储服务器交互数据块信息,为用户提供文件访问服务。在上述的实现模式下,分布式文件系统的性能常常受到本地文件系统性能的很大影响。其原因在于,本地文件系统在进行数据块的文件存储时,虽然可以保证文件名称的连续分配,但不能保证数据块文件在硬盘扇区的连续存放。一般来说,对硬盘扇区的随机读写性能很差,而顺序读写性能很好。综上所述,当分布式文件系统提供文件并发写入时,如何控制文件存储服务器上并发写入数据块的分布连续,以提升文件存储服务器上硬盘的写入速度,是现有技术中急需解决的技术问题。

发明内容
本发明解决的技术问题是提供一种分布式文件系统中的并发写入方法及装置,能够大幅提升分布式文件系统的文件并发写入性能。为解决上述技术问题,本发明提供了一种分布式文件系统中的并发写入方法,元数据服务器维护文件存储服务器的存储资源信息;所述元数据服务器接收到多个文件访问服务器并发的写入请求时,根据维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址。进一步地,所述方法还包括所述元数据服务器将为所述并发写入的数据分配的相邻的存储地址包含在元数据信息中发送给文件存储服务器;所述文件存储服务器接收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中;并根据所述元数据信息中包含的所述存储地址对所述数据块写入队列中的数据块进行排序,待满足写入条件时,将所述数据块写入队列中存储地址相邻的数据块依序写入硬盘。进一步地,所述存储资源信息,包括文件存储服务器信息,文件存储服务器的硬盘信息以及硬盘物理块信息;所述元数据服务器为所述并发写入的数据分配的所述相邻的存储地址,具体为同一个文件存储服务器的同一个硬盘中的连续硬盘物理块地址。进一步地,所述满足写入条件,具体包括 对所述数据块写入队列中的数据块进行排序时,若存储地址相邻的数据块达到预先设定的数目阈值、或者超出预先设定的时间间隔,则判定满足写入条件。进一步地,所述元数据服务器维护文件存储服务器的存储资源信息,具体包括对同一个硬盘上的空闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照所包含的空闲硬盘物理块的数目进行降序排列。进一步地,所述元数据服务器为所述并发写入的数据分配相邻的存储地址,包括从包含的空闲硬盘物理块数目最多的地址簇中选取连续的硬盘物理块地址。进一步地,所述元数据服务器维护文件存储服务器的存储资源信息,还包括当硬盘上的硬盘物理块释放时,所述元数据服务器对空闲硬盘物理块和地址簇进行更新。此外,本发明还提供了一种分布式文件系统中的并发写入装置,所述装置包括元文件服务器中的存储资源管理模块和并发写入处理模块,其中所述存储资源管理模块用于,维护文件存储服务器的存储资源信息;所述并发写入处理模块用于,接收到多个文件访问服务器并发的写入请求时,根据所述存储资源管理模块维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址。进一步地,所述装置还包括文件存储服务器中的数据块写入模块,所述并发写入处理模块还用于,将为所述并发写入的数据分配的相邻的存储地址包含在元数据信息中发送给所述文件存储服务器;所述数据块写入模块用于,接收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中;并根据所述元数据信息中包含的所述存储地址对所述数据块写入队列中的数据块进行排序,待满足写入条件时,将所述数据块写入队列中存储地址相邻的数据块依序写入硬盘。进一步地,所述存储资源管理模块用于,维护如下存储资源信息文件存储服务器信息,文件存储服务器的硬盘信息以及硬盘物理块信息;所述并发写入处理模块用于,为所述并发写入的数据分配的所述相邻的存储地址,包括同一个文件存储服务器的同一个硬盘中的连续硬盘物理块地址。进一步地,所述数据块写入模块用于,对所述数据块写入队列中的数据块进行排序时,若存储地址相邻的数据块达到预先设定的数目阈值、或者超出预先设定的时间间隔,则判定满足写入条件。进一步地,所述存储资源管理模块用于,按照以下方式维护文件存储服务器的存储资源信息对同一个硬盘上的空闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照所包含的硬盘物理块的数目进行降序排列;以及,当硬盘上的硬盘物理块释放时,对空闲硬盘物理块和地址簇进行更新;所述并发写入处理模块用于,在为所述并发写入的数据分配相邻的存储地址时,从包含的空闲硬盘物理块数目最多的地址簇中选取连续的硬盘物理块地址。本发明所提供的一种分布式文件系统中基于裸盘方式提升文件并发写入性能的方法及装置,通过将并发且分散的文件访问客户端上用户请求写入的文件数据块存放到单个硬盘的连续扇区中,使得这些数据块可以高速地写入硬盘,通过“分布式写文件,集中式写入硬盘”的方式,实现硬盘连续读写性能的飞跃,使得文件并发写入性能得到显著提升。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I为分布式文件系统中并发写入处理的示意图;图2为本发明实施例的分布式文件系统中的并发写入装置的示意框图。
具体实施例方式本实施方式提供了一种分布式文件系统中的并发写入方法,具体采用如下技术方案元数据服务器维护各文件存储服务器的存储资源信息;当元数据服务器收到并发写入请求,即多个文件访问服务器在设定的一个较短的时间内同时发起多个数据写入请求时,根据维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址(也即存储位置)。其中,所述存储资源信息,包括文件存储服务器信息,硬盘信息,以及硬盘物理块信息。其中,所述文件存储服务器信息包括各文件存储服务器的信息,按照文件存储服务器的网络地址进行标识;硬盘信息按照硬盘序列号进行标识;硬盘物理块信息按照硬盘物理块编号进行标识。进一步地,所述元数据服务器为所述并发写入的数据分配的所述相邻的存储地址,是指同一个文件存储服务器的同一个硬盘中的连续硬盘物理块。进一步地,所述元数据服务器维护各文件存储服务器的存储资源信息,具体包括对同一个硬盘上的空闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照包含的空闲硬盘物理块的数目进行降序排列。进一步地,所述元数据服务器维护各文件存储服务器的存储资源信息,还包括当硬盘上的硬盘物理块释放时,所述元数据服务器对空闲硬盘物理块和地址簇进行更新。进一步地,所述文件存储服务器根据所述元数据服务器的元数据信息,在收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中,并对所述数据块写入队列中的数据块根据待写入的硬盘物理块地址进行排序;待满足写入条件时,将硬盘物理块地址连续的数据块先写入硬盘中。具体地,写入条件可以包括以下实现方式其一,当并发写入较多,排序后当连续物理地址的数据块达到预先设定的数目阈值时,判定满足写入条件;其二,当并发写入较少,排序后超过预先设定的时间间隔,即使连续物理地址的数据块仍未达到预先设定的数目阀值,也判定满足写入条件,进行写入。 此外,本实施方式还提供一种分布式文件系统中的并发写入系统,包括元数据服务器、文件存储服务器和文件访问服务器等。其中所述元数据服务器,用于负责管理分布式文件系统中的文件元数据信息,包括文件目录/文件名,以及文件数据块在存储服务器上的分布信息(即文件数据块在存储服务器的硬盘中的存储位置信息)。并对空闲硬盘物理块按照连续性进行组织,当多个客户端用户同时发起文件写操作的时候,尽量将为各个客户端分配的数据块存放到同一个存储服务器的同一个硬盘的相邻硬盘物理块中。所述文件存储服务器,用于根据元数据服务器发送的元数据信息,管理文件数据块的在硬盘上的存取位置,并与文件访问服务器进行数据块传输。其中,与现有技术不同的是,本实施方式中,文件存储服务器在存储文件数据块时,在硬盘上不再创建本地文件系统,而是采用裸盘方式管理方法,每次操作的硬盘物理块大小与文件数据块大小一致。因为,如果仍在硬盘上创建本地文件系统,则无法保证数据块在硬盘扇区的连续存放。此外,当文件存储服务器收到文件访问服务器发送的数据块的时候,并不立刻将该数据块写入硬盘物理块,而是把数据块先缓存到数据块写入队列;然后对写入队列的数据块根据待写入的硬盘物理块地址进行排序,优先将硬盘物理地址顺序排列的数据块写入硬盘。所述文件访问服务器,用于负责提供访问接口给用户,提供文件服务功能。当用户写文件数据的时候,与元数据服务器交互获取文件数据块待存放的文件存储服务器信息,然后发送数据块给文件存储服务器完成数据块的传输。为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图I所示,本发明的分布式文件系统中,主要包括元数据服务器、文件存储服务器和文件访问服务器等。其中元数据服务器,用于负责管理分布式文件系统中的文件元数据信息,包括文件目录/文件名,文件数据块在文件存储服务器上的分布。其中对存储资源进行了三级管理第一级为文件存储服务器,按照文件存储服务器的网络地址进行标识;第二级为硬盘,按照硬盘序列号进行标识;第三级为硬盘物理块,为扇区的整数倍,具体可以与文件数据块大小(文件数据块大小固定)一致,按照硬盘物理块编号进行标识。同时,对同一个硬盘上的空闲硬盘物理块按照连续性进行组织地址连续的形成一个地址簇,按顺序排列;同时将间隔的地址簇也集合起来,按照物理块的数目降序排列。当元数据服务器申请硬盘物理块存放数据的时候,优先从空闲硬盘物理块数目最多的地址簇选取,并进行连续分配。当释放硬盘物理块的时候,则对空闲硬盘物理块进行管理,进行必要的地址簇合并处理等。例如,当三个客户端用户同时发起文件A、文件B、文件C的写操作的时候,元数据服务器选择簇合适的物理地址簇Pa-Ph,将这些并发操作使用的数据块存放到同一个存储服务器的同一个硬盘的相邻硬盘物理块中。所述文件存储服务器,用于根据主控服务器元数据信息,管理文件数据块的在硬盘上的存取位置,并与文件访问服务器进行数据块传输。文件数据块在存储服务器上采用裸盘方式管理方法,每次操作的硬盘物理块大小与文件数据块大小一致。当文件存储服务器收到文件访问服务器发送的数据块的时候,并不立刻将该数据块写入硬盘物理块,而是先将数据块缓存到数据块写入队列;然后对数据块写入队列中的数据块根据元数据信息中的待写入的硬盘物理块地址进行排序,优先将硬盘物理地址顺序排列的数据块写入磁盘。例如,当文件A的三个数据块(Al,A2,A3)、文件B的二个数据块(B1、B2)、文件C的三个数据块(C1、C2、C3)随机到达文件存储服务器后,并没有立刻被单独写入硬盘,而是等到满足写入条件时,将这三个文件的八个数据块一起写入到八个连续的硬盘物理块Pa-Ph中。例 如,当并发写入较多,排序后当连续物理地址的数据块达到预先设定的数目阈值时,满足写入条件;或者,当并发写入较少,排序后超过预先设定的时间间隔,则即使连续物理地址的数据块仍未达到预先设定的数目阀值,也判定满足写入条件。所述文件访问服务器,用于负责提供访问接口给用户,提供文件服务功能。当用户写文件数据的时候,与元数据服务器交互获取文件数据块待存放的文件存储服务器信息,然后发送数据块给文件存储服务器完成数据块的传输。例如,三个文件访问服务器上分别创建了文件A、文件B、文件C,同时都提交到了元数据服务器进行处理。综上所述,本发明在分布式文件系统中,对于文件存储服务器上的文件数据块采用了裸盘管理的方法和对数据块写入队列采用了缓存排序的方法,对于元数据服务器上不同文件同时请求的数据块进行了在硬盘物理地址级别连续分配的方法,达到了分布式写入文件、集中式写入硬盘的效果,充分适应了硬盘顺序写入性能高的特性,使得分布式文件系统中文件并发写入的性能得到显著提升。如图2所示,本发明实施例的分布式文件系统中的并发写入装置,主要包括元文件服务器中的存储资源管理模块和并发写入处理模块,其中所述存储资源管理模块用于,维护文件存储服务器的存储资源信息;所述并发写入处理模块用于,接收到多个文件访问服务器并发的写入请求时,根据所述存储资源管理模块维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址。进一步地,上述装置还包括文件存储服务器中的数据块写入模块,所述并发写入处理模块还用于,将为所述并发写入的数据分配的相邻的存储地址包含在元数据信息中发送给所述文件存储服务器;所述数据块写入模块用于,接收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中;并根据所述元数据信息中包含的所述存储地址对所述数据块写入队列中的数据块进行排序,待满足写入条件时,将所述数据块写入队列中存储地址相邻的数据块依序写入硬盘。进一步地,所述存储资源管理模块用于,维护如下存储资源信息文件存储服务器信息,文件存储服务器的硬盘信息以及硬盘物理块信息;所述并发写入处理模块用于,为所述并发写入的数据分配的所述相邻的存储地址,包括同一个文件存储服务器的同一个硬盘中的连续硬盘物理块地址。进一步地,所述数据块写入模块用于,对所述数据块写入队列中的数据块进行排序时,若存储地址相邻的数据块达到预先设定的数目阈值、或者超出预先设定的时间间隔,则判定满足写入条件。进一步地,所述存储资源管理模块用于,按照以下方式维护文件存储服务器的存储资源信息对同一个硬盘上的空 闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照所包含的硬盘物理块的数目进行降序排列;以及,当硬盘上的硬盘物理块释放时,对空闲硬盘物理块和地址簇进行更新;所述并发写入处理模块用于,在为所述并发写入的数据分配相邻的存储地址时,从包含的空闲硬盘物理块数目最多的地址簇中选取连续的硬盘物理块地址。以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
权利要求
1.一种分布式文件系统中的并发写入方法,其特征在于,元数据服务器维护文件存储服务器的存储资源信息;所述元数据服务器接收到多个文件访问服务器并发的写入请求时,根据维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址。
2.如权利要求I所述的方法,其特征在于,所述方法还包括所述元数据服务器将为所述并发写入的数据分配的相邻的存储地址包含在元数据信息中发送给文件存储服务器;所述文件存储服务器接收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中;并根据所述元数据信息中包含的所述存储地址对所述数据块写入队列中的数据块进行排序,待满足写入条件时,将所述数据块写入队列中存储地址相邻的数据块依序写入硬盘。
3.如权利要求I或2所述的方法,其特征在于,所述存储资源信息,包括文件存储服务器信息,文件存储服务器的硬盘信息以及硬盘物理块信息;所述元数据服务器为所述并发写入的数据分配的所述相邻的存储地址,具体为同一个文件存储服务器的同一个硬盘中的连续硬盘物理块地址。
4.如权利要求2所述的方法,其特征在于,所述满足写入条件,具体包括对所述数据块写入队列中的数据块进行排序时,若存储地址相邻的数据块达到预先设定的数目阈值、或者超出预先设定的时间间隔,则判定满足写入条件。
5.如权利要求3所述的方法,其特征在于,所述元数据服务器维护文件存储服务器的存储资源信息,具体包括对同一个硬盘上的空闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照所包含的空闲硬盘物理块的数目进行降序排列。
6.如权利要求5所述的方法,其特征在于,所述元数据服务器为所述并发写入的数据分配相邻的存储地址,包括从包含的空闲硬盘物理块数目最多的地址簇中选取连续的硬盘物理块地址。
7.如权利要求5所述的方法,其特征在于,所述元数据服务器维护文件存储服务器的存储资源信息,还包括当硬盘上的硬盘物理块释放时,所述元数据服务器对空闲硬盘物理块和地址簇进行更新。
8.一种分布式文件系统中的并发写入装置,其特征在于,所述装置包括元文件服务器中的存储资源管理模块和并发写入处理模块,其中所述存储资源管理模块用于,维护文件存储服务器的存储资源信息;所述并发写入处理模块用于,接收到多个文件访问服务器并发的写入请求时,根据所述存储资源管理模块维护的所述存储资源信息为所述并发写入的数据分配相邻的存储地址。
9.如权利要求8所述的装置,其特征在于,所述装置还包括文件存储服务器中的数据块写入模块,所述并发写入处理模块还用于,将为所述并发写入的数据分配的相邻的存储地址包含在元数据信息中发送给所述文件存储服务器;所述数据块写入模块用于,接收到文件访问服务器发送的请求写入的数据块时,缓存到数据块写入队列中;并根据所述元数据信息中包含的所述存储地址对所述数据块写入队列中的数据块进行排序,待满足写入条件时,将所述数据块写入队列中存储地址相邻的数据块依序写入硬盘。
10.如权利要求8或9所述的装置,其特征在于,所述存储资源管理模块用于,维护如下存储资源信息文件存储服务器信息,文件存储服务器的硬盘信息以及硬盘物理块信息;所述并发写入处理模块用于,为所述并发写入的数据分配的所述相邻的存储地址,包括同一个文件存储服务器的同一个硬盘中的连续硬盘物理块地址。
11.如权利要求9所述的装置,其特征在于,所述数据块写入模块用于,对所述数据块写入队列中的数据块进行排序时,若存储地址相邻的数据块达到预先设定的数目阈值、或者超出预先设定的时间间隔,则判定满足写入条件。
12.如权利要求10所述的装置,其特征在于,所述存储资源管理模块用于,按照以下方式维护文件存储服务器的存储资源信息对同一个硬盘上的空闲硬盘物理块,将地址连续的按顺序排列,形成地址簇;并对间隔的地址簇按照所包含的硬盘物理块的数目进行降序排列;以及,当硬盘上的硬盘物理块释放时,对空闲硬盘物理块和地址簇进行更新;所述并发写入处理模块用于,在为所述并发写入的数据分配相邻的存储地址时,从包含的空闲硬盘物理块数目最多的地址簇中选取连续的硬盘物理块地址。
全文摘要
本发明公开了一种分布式文件系统中的并发写入方法及装置,元数据服务器维护文件存储服务器的存储资源信息;元数据服务器接收到多个文件访问服务器并发的写入请求时,根据维护的存储资源信息为并发写入的数据分配相邻的存储地址。本发明通过将并发且分散的文件访问客户端上并发写入的文件数据块存放到单个硬盘的连续扇区中,使得并发写入的文件数据块可以高速连续地写入硬盘,从而使得文件并发写入性能得到显著提升。
文档编号G06F17/30GK102622412SQ20121003701
公开日2012年8月1日 申请日期2012年2月17日 优先权日2011年11月28日
发明者丁毅, 王魏强 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1