一种数据处理方法及应用该方法的分布式文件系统的制作方法

文档序号:6356925阅读:134来源:国知局
专利名称:一种数据处理方法及应用该方法的分布式文件系统的制作方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法及应用该方法的分布 式文件系统。
背景技术
伴随因特网和科学计算而来的数据海量化趋势,很多因特网公司都已经面临TB 甚至PB级数据管理的挑战,如何灵活、高效、可靠地存储和处理海量数据已经成为一个现 实挑战。显然,任何基于单机的存储方式都是不合适的,因此存储必须是分布式存储管理方 案,而这种方案主要有两个并行数据库管理系统和分布式文件系统。前者需要专用昂贵的 硬件设备,管理软件一般都是商用的,因此软硬件开销比较大,部署、使用和维护需要非常 专业的人员参与,维护困难;扩展能力在几十到几百个节点之间,很难满足面向因特网的海 量化数据管理对扩展性的需求。而后者是能够部署在普通商业硬件的存储管理平台,以实 现硬件频繁出错的情况下仍然能够保证数据的高可靠性和可用性,这类系统有很好的开源 实现,软硬件开销比较小,部署、使用和维护难度也低得多;目前其扩展能力至少可以达到 4000多个服务节点。因此采用分布式文件系统作为面向因特网应用的数据底层管理系统已 经成为大势所趋,并且已有很多好的实际应用实例。这类文件系统将存储系统的管理节点 和存储节点分开,客户端首先通过一定的协议与管理节点联系,在管理节点的指导下直接 与存储节点进行数据交换,即所谓的带外访问模式,在这种模式下,只需动态地加入存储节 点就可以实现系统存储能力的水平扩展。系统的结构原理如图1所示,所有的元数据信息 和存储节点的状态信息都集中保存在管理节点。采用单管理节点的方式固然实现简单,但随着系统规模的增加,单管理节点会成 为系统的瓶颈,而且也会因为单点失效问题严重损害系统的可用性。

