分布式文件系统访问方法、元数据服务器及客户端的制作方法

文档序号:7721420阅读:153来源:国知局
专利名称:分布式文件系统访问方法、元数据服务器及客户端的制作方法
技术领域
本发明实施例涉及分布式文件系统领域,尤其涉及一种分布式文件系统访问方 法、元数据服务器及客户端。
背景技术
对象存储文件系统是一种将数据通路(数据读或写)和控制通路(元数据)分 离,且基于对象存储设备(Object-based Storage Device,简称0SD)构建的分布式存储系 统,例如“Lustre”系统等。该系统主要包括客户端和元数据服务器(Metadata Server,简 称MDQ。其中,多台MDS采用集群式运行模式,并将元数据根据目录树区划成若干片区,把 各个片区按照一定的分区策略分别分配到各个MDS上,客户端根据已知的元数据的片区与 MDS的对应关系,到相应的MDS上读取所需的元数据。然而,现有元数据的分区策略非常复 杂,并且不能根据业务的繁忙程度进行动态调整,使得某些MDS可能由于事务过于繁忙而 成为热点,当热点出现时,现有对象存储文件系统会将一部分事务均衡到其他MDS上,从而 会造成客户端对元数据的一次访问请求需要多个MDS协同完成,降低了运行效率,并且也 会增大处理延时。

发明内容
本发明实施例提供一种分布式文件系统访问方法、元数据服务器及客户端,用以 解决采用元数据分区策略时造成的复杂性高、运行效率低和处理延时大的问题。本发明实施例提供一种分布式文件系统访问方法,其中包括元数据服务器接收客户端发送的元数据访问请求,所述元数据服务器是在元数据 服务器集群中被访问次数最少的元数据服务器;根据所述元数据访问请求访问相应的元数据;更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域信息中的 所述元数据服务器的被访问次数。本发明另一实施例提供一种分布式文件系统访问方法,其中包括客户端按照预设的时间间隔,周期性地获取元数据服务器中保存的服务器域信 息;根据获取到的所述服务器域信息对所述客户端中保存的客户端域信息进行更新, 所述客户端域信息包括在元数据服务器集群中的每个元数据服务器的被访问次数; 根据所述每个元数据服务器的被访问次数,向被访问次数最少的元数据服务器发 送元数据访问请求。本发明又一实施例提供一种元数据服务器,该元数据服务器是在元数据服务器集 群中,在被访问次数最少的元数据服务器,该元数据服务器包括请求接收模块,用于接收客户端发送的元数据访问请求;访问模块,用于根据所述请求接收模块接收到的所述元数据访问请求访问相应的元数据;更新模块,用于更新所述元数据服务器集群中的所有元数据服务器中保存的服务 器域信息中的所述元数据服务器的被访问次数。本发明再一实施例提供一种客户端,其中包括获取模块,用于按照预设的时间间隔,周期性地获取元数据服务器中保存的服务 器域信息;域信息更新模块,用于根据获取模块获取到的所述服务器域信息对所述客户端中 保存的客户端域信息进行更新,所述客户端域信息包括在元数据服务器集群中的每个元 数据服务器的被访问次数;请求发起模块,用于根据域信息更新模块更新后的客户端域信息中的所述每个元 数据服务器的被访问次数,向被访问次数最小的元数据服务器发送元数据访问请求。本发明实施例没有采用现有技术中的元数据分区策略,从而在一定程度上避免了 进行元数据分区带来的复杂性。另外,由元数据服务器集群中被访问次数最少的元数据服 务器处理元数据访问请求,能够实现均勻的负载分担,在一定程度上能够避免出现某个元 数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而 提高了运行效率,降低了处理延时,另外,元数据服务器的增减也不会影响对元数据访问请 求的处理,从而减少了元数据服务器与客户端之间的偶合性。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他 的附图。图1为本发明所述分布式文件访问方法实施例一的流程图;图2为本发明所述分布式文件访问方法实施例二的流程图;图3为本发明所述分布式文件访问方法实施例三的流程图;图4为本发明所述分布式文件访问方法实施例四的流程图;图5为本发明所述元数据服务器实施例的结构示意图;图6为图5中访问模块的具体结构示意图;图7为本发明所述客户端实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明所述分布式文件访问方法实施例一的流程图,如图所示,包括如下 步骤步骤101,元数据服务器接收客户端发送的元数据访问请求,所述元数据服务器是在元数据服务器集群中被访问次数最少的元数据服务器。本实施例将接收到的客户端发送的元数据访问请求,分配给元数据服务器集群中 被访问次数最少的元数据服务器;该元数据服务器是在元数据服务器集群中被访问次数最少的唯一个元数据服务 器,或者是在元数据服务器集群中被访问次数最少的多个元数据服务器中序号最小的一个 元数据服务器;如果是分配给元数据服务器集群中被访问次数最少的多个元数据服务器中序号 最小的一个元数据服务器,则需要预先将元数据服务器集群中的所有元数据服务器编上序号。步骤102,根据所述元数据访问请求访问相应的元数据。步骤103,更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域 信息中的所述元数据服务器的被访问次数。其中,服务器域信息是指保存在所述元数据服务器集群中的每个元数据服务器中 的信息,该信息包含有每个元数据服务器的被访问次数,当一个元数据服务器接收到一个 元数据访问请求后,可以将该元数据服务器的被访问次数加1,同时,当一个元数据服务器 中保存的服务器域信息的被访问次数进行更新后,元数据服务器集群中的其他元数据服务 器也要进行同步更新,以保持服务器域信息的一致性。此处需要说明的是,步骤103与步骤102没有必然的顺序关系,对被访问次数进行 的更新可以在访问相应的元数据之前进行,也可以在访问相应的元数据之后进行。本实施 例对此并没有进行限定。本发明实施例没有采用现有技术中的元数据分区策略,从而在一定程度上避免了 进行元数据分区带来的复杂性。另外,由元数据服务器集群中被访问次数最少的元数据服 务器处理元数据访问请求,能够实现均勻的负载分担,在一定程度上能够避免出现某个元 数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而 提高了运行效率,降低了处理延时,另外,元数据服务器的增减也不会影响对元数据访问请 求的处理,从而减少了元数据服务器与客户端之间的偶合性。图2为本发明所述分布式文件访问方法实施例二的流程图,如图所示,包括如下 步骤步骤201,元数据服务器接收客户端发送的元数据查询(Lookup)请求,所述元数 据服务器是在元数据服务器集群中,被访问次数最少的元数据服务器;该元数据服务器是在元数据服务器集群中被访问次数最少的唯一个元数据服务 器,或者是在元数据服务器集群中被访问次数最少的多个元数据服务器中序号最小的一个 元数据服务器;如果是分配给元数据服务器集群中被访问次数最少的多个元数据服务器中序号 最小的一个元数据服务器,则需要预先将元数据服务器集群中的所有元数据服务器编上序号。步骤202,在全局缓存装置中查找相应的元数据。其中,全局缓存装置可以为固态硬盘(solid state disk,简称SSD)。SSD是一种 用固态电子存储芯片阵列而制成的硬盘磁盘,与采用磁碟扇区方式实现数据存储的磁盘相
6比,存取速度快,从而能够满足元数据缓存的需要;而与内存相比,断电后SSD中的数据不 会丢失,从而能够保证元数据的安全。步骤203,将查找到的元数据回复给所述客户端。步骤204,更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域 信息中的所述元数据服务器的被访问次数。通过本实施例所述方法,使元数据服务器实现了对元数据查询请求的处理,由于 所有元数据均保存在全局缓存装置中,使各个元数据服务可以实现共享存储,从而能够在 最大程度上减少元数据的冗余。在实际应用中,可以在每个元数据服务器上部署基于红帽子(Red Hate)操作系统 的谷歌文件系统(Google File System,简称GFS),使得各个MDS均能够以带内方式并发 访问整个存储后端。其中,带内是指元数据服务器访问某个存储设备时不需要经过中间节 点。例如,在本实施例中,元数据服务器在访问SSD时可以直接进行访问,而不需要经过其 他中间节点的中转。图3为本发明所述分布式文件访问方法实施例三的流程图,如图所示,包括如下 步骤步骤301,元数据服务器接收客户端发送的元数据更新(Update)请求,所述元数 据服务器是在元数据服务器集群中被访问次数最少的元数据服务器。步骤302,在全局缓存装置中查找待更新元数据。其中,全局缓存装置可以为SSD。步骤303,当所述待更新元数据的全局锁状态为开锁状态时,根据所述元数据更新 请求对所述待更新元数据进行更新。其中,全局锁是对元数据的保护机制,当有多个元数据服务器需要对同一个元数 据进行更新操作时,通过将全局锁状态设置为闭锁状态,使得在同一时刻只允许一个元数 据服务器对该元数据进行更新,以避免造成数据更新混乱。当所述全局锁状态为开锁状态 时表明此刻并没有其他元数据服务器正在对该元数据进行更新,因此,允许对该元数据进 行更新。另外,如果该全局锁状态为闭锁状态,则表明当前不允许对该元数据进行更新,此 时,可以延迟预设时间后继续判断所述待更新元数据的全局锁状态,直至所述全局锁状态 为开锁状态时,再根据所述元数据更新请求对所述待更新元数据进行更新。步骤304,更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域 信息中的所述元数据服务器的被访问次数。通过本实施例所述方法,使元数据服务器实现了对元数据更新请求的处理,由于 所有元数据均保存在全局缓存装置中,使各个元数据服务可以实现共享存储,从而能够在 最大程度上减少元数据的冗余。另外,在对所述待更新元数据进行更新之后,还可以将更新后的元数据备份到磁 盘阵列中。通过将SSD中的元数据备份到磁盘阵列中,例如可以备份一份、两份或者更多份, 当SSD发生故障或者SSD中的某些元数据损坏时,可以由相应的磁盘阵列临时接管SSD作 为全局缓存,直到SSD恢复正常,从而可以进一步提高元数据的安全性。
此处需要说明的是,当采用上述元数据备份机制时,由于SSD的存取速度快,因 此,元数据服务器需要按照访问顺序,先访问SSD,再访问磁盘阵列,以避免由于备份不及时 而造成的元数据一致性错误。图4为本发明所述分布式文件访问方法实施例四的流程图,如图所示,包括如下 步骤步骤401,客户端按照预设的时间间隔,周期性地获取元数据服务器中保存的服务 器域信息。其中,服务器域信息是指保存在所述元数据服务器集群中的每个元数据服务器中 的信息,该信息包含有每个元数据服务器的被访问次数,当一个元数据服务器接收到一个 元数据访问请求后,可以将该元数据服务器的被访问次数加1,同时,当一个元数据服务器 中保存的服务器域信息的被访问次数进行更新后,元数据服务器集群中的其他元数据服务 器也要进行同步更新,以保持服务器域信息的一致性;由于除了当前客户端以外,还有其他客户端向元数据服务器发送数据访问请求, 也会对元数据服务器中的服务器域信息进行更新,所以当前客户端需要周期性地获取元数 据服务器中保存的服务器域信息。步骤402,根据获取到的所述服务器域信息对所述客户端中保存的客户端域信息 进行更新,所述客户端域信息包括在元数据服务器集群中的每个元数据服务器的被访问 次数。步骤403,根据所述每个元数据服务器的被访问次数,向被访问次数最少的元数据 服务器发送元数据访问请求;需要说明的是,被访问次数最少的元数据服务器可以是在元数据服务器集群中被 访问次数最少的唯一个元数据服务器,或者是在元数据服务器集群中被访问次数最少的多 个元数据服务器中序号最小的一个元数据服务器;在另一个具体实施例中,该服务器域信息还可以包括元数据服务器集群中的每个 元数据服务器的序号;当被访问次数最少的元数据服务器有至少两个时,向序号最小的元数据服务器发 起元数据访问请求。本发明实施例没有采用现有技术中的元数据分区策略,从而在一定程度上避免了 进行元数据分区带来的复杂性。另外,由元数据服务器集群中被访问次数最少的元数据服 务器处理元数据访问请求,能够实现均勻的负载分担,在一定程度上能够避免出现某个元 数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而 提高了运行效率,降低了处理延时,另外,元数据服务器的增减也不会影响对元数据访问请 求的处理,从而减少了元数据服务器与客户端之间的偶合性。在上述实施例中,该元数据访问请求可以包括元数据查询请求或者元数据更新请 求,当该元数据访问请求为元数据更新请求时,则由元数据服务器根据前述实施例三所述 流程对相应的元数据进行更新操作;当该元数据访问请求为元数据更查询请求时,则由元 数据服务器根据前述实施例二所述流程对相应的元数据进行查询操作,并可以进一步包括 如下步骤步骤404,接收由所述元数据服务器根据所述元数据查询请求在全局缓存装置中查找到的相应的元数据。图5为本发明所述元数据服务器实施例的结构示意图,如图所示,该元数据服务 器10是在元数据服务器集群中被访问次数最少的元数据服务器,其中,该元数据服务器10 包括请求接收模块11、访问模块12及更新模块13 ;请求接收模块11,用于接收客户端发送的元数据访问请求;本实施例将接收到的客户端发送的元数据访问请求,分配给元数据服务器集群中 被访问次数最少的元数据服务器;该元数据服务器是在元数据服务器集群中被访问次数最少的唯一个元数据服务 器,或者是在元数据服务器集群中被访问次数最少的多个元数据服务器中序号最小的一个 元数据服务器;如果是分配给元数据服务器集群中被访问次数最少的多个元数据服务器中序号 最小的一个元数据服务器,则需要预先将元数据服务器集群中的所有元数据服务器编上序号。访问模块12,用于根据请求接收模块11接收到的所述元数据访问请求访问相应 的元数据;更新模块13,用于更新所述元数据服务器集群中的所有元数据服务器中保存的服 务器域信息中的所述元数据服务器的被访问次数。其中,服务器域信息是指保存在所述元数据服务器集群中的每个元数据服务器中 的信息,该信息包含有每个元数据服务器的被访问次数,当一个元数据服务器接收到一个 元数据访问请求后,可以将该元数据服务器的被访问次数加1,同时,当一个元数据服务器 中保存的服务器域信息的被访问次数进行更新后,元数据服务器集群中的其他元数据服务 器也要进行同步更新,以保持服务器域信息的一致性。本发明实施例没有采用现有技术中的元数据分区策略,从而在一定程度上避免了 进行元数据分区带来的复杂性。另外,由元数据服务器集群中被访问次数最少的元数据服 务器处理元数据访问请求,能够实现均勻的负载分担,在一定程度上能够避免出现某个元 数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而 提高了运行效率,降低了处理延时,另外,元数据服务器的增减也不会影响对元数据访问请 求的处理,从而减少了元数据服务器与客户端之间的偶合性。在上述实施例中,该数据访问请求可以包括数据查询请求或者数据更新请求;具体地,如图6所示,访问模块12包括元数据查询单元1201和元数据更新单元 1202 ;当所述元数据访问请求为元数据查询请求时,元数据查询单元1201在全局缓存 装置中查找相应的元数据,将所述查找到的元数据发送给所述客户端;当所述元数据访问 请求为元数据更新请求时,元数据更新单元1202在全局缓存装置中查找待更新元数据,当 所述待更新元数据的全局锁状态为开锁状态时,根据所述元数据更新请求对所述待更新元 数据进行更新。图7为本发明所述客户端实施例的结构示意图,如图所示,该客户端20包括获取 模块21、域信息更新模块22及请求发起模块23 ;获取模块21,用于按照预设的时间间隔,周期性地获取元数据服务器中保存的服务器域信息;其中,服务器域信息是指保存在所述元数据服务器集群中的每个元数据服务器中 的信息,该信息包含有每个元数据服务器的被访问次数,当一个元数据服务器接收到一个 元数据访问请求后,可以将该元数据服务器的被访问次数加1,同时,当一个元数据服务器 中保存的服务器域信息的被访问次数进行更新后,元数据服务器集群中的其他元数据服务 器也要进行同步更新,以保持服务器域信息的一致性;由于除了当前客户端以外,还有其他客户端向元数据服务器发送数据访问请求, 也会对元数据服务器中的服务器域信息进行更新,所以当前客户端需要周期性地获取元数 据服务器中保存的服务器域信息。域信息更新模块22,用于根据获取模块21获取到的所述服务器域信息对所述客 户端20中保存的客户端域信息进行更新,所述客户端域信息包括在元数据服务器集群中 的每个元数据服务器的被访问次数;请求发起模块23,用于根据域信息更新模块22更新后的客户端域信息中的所述 每个元数据服务器的被访问次数,向被访问次数最小的元数据服务器发送元数据访问请 求;需要说明的是,被访问次数最少的元数据服务器可以是在元数据服务器集群中被 访问次数最少的唯一个元数据服务器,或者是在元数据服务器集群中被访问次数最少的多 个元数据服务器中序号最小的一个元数据服务器;在另一个具体实施例中,该服务器域信息还可以包括元数据服务器集群中的每个 元数据服务器的序号;当被访问次数最少的元数据服务器有至少两个时,向序号最小的元数据服务器发 起元数据访问请求。本发明实施例没有采用现有技术中的元数据分区策略,从而在一定程度上避免了 进行元数据分区带来的复杂性。另外,由元数据服务器集群中被访问次数最少的元数据服 务器处理元数据访问请求,能够实现均勻的负载分担,在一定程度上能够避免出现某个元 数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而 提高了运行效率,降低了处理延时,另外,元数据服务器的增减也不会影响对元数据访问请 求的处理,从而减少了元数据服务器与客户端之间的偶合性。在上述实施例中,该元数据访问请求可以是元数据查询请求或者元数据更新请 求,当该元数据访问请求为元数据更新请求时,则由元数据服务器10根据前述实施例三所 述流程对相应的元数据进行更新操作;当该元数据访问请求为元数据更查询请求时,则由 元数据服务器10根据前述实施例二所述流程对相应的元数据进行查询操作,相应的,该客 户端20中还包括元数据接收模块M,用于当所述元数据访问请求为元数据查询请求时,接 收由所述元数据服务器10根据所述元数据查询请求在全局缓存装置中查找到的相应的元 数据。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种分布式文件系统访问方法,其特征在于,包括元数据服务器接收客户端发送的元数据访问请求,所述元数据服务器是在元数据服务 器集群中被访问次数最少的元数据服务器;根据所述元数据访问请求访问相应的元数据;更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域信息中的所述 元数据服务器的被访问次数。
2.根据权利要求1所述的方法,其特征在于,所述元数据访问请求包括元数据查询请 求或者元数据更新请求。
3.根据权利要求1所述的方法,其特征在于,当所述元数据访问请求为元数据查询请求时,所述根据所述元数据访问请求访问相应 的元数据包括在全局缓存装置中查找相应的元数据,将查找到的元数据发送给所述客户 端;当所述元数据访问请求为元数据更新请求时,所述根据所述元数据访问请求访问相应 的元数据包括在全局缓存装置中查找待更新元数据;当所述待更新元数据的全局锁状态 为开锁状态时,根据所述元数据更新请求对所述待更新元数据进行更新。
4.一种分布式文件系统访问方法,其特征在于,包括客户端按照预设的时间间隔,周期性地获取元数据服务器中保存的服务器域信息;根据获取到的所述服务器域信息对所述客户端中保存的客户端域信息进行更新,所述 客户端域信息包括在元数据服务器集群中的每个元数据服务器的被访问次数;根据所述每个元数据服务器的被访问次数,向被访问次数最少的元数据服务器发送元 数据访问请求。
5.根据权利要求4所述的分布式文件系统访问方法,其特征在于,所述元数据访问请 求包括元数据查询请求或者元数据更新请求。
6.根据权利要求4所述的分布式文件系统访问方法,其特征在于,还包括当所述元数据访问请求为元数据查询请求时,接收由所述元数据服务器根据所述元数 据查询请求在全局缓存装置中查找到的相应的元数据。
7.—种元数据服务器,其特征在于,所述元数据服务器是在元数据服务器集群中,被访 问次数最少的元数据服务器,包括请求接收模块,用于接收客户端发送的元数据访问请求;访问模块,用于根据所述请求接收模块接收到的所述元数据访问请求访问相应的元数据;更新模块,用于更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域 信息中的所述元数据服务器的被访问次数。
8.根据权利要求7所述的元数据服务器,其特征在于,所述访问模块包括元数据查询单元,用于当所述元数据访问请求为元数据查询请求时,在全局缓存装置 中查找相应的元数据,将所述查找到的元数据发送给所述客户端;元数据更新单元,用于当所述元数据访问请求为元数据更新请求时,在全局缓存装置 中查找待更新元数据;当所述待更新元数据的全局锁状态为开锁状态时,根据所述元数据 更新请求对所述待更新元数据进行更新。
9.一种客户端,其特征在于,包括获取模块,用于按照预设的时间间隔,周期性地获取元数据服务器中保存的服务器域 fn息;域信息更新模块,用于根据获取模块获取到的所述服务器域信息对所述客户端中保存 的客户端域信息进行更新,所述客户端域信息包括在元数据服务器集群中的每个元数据 服务器的被访问次数;请求发起模块,用于根据域信息更新模块更新后的客户端域信息中的所述每个元数据 服务器的被访问次数,向被访问次数最小的元数据服务器发送元数据访问请求。
10.根据权利要求9所述的客户端,其特征在于,还包括元数据接收模块,用于当所述 元数据访问请求为元数据查询请求时,接收由所述元数据服务器根据所述元数据查询请求 在全局缓存装置中查找到的相应的元数据。
全文摘要
本发明实施例涉及一种分布式文件系统访问方法、元数据服务器及客户端,其中方法包括元数据服务器接收客户端发送的元数据访问请求,所述元数据服务器是在元数据服务器集群中被访问次数最少的元数据服务器;根据所述元数据访问请求访问相应的元数据;更新所述元数据服务器集群中的所有元数据服务器中保存的服务器域信息中的所述元数据服务器的被访问次数。本发明实施例能够实现均匀的负载分担,在一定程度上能够避免出现某个元数据服务器成为热点时需要多个元数据服务器协同处理一个元数据访问请求的情况,从而提高了运行效率,降低了处理延时。
文档编号H04L29/08GK102117287SQ20091024418
公开日2011年7月6日 申请日期2009年12月30日 优先权日2009年12月30日
发明者刘镇涛 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1