发明内容
有鉴于此,本发明提供一种数据处理方法及应用该方法的分布式文件系统,其具 体方案如下一种数据处理方法,应用于分布式文件系统,所述系统按照预设规则划分为多个 自治单元,每个自治单元设置有主管理节点和与所述主管理节点对应的从管理节点,所述 方法包括当所述主管理节点有效时,所述主管理节点接收客户端发送的数据请求,并将所 述请求转发给数据节点,以实现所述客户端与所述数据节点的数据交换,并将自身存储的 文件元数据信息同步到所述从管理节点,并与所述从管理节点维持周期性心跳通信;当所述主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管 理节点,所述从管理节点转换为当前主管理节点,接收客户端发送的数据请求,并将所述请 求转发给数据节点,以实现所述客户端与所述数据节点的数据交换。优选的,还包括
所述从管理节点将所述元数据信息作为检查点文件保存在自身磁盘中。优选的,还包括当所述主管理节点中的元数据进行更新时,更新信息在下一次心跳通信时同步到 所述从管理节点,所述从管理节点依据所述更新信息,形成新的检查点文件,并保存。优选的,所述从管理节点依据更新信息,形成新的检查点文件的过程包括保存所述更新信息;当所述保存的全部更新信息达到预设累计规模时,将所述全部更新信息更新到检 查点文件,形成新的检查点文件。优选的,所述从管理节点按照以下步骤判断所述主管理节点是否失效当所述数据节点在预先设定的时间阈值内没有收到所述主管理节点的周期性心 跳信号时,确定所述主管理节点失效,将自身存储的数据节点状态信息发送给从管理节占.
^ \\\ 从管理节点接收所述数据节点状态信息,确定所述主管理节点失效。优选的,所述从管理节点转换为当前主管理节点的步骤包括所述从管理节点根据当前保存的更新信息生成检查点文件,并复制到内存;设定自身为当前主管理节点。优选的,还包括当所述主管理节点恢复有效时,与所述当前主管理节点通过心跳信号进行通信, 请求接管服务;所述主管理节点同步所述当前主管理节点上的元数据信息和数据节点状态信 息;当所述元数据信息和数据节点状态信息完全同步后,所述当前主管理节点转换为 从管理节点,向数据节点发送主管理节点变更信息,将内存中的元数据信息持久化到磁盘, 生成检查点文件。优选的,所述系统按照文件系统中文件的命名空间划分为多个自治单元。优选的,划分后系统中文件路径以自治域+文件域的形式进行表示,所述自治域 表示文件系统根目录到自治单元的路径,所述文件域表示自治单元对应的管理节点到各个 文件的路径。优选的,所述管理节点以目录树的形式进行定位,所述管理节点对应目录数的叶 节点。一种分布式文件系统,包括客户端、数据节点、按照预设规则划分为多个自治单 元和对应每一自治单元设置的主管理节点和与所述主管理节点对应的从管理节点,其中当所述主管理节点有效时,所述主管理节点接收客户端发送的数据请求,并将所 述请求转发给数据节点,以实现所述客户端与所述数据节点的数据交换,并将自身存储的 文件元数据信息同步到所述从管理节点,并与所述从管理节点维持周期性心跳通信;当所述主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管 理节点,所述从管理节点转换为当前主管理节点,接收客户端发送的数据请求,并将所述请 求转发给数据节点,以实现所述客户端与所述数据节点的数据交换。从上述的技术方案可以看出,本发明实施例公开的数据处理方法,采用主从管理节点的方式,主管理节点将自身存储的文件元数据信息同步到所述从管理节点,使得当主 管理节点失效后,从管理节点能够替代主管理节点继续工作,保证了分布式文件系统工作 的可靠性。进一步的,从管理节点将所述元数据信息作为检查点文件保存在自身磁盘中,节 省了主管理节点正常工作的情况下,从管理节点的内容占用量,提高了系统资源的利用率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例公开的管理节点的目录树形式结构示意图;图2为本发明实施例公开的数据处理方法的流程图;图3为本发明实施例公开的又一数据处理方法的流程图;图4为本发明实施例公开的主管理节点恢复有效时恢复正常工作的流程图;图5为本发明实施例公开的一种分布式文件系统的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明公开的一种数据处理方法,应用于分布式文件系统,所述系统按照预设规 则划分为多个自治单元,每个自治单元设置有主管理节点和与所述主管理节点对应的从管 理节点,从而实现将每个主管理节点管理文件系统的一部分,实现对文件系统的分治,使得 系统具有更好的管理扩展性。具体的划分规则可以有多个,本发明中重点介绍将文件系统按照文件的命名空间 划分为多个自治单元的方法,即每个主管理节点管理其对应的命名空间下的全部文件,划 分后的文件系统中某一文件的路径以自治域+文件域的形式进行表示,自治域表示文件系 统根目录到自治单元的路径,文件域为自治单元对应的管理节点到对应的命名空间下的各 个文件的路径,如图1所示,将所述管理节点以目录树的形式进行定位,所述管理节点对应 目录数的叶节点,其中美国和中国为两个按照命名空间划分的自治单元,在该自治单元下, 还可以继续以命名空间进行进一步的划分,例如,将美国划分为纽约和芝加哥,将中国划分 为北京和长沙等,对应于纽约命名空间下的AB⑶,为该命名空间下的全部文件。在客户端提供目录树的浏览服务,目录树的每个叶节点就是一个自治单元的主管 理节点,客户端需要维护一张叶节点到管理节点域名或者IP的映射这种映射可以有不同 的实现,比如文件或者数据库表等。用户访问文件时需要给出文件的全路径,即自治域路径 +文件域路径,客户端定位服务进程将根据请求的自治域路径为客户端进程找到一个合适 的自治域管理节点。
除上述方法外,假设查找文件A,还可以采用/美国/纽约/文件A域名的记录格 式进行定位。本实施例并不限定具体的定位方法,只要是能够对文件进行定位的方法都适用。每个主管理节点可以为其他自治单元的主管理节点的从管理节点,例如纽约管理 节点可以同时是芝加哥管理节点所管理自治单元的从管理节点,以使得在某一自治单元主 管理节点失效后,对应的从管理节点可以在承担自身管理节点工作的同时,接替与其对应 的主管理节点的工作,作为该主管理节点对应的自治单元的当前主管理节点,保证系统工 作的正常运行。具体的方法流程如图2所示,包括步骤S21、判断主管理节点是否有效,若是,则执行步骤S22,若否,则执行步骤 S24 ;步骤S22、接收客户端发送的数据请求,并将所述请求转发给数据节点,以实现所 述客户端与所述数据节点的数据交换;步骤S23、主管理节点将自身存储的文件元数据信息同步到所述从管理节点,并与 所述从管理节点维持周期性心跳通信;对于文件元数据信息的同步,从管理节点第一次同步主管理节点的全部元数据信 息,作为检查点保存在从节点磁盘上,第一次同步后,主从节点维持周期性心跳通信。从管 理节点将所述元数据信息作为检查点文件保存在自身磁盘中。步骤S24、数据节点将自身存储的数据节点状态信息发送给从管理节点;步骤S25、从管理节点转换为当前主管理节点;步骤S26、当前主管理节点接收客户端发送的数据请求,并将所述请求转发给数据 节点,以实现所述客户端与所述数据节点的数据交换。通过上述步骤可以看出,由于具有与主管理节点进行元数据信息同步的从管理节 点,所以,当主管理节点失效时,从管理节点可以转换为当前主管理节点继续接收客户端请 求,保证系统工作的正常进行。进一步的,由于将元数据信息以检查点形式保存在从管理节点的磁盘上,减小了 对从管理节点内存的占用量,提高了资源的使用效率,有效解决了因特网环境下海量数据 管理的性能瓶颈问题。本发明实施例公开的又一数据处理方法的流程如图3所示,包括步骤S31、判断主管理节点是否有效,若是,则执行步骤S32,若否,则执行步骤 S36 ;步骤S32、接收客户端发送的数据请求,并将所述请求转发给数据节点,以实现所 述客户端与所述数据节点的数据交换;步骤S33、主管理节点将自身存储的文件元数据信息同步到所述从管理节点,并与 所述从管理节点维持周期性心跳通信;步骤S34、当所述主管理节点中的元数据进行更新时,更新信息在下一次心跳通信 时同步到所述从管理节点;步骤S35、所述从管理节点依据所述更新信息,形成新的检查点文件,并保存;本步骤中,从管理节点依据更新信息,形成新的检查点文件的过程包括保存所述更新信息;当所述保存的全部更新信息达到预设累计规模时,将所述全部更新信息更新到检查点文件,形成新的检查点文件。从管理节点每次接收到更新信息时记录日志,更新累计到一个阈值后将日志文件 中记录的所有更新操作应用到旧的检查点文件,生成新的检查点,并删除旧检查点文件,清 空日志文件。当然,本实施例并不限定采用上述方式进行检查点文件的更新,还可以采用当接 收到更新信息后,直接依据更新信息更新检查点文件的方式,只是这种方法会带来过多的 磁盘IO开销,增加了从管理节点的内存占用量。步骤S36、当所述数据节点在预先设定的时间阈值内没有收到所述主管理节点的 周期性心跳信号时,确定所述主管理节点失效;步骤S37、将自身存储的数据节点状态信息发送给从管理节点;步骤S38、从管理节点接收所述数据节点状态信息,确定所述主管理节点失效;本步骤中,当从管理节点在一个预设时间内没有收到主管理节点发送的心跳信号 时,同样也可以确定主管理节点失效。步骤S39、所述从管理节点根据当前保存的更新信息生成检查点文件,并复制到内 存;为接替主管理节点的工作做准备。不管此时保存的全部更新信息是否达到预设累 计规模,直接进行生成新的检查点文件的步骤,以保证与主管理节点的同步。并将磁盘上的 检查点文件保存到内存中,以实现当客户端访问时,从内存读取相关文件信息。步骤S310、从管理节点转换为当前主管理节点;步骤S311、当前主管理节点接收客户端发送的数据请求,并将所述请求转发给数 据节点,以实现所述客户端与所述数据节点的数据交换。本实施例中公开的数据处理方法,详细描述了判断主管理节点失效的方法,既可 以通过数据节点来判断,然后通过向从管理节点发送数据节点状态信息的方式告知从管理 节点,或者是,通过从管理节点利用与主管理节点的心跳通信信号来判断,此外,还可以包 括,客户端向主管理节点发送请求后,在预设时间内没有收到请求响应时,客户端认定主管 理节点失效,然后向从管理节点发送请求,从管理节点接收请求后,认定主管理节点失效, 执行相应的准备工作,当准备就绪后,转换为当前主管理节点,依据请求为客户端提供服 务,客户端从当前的主管理节点获得服务后,将当前主管理节点作为主管理节点,进行后续
ififn。进一步的,当主管理节点由失效恢复为有效后,主管理节点恢复正常工作,当前主 管理节点转换回从管理节点,具体流程如图4所示,包括步骤S41、当所述主管理节点恢复有效时,与当前主管理节点通过心跳信号进行通 信,请求接管服务;本实施例中,主管理节点判断判断自身是否恢复有效,重新具有管理能力的条件 包括两个机器可用和网络可达,因此如果主管理节点因为机器失效(停电、宕机等),需要 重新人工启动或者等电力可用,当机器可用后,主管理节点要继续判断网络是否可用,方法 如下首先与当前主管理节点发送心跳信号,当前主管理节点将当前可用的数据节点列表 返回给原主管理节点,两者仍然保持周期性心跳信号,主管理节点收到数据节点列表后,向 各个数据节点发送心跳信息,若可以收到一定比例(例如95%)的数据节点的响应,则认为自身已经恢复到可用状态,下次与当前主管理节点的心跳信号时请求接管服务。若原主管 理节点的失效是因为网络不可用造成的,则只需要周期性地采用上述判断网络可用性的方 法判断自己是否自己重新具备管理能力,即可获知自身是否已经可用。步骤S42、主管理节点同步当前主管理节点上的元数据信息和数据节点状态信 息;步骤S43、当所述元数据信息和数据节点状态信息完全同步后,所述当前主管理节 点转换为从管理节点,向数据节点发送主管理节点变更信息;步骤S44、将内存中的元数据信息持久化到磁盘,生成检查点文件。当前主管理节点停止对外提供服务,当数据节点收到主管理节点变更的信息后, 更新心跳通讯主机,与主管理节点进行周期性心跳通信。每个客户端请求从管理节点时将 获得主管理节点变更通知,然后联系新的主管理节点。通过上述步骤,本发明实施例可以实现当主管理节点失效时,从管理节点可以接 替主管理节点的工作,保证系统的正常运行,提高了系统工作的可靠性,而当主管理节点恢 复有效后,从管理节点依旧作为从管理节点,回复系统的正常工作,保证了不会出现由于主 管理节点失效造成的系统不可用的问题,提高了系统的容灾性。本发明同时公开了一种分布式文件系统,其结构如图5所示,包括客户端51、数 据节点52、按照预设规则划分为多个自治单元和对应每一自治单元设置的主管理节点53 和与所述主管理节点对应的从管理节点M,其中当所述主管理节点有效时,所述主管理节点接收客户端发送的数据请求,并将所 述请求转发给数据节点,以实现所述客户端与所述数据节点的数据交换,并将自身存储的 文件元数据信息同步到所述从管理节点,并与所述从管理节点维持周期性心跳通信;当所述主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管 理节点,所述从管理节点转换为当前主管理节点,接收客户端发送的数据请求,并将所述请 求转发给数据节点,以实现所述客户端与所述数据节点的数据交换。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元 及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和 软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些 功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业 技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应 认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
1.一种数据处理方法,其特征在于,应用于分布式文件系统,所述系统按照预设规则划 分为多个自治单元,每个自治单元设置有主管理节点和与所述主管理节点对应的从管理节 点,所述方法包括当所述主管理节点有效时,所述主管理节点接收客户端发送的数据请求,并将所述请 求转发给数据节点,以实现所述客户端与所述数据节点的数据交换,并将自身存储的文件 元数据信息同步到所述从管理节点,并与所述从管理节点维持周期性心跳通信;当所述主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管理节 点,所述从管理节点转换为当前主管理节点,接收客户端发送的数据请求,并将所述请求转 发给数据节点,以实现所述客户端与所述数据节点的数据交换。
2.根据权利要求1所述的方法,其特征在于,还包括所述从管理节点将所述元数据信息作为检查点文件保存在自身磁盘中。
3.根据权利要求2所述的方法,其特征在于,还包括当所述主管理节点中的元数据进行更新时,更新信息在下一次心跳通信时同步到所述 从管理节点,所述从管理节点依据所述更新信息,形成新的检查点文件,并保存。
4.根据权利要求3所述的方法,其特征在于,所述从管理节点依据更新信息,形成新的 检查点文件的过程包括保存所述更新信息;当所述保存的全部更新信息达到预设累计规模时,将所述全部更新信息更新到检查点 文件,形成新的检查点文件。
5.根据权利要求4所述的方法,其特征在于,所述从管理节点按照以下步骤判断所述 主管理节点是否失效当所述数据节点在预先设定的时间阈值内没有收到所述主管理节点的周期性心跳信 号时,确定所述主管理节点失效,将自身存储的数据节点状态信息发送给从管理节点;从管理节点接收所述数据节点状态信息,确定所述主管理节点失效。
6.根据权利要求5所述的方法,其特征在于,所述从管理节点转换为当前主管理节点 的步骤包括所述从管理节点根据当前保存的更新信息生成检查点文件,并复制到内存;设定自身为当前主管理节点。
7.根据权利要求6所述的方法,其特征在于,还包括当所述主管理节点恢复有效时,与所述当前主管理节点通过心跳信号进行通信,请求 接管服务;所述主管理节点同步所述当前主管理节点上的元数据信息和数据节点状态信息;当所述元数据信息和数据节点状态信息完全同步后,所述当前主管理节点转换为从管 理节点,向数据节点发送主管理节点变更信息,将内存中的元数据信息持久化到磁盘,生成 检查点文件。
8.根据权利要求1所述的方法,其特征在于,所述系统按照文件系统中文件的命名空 间划分为多个自治单元。
9.根据权利要求8所述的方法,其特征在于,划分后系统中文件路径以自治域+文件域 的形式进行表示,所述自治域表示文件系统根目录到自治单元的路径,所述文件域表示自治单元对应的管理节点到各个文件的路径。
10.根据权利要求9所述的方法,其特征在于,所述管理节点以目录树的形式进行定 位,所述管理节点对应目录数的叶节点。
11.一种分布式文件系统,其特征在于,包括客户端、数据节点、按照预设规则划分为 多个自治单元和对应每一自治单元设置的主管理节点和与所述主管理节点对应的从管理 节点,其中当所述主管理节点有效时,所述主管理节点接收客户端发送的数据请求,并将所述请 求转发给数据节点,以实现所述客户端与所述数据节点的数据交换,并将自身存储的文件 元数据信息同步到所述从管理节点,并与所述从管理节点维持周期性心跳通信;当所述主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管理节 点,所述从管理节点转换为当前主管理节点,接收客户端发送的数据请求,并将所述请求转 发给数据节点,以实现所述客户端与所述数据节点的数据交换。
全文摘要
本发明公开了一种数据处理方法,及应用该方法的分布式文件系统,该方法包括当主管理节点有效时,主管理节点接收客户端发送的数据请求,并将请求转发给数据节点,并将自身存储的文件元数据信息同步到从管理节点,并与从管理节点维持周期性心跳通信;当主管理节点失效时,数据节点将自身存储的数据节点状态信息发送给从管理节点,从管理节点转换为当前主管理节点。从上述的技术方案可以看出,本发明实施例公开的数据处理方法,采用主从管理节点的方式,主管理节点将自身存储的文件元数据信息同步到所述从管理节点,使得当主管理节点失效后,从管理节点能够替代主管理节点继续工作,保证了分布式文件系统工作的可靠性。提供了系统的容灾性。
文档编号G06F17/30GK102122306SQ20111007533
公开日2011年7月13日 申请日期2011年3月28日 优先权日2011年3月28日
发明者吴泉源, 周斌, 杨树强, 滕猛, 王凯, 王怀民, 罗荣凌, 舒琦, 贾焰, 赵辉, 金松昌, 陈志坤, 韩伟红 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1