集群文件系统中的有效数据管理的制作方法

文档序号:6453734阅读:131来源:国知局
专利名称:集群文件系统中的有效数据管理的制作方法
技术领域
本发明一般地涉及集群文件系统中数字信息的存储,特别地,涉及对节点 间带宽的有效使用。
背景技术
集群文件系统允许多服务器使用到数据存储的独立路径访问相同的文件。 一组独立节点通过主干交换机互相连接并作为 一个系统一起工作。使用公共文 件系统路径为用户(客户机)提供对位于系统中存储设备上的所有文件的访问。 在一个集群文件系统中,每个节点都被配置成两个虛拟服务器, 一个前端服务 器和一个后端服务器。用元数据维护数据组在不同服务器上的位置。客户机对 特定数据组的操作请求可以由集群中的任一节点接收。通过访问元数据,可以 将特定的数据组定位在虚拟服务器之一上(或者如果节点没有配置虛拟服务器 则在节点之一上)。然后通过接收节点将写数据典型地存储在该节点的高速緩存 中。操作一完成,就将修改的数据组从高速緩存中清除,并发送到其原始位置。 如果原始位置是在与接收节点不同的节点的虚拟服务器上,则须经过主干交换 机传送数据组,从而消耗主干资源和带宽。

发明内容
本发明要解决的技术问题是提供一种客户机可以通过网络访问的集群文 件系统。该文件系统包括多个包含在集群中的文件系统节点,包括第一节点和 第二节点、将第一节点和第二节点互相连接的主干交换机以及用来标识存储数 据组的节点的元数据结构。第一节点包含第一高速緩存和数据组控制器。如果 特定数据组存储在第二节点上,则将数据组控制器配置为接收来自客户机对该 特定数据组执行文件系统操作的请求,访问元数据结构以确定存储了特定数据 组的节点,通过主干交换机从第二节点取回文件系统操作针对的特定数据组的 第一部分并将该特定数据组的余下部分保留在第二节点中,将取回的第一部分
存储于第 一 高速緩存中并在文件系统操作完成时修改元数据结构以指示至少该 特定数据组的第 一部分存储在第 一节点中,在此该第 一部分不通过主干交换机 返回第二节点。
本发明还提供一种管理集群文件系统中的数据组的方法。该方法包括接收 来自客户机的对存储在集群中的多个节点之一中的特定数据组执行文件系统操 作的请求,通过主干交换机从第一节点取回特定数据组,将取回的特定数据组 存储于第二节点的高速緩存中,执行所请求的对特定数据组的文件系统操作, 并在完成所请求的操作时修改元数据以指示该特定数据组存储在第二节点中, 在此该特定数据组不通过主干交换机返回第一节点。
本发明还提供适合于可编程计算机并具有用于在集群文件系统中管理数 据组的计算机可读编码的计算机可读媒介的计算机程序产品。计算机可读编码
包含用于以下操作的指令接收来自客户机的对存储在集群的多个节点之一中 的特定数据组执行文件系统操作的请求,通过主干交换机从第一节点取回特定 数据组,将取回的特定数据组存储于第二节点的高速緩存中,对该特定数据组 执行所请求的文件系统操作,并在完成所请求的操作时修改元数据以指示该特 定数据组存储在第二节点中,在此该特定数据组不通过主干交换机返回第 一节 点。
本发明还提供多节点集群文件系统中的文件系统节点。该节点包括通过 主干交换机将该节点与至少一个第二节点互相连接的装置、高速緩存、指示存 储了数据组的节点的元数据结构、接收来自客户机的对特定数据组执行文件系 统操作的请求的装置、访问元数据结构以确定存储了特定数据组的节点的装置、 通过主干交换机取回文件系统操作所针对的特定数据组的第 一部分并在该特定 数据组存储在第二节点上时将该特定数据组的余下部分保留在第二节点中的装 置、将取回的第一部分存储于第一高速的装置以及在完成文件系统操作时修改 元数据结构以指示至少特定数据组的第一部分存储在第一节点中的装置,在此 该第一部分不通过主干交换机返回第二节点。


图1示出了可用于实施本发明的集群文件系统的框图2示出了图1所示的集群文件系统的节点的一个配置的框图3A至3C示出了本发明集群文件系统一个实施例的顺序功能框图,其中
整个数据组的位置从一个节点转换到另 一个节点;
图4示出了图3A至3C所示的本发明实施例的方法的流程图5A至5C示出了初始数据组处理的顺序功能框图,其中数据组可以被分
为子组;
图6示出了图5A至5C所示的本发明实施例的方法的流程图7A和7B接续图5A至5C的顺序功能框图,并解释本发明集群文件系
统的实施例,其中可以在一个节点中重新组合子组;
图8示出了图7A和7B所示的本发明实施例的方法的流程图9接续图5A和5B的顺序功能框图,并解释了本发明的集群文件系统的
另 一个实施例,其中子组的最终位置在两个节点之间分离; 图IO示出了图9所示的本发明的实施例的方法的流程图; 图IIA至IIC接续图5A和5B的顺序功能框图并解释了本发明的一个实
施例,其中在主干交换机活动降低期间子组在其原始节点位置重新组合;以及 图12示出了图IIA至IIC所示的本发明实施例的方法的流程图。
具体实施例方式
图1示出了可用于实施本发明的集群文件系统100的框图。系统100包括 客户才几110和多个节点。为清楚起见,示出并描述了两个节点120和200;然 而,系统100可以包括另外的节点并且本发明的范围和操作不依赖于节点的数 量。主干交换机130耦接节点200和120 (在此分别称为节点1和节点2),使 得数据组能够在节点200和120之间传送。
图2示出了节点1 200的一个配置的框图;值得推荐的是,其它节点也具 有相同或相似的配置。节点1 200被配置为包括两个虛拟服务器前端负荷平 衡服务器202和后端数据组存储服务器204。前端服务器202接收来自客户机 的文件系统请求,确定要将该请求路由到的合适的节点并决定何时以及如何清 除(flush)高速缓存。后端服务器204管理数据组并为前端服务器提供锁定/ 租用(locking/leasing)机制。另外,节点1 200包括内存高速緩存210、数据 组控制器220和数据组元数据存储器230。元数据230对存储在集群文件系统 100中的每个数据组标识其在虚拟服务器(如果节点是这样配置的)或在节点 (如果没有使用虛拟服务器)中的位置。
现在结合图3A至3C的框图和图4的流程图来说明本发明的一个实施例的
操作。当客户机110发送文件系统请求(步骤400)、例如对特定数据组的写操 作时,该请求由节点200、 120之一接收。为了描述的目的,假设由节点1200 接收该请求(步骤402 )。写数据或修改的数据被存储在高速緩存210中(图3A; 步骤404 )。数据组控制器220由元数据230确定要被执行操作的特定数据的位 置(步骤406)。例如,元数据230可以指示特定数据组是数据组1 122并位于 节点2 120中(图3B)。
在通常的集群文件系统中,在完成所请求的操作时,高速緩存210将被清 除,并且修改的数据组122将通过主干交换机130被传送到节点2 120进行存 储。然而,为了降低通过主干交换机122的带宽使用,在图3A至3C所示的本 发明实施例中,清除高速缓存210 (步骤408 ),并且将修改的数据组122存储 在节点1 200中(步骤410)。更新元数据230 (步骤412)以反映新的位置(图 3C)。
图5 A至5 C以及图6相应的流程图解释了本发明另 一 个实施例中初始数据 组的处理过程。如先前的实施例,当客户机110发送文件系统请求(步骤600) 时,该请求由节点200、 120之一接收。为了描述的目的,仍假设该请求被节点 1 200接收(步骤602)。写或修改的数据被存储在高速緩存210中(图5A;步骤 604 )。数据组控制器220由元数据230确定要被执行操作的数据组的位置(步 骤604)。例如,元数据230可以指示特定数据组是数据组2 124并且存储在节 点2120中(图5B)。如果数据组2 124相对总共的写大小来说是较大的,则可 以将其分为子组(图5C;步骤608 )。例如,数据组2 124的大小可以是8GB, 但是被请求的文件操作仅适合6GB。这样可以将数据组2 124分为四个在节点 1 200中的高速緩存210中的子组DS-2A至DS-2D (图5C)。 一旦在高速緩存 210中创建了子组DS-2A至DS-2D,就可以完成所请求的文件系统操作(步骤 610)。
本发明按照根据所请求的文件系统操作对子组的处理提供了若干不同的 对子组的处理的替代方式。图7A和7B以及图8的流程图解释了一种这样的替 代方式。在此不是将修改后的子组DS-2A至DS-2C通过主干交换机130从节点 1 200传送到节点2 120,而是更有效地使用主干资源将数据组2 124的子组 DS-2A至DS-2D重新组合(图7A;步骤800)并将其存储在节点1 200中(步 骤802 )。然后更新元数据230以反映数据组2 124现在存储在节点1 200中(步 骤804;图7B )。图9和图10的流程图解释了另一种替代方式。在此不是将修改的子组 DS-2A至DS-2C通过主干交换机130从节点1 200传送到节点2 120(由此使用 主干带宽和资源),而是将修改的子组DS-2A至DS-2C与余下的子组DS-2D 分离(步骤1000)并然后将它们从高速緩存210中清除到节点1 200冲的存储 器中(步骤1002),而另一子组DS-2D则保留在节点2 120中。更新元数据230 以反映子组DS-2A至DS-2C的新位置以及子组DS-2D的位置(步骤1004 )。
在图11A和11B的框图以及图12的流程图描述的本发明的另一实施例中, 如果子组DS-2A至DS-2C已经如图9和IO所描述的存储在节点1中,则可以 在主干交换机130空闲或者在降低的活动级别期间将其在节点2中与子组 DS-2D重新组合(步骤1200);即,当主干交换机130空闲或者全部主干带宽 没有被使用时。这样,可以通过主干交换机130将子组DS-2A至DS-2C传送回 来(图11A;步骤1202 )以与余下的子组DS-2D结合(步骤1204)。然后更新 元数据230以反映子组DS-2A至DS-2C的位置变化以及数据组2的重新组合 (图11B;步骤1206)。
重要的是要注意,在以全功能数据处理系统的语境来描述本发明时,本领 域的技术人员可以懂得,本发明的处理可以指令以及各种形式的计算机可读媒 介的形式分布,并且无论实际上用来执行该分布的承载信号的媒介的特殊类型 如何本发明都适用。计算机可读媒介的例子包括可记录类型的媒介例如软盘、 硬盘驱动器、RAM、和CD-ROM以及传输类型的媒介例如数字的和模拟的通 信链路。
对本发明的描述是为了解释和描述本发明的目的而给出的,而不是为了将 本发明穷尽地或限制于所公开的形式。对本领域的技术人员许多改变和变形是 明显的。所选择和描述的实施例仅是为了能够最佳地解释本发明的原理、实际 的应用、以及使其他本领域的技术人员理解本发明的具有不同修改的各种实施 例也能够适合于预期的特殊使用。而且,尽管上面关于方法和系统进行了描述, 但是用包含在集群文件系统中管理数据组的指令的计算机程序产品也可以满足 本领域的需求。
权利要求
1.一种集群文件系统,客户机可以通过网络访问该集群文件系统,包括集群中的多个文件系统节点,包括第一节点和第二节点;主干交换机,用于将所述第一节点和所述第二节点互相连接;元数据结构,用来标识存储了数据组的节点;并且该第一节点包含第一高速缓存和数据组控制器,当特定数据组存储在所述第二节点上时,该数据组控制器被配置为接收来自客户机的对所述特定数据组执行文件系统操作的请求;访问所述元数据结构以确定存储所述特定数据组的节点;通过所述主干交换机从所述第二节点取回文件系统操作所针对的所述特定数据组的第一部分并将该特定数据组的余下部分保留在该第二节点中;将取回的第一部分存储于所述第一高速缓存中;以及在完成所述文件系统操作时修改所述元数据结构以指示所述特定数据组的至少第一部分存储在所述第一节点中。
2. 根据权利要求1所述的系统,其中所述第一部分不通过所述主干交 换机返回所述第二节点。
3. 根据权利要求1所述的系统,其中所述第一节点和第二节点各包括一个虚拟前端服务器和一个虛拟后端服 务器;以及所述元数据结构标识其上存储数据组的虛拟服务器和节点。
4. 根据权利要求1所述的系统,其中,所述数据组控制器还可配置为 在完成文件系统操作时通过所述主干交换机取回所述特定数据组的余下部分;修改所述元数据结构以指示整个特定数据组存储在所述第 一节点中;以及 将所述整个特定数据组存储在所述第一节点中。
5. 根据权利要求1所述的系统,其中,所述数据组控制器还可配置为 将所述特定数据组分为多个子组,每个子组具有这样的大小,即所述特定数据组的第一部分和余下部分分别包含至少一个子组;修改所述元数据结构以指示包含所述第一部分的子组是存储在所述第一 节点中以及包含所述余下部分的子组是存储在所述第二节点中;以及将所述第一部分的子组存储在所述第一节点中。
6. 根据权利要求5所述的系统,其中,在所述主干交换机处于降低的活 动级别期间,所述数据组控制器还可配置为将包含所述第一部分的子组从所述第一节点通过所述主干交换机传送到 所述第二节点;将所述第一部分的至少一个子组与所述余下部分的至少一个子组组合以 重组所述特定数据组;将该重组的特定数据组存储在所述第二节点中;以及 修改所述元数据结构以指示所述特定数据组存储在所述第二节点中。
7. 根据权利要求1所述的系统,其中,在所述主干交换机处于降低的活动 级别期间,所述数据组控制器还可配置为将所述第一部分从所述第二节点通过所述主千交换机传送到所述第一节点;将所述第一部分与所述余下部分组合以重组所述特定数据组; 将该重组的特定数据组存储在所述第一节点中;以及 修改所述元数据结构以指示该特定数据组存储在所述第 一节点中。
8. —种在集群文件系统中管理数据组的方法,包括接收来自客户机的对存储在集群的多个节点之一中的特定数据组执行文 件系统操作的请求;通过主千交换机从第一节点取回该特定数据组;将该取回的特定数据组存储于第二节点的高速緩存中;对该特定数据组执行所请求的文件系统操作;以及在完成所请求的操作时修改元数据结构以指示所述特定数据组存储在所 述第二节点中。
9. 根据权利要求8所述的方法,其中,所述特定数据组不通过所述主干交 换机返回所述第一节点。
10. 根据权利要求8所述的方法,其中 请求对所述特定数据组的第 一部分执行文件系统操作;以及 所述取回特定数据组包括通过所述主干交换机取回所述第一部分而将第二部分保留在所述第一节点中。
11. 根据权利要求IO所述的方法,其中,所述修改元数据包括修改元数据 以指示所述特定数据组的第 一部分存储在所述第二节点中并且第二部分存储在 所述第一节点中。
12. 根据权利要求IO所述的方法,其中所述方法还包括将所述特定数据组分为多个子组,其中所述第一部分和所 述第二部分分别包含至少一个子组;以及所述修改元数据包括修改元数据以指示包含所述第一部分的子组存储在 所述第二节点中并且包含所述第二部分的子组存储在所述第一节点中。
13. 根据权利要求12所述的方法,在所述主干交换机处于降低的活动级别 期间,该方法还包括将所述第一部分的至少一个子组通过所述主干交换机从所述第二节点传 送到所述第一节点;将所述第一部分的至少一个子组与所述第二部分的至少一个子组进行组 合以重组所述特定数据组;将该重组的特定数据组存储在所述第 一节点中;以及修改所述元数据结构以指示该特定数据组存储在所述第一节点中。
14. 根据权利要求8所述的方法,在所述主干交换机处于降低的活动级别 期间,该方法还包括将所述第一部分通过所述主干交换机从所述第二节点传送到所述第一节点;将所述第一部分和所述第二部分进行组合以重组所述特定数据组; 将该重组的特定数据组存储在所述第 一 节点中;以及 修改所述元数据结构以指示所述特定数据组存储在所述第一节点中。
15. —种适合于可编程计算机的计算机可读媒介的计算机程序产品,该计 算机程序产品具有用于在集群文件系统中管理数据组的计算机可读编码,该计 算机可读编码包含用于以下操作的指令接收来自客户机的对存储在集群中的多个节点之一中的特定数据组执行 文件系统操作的请求;通过主干交换机从第一节点取回特定数据组;将取回的特定数据组存储于第二节点的高速緩存中;执行所请求的对特定数据组的文件系统搡作;以及 在完成所请求的操作时修改元数据以指示特定数据组存储在所述第二节 点中。
16. 根据权利要求15所述的计算机程序产品,其中,所述特定数据组不通 过所述主干交换机返回所述第 一节点。
17. 根据权利要求15所述的计算机程序产品,其中 请求对所述特定数据组的第 一部分执行所述文件系统操作;以及 用于取回所述特定数据组的指令包含用于通过所述主干交换机取回所述第一部分的指令,因此第二部分保留在所述第一节点中。
18. 根据权利要求17所述的计算机程序产品,其中,用于所述修改元数据 结构的指令包含用于修改元数据以指示所述特定数据的第 一部分是存储在所述 第二节点中并且第二部分是存储在所述第一节点中的指令。
19. 根据权利要求17所述的计算机程序产品,其中 所述指令还包含用于将所述特定数据组分为多个子组的指令,其中所述第一部分和所述第二部分各包含至少一个子组;以及用来修改所述元数据的指令包含用来修改所述元数据以指示包含所述第 一部分的子组是存储在所述第二节点中并且包含所述第二部分的子组是存储在 所述第一节点中的指令。
20. 根据权利要求19所述的计算机程序产品,在所述主干交换机处于降低 的活动级期间,该计算机程序产品还包含用于以下的指令将所述第一部分的至少一个子组通过所述主干交换机从所述第二节点传 送到所述第一节点;将所述第一部分的至少一个子组与所述第二部分的至少一个子组组合以 重组所述特定数据组;将该重组的特定数据组存储在所述第 一 节点中;以及修改所述元数据结构以指示所述特定数据组是存储在所述第一节点中。
21. 根据权利要求15所述的计算机程序产品,在所述主干交换机处于降低 的活动级期间,该计算机程序产品还包含用于以下的指令将所述第一部分通过所述主干交换机从所述第二节点传送到所述第一节点;将所述第一部分与所述第二部分组合以重组所述特定的数据组; 将该重组的特定数据组存储在所述第 一 节点中;以及 修改所述元数据结构以指示所述特定数据组是存储在所述第一节点中。
22. —种多节点集群文件系统中的文件系统节点,包括 通过主干交换机将该节点与至少一个第二节点互联的装置; 高速緩存;元数据结构,用于指示存储了数据组的节点;接收来自客户机的对特定数据组执行文件系统操作的请求的装置;访问该元数据结构以确定存储了该特定数据组的节点的装置;当所述特定数据组存储在所述第二节点上时,通过该主干交换机取回所述文件系统操作所针对的特定数据组的第一部分并将该特定数据组的余下部分存储在所述第二节点中的装置;将取回的第一部分存储于所述第一高速緩存的装置;以及 在完成所述文件系统操作时修改所述元数据结构以指示所述特定数据组的至少第一部分存储在第一节点中的装置。
23. 根据权利要求22所述的文件系统节点,其中,所述第一部分不通过所 述主干交换机返回所述第二节点。
24. 根据权利要求22所述的文件系统节点,还包括 在完成所述文件系统操作时通过所述主干交换机取回所述特定数据组的余下部分的装置;修改所述元数据结构以指示整个特定数据组是存储在所述第一节点中;以及将整个特定数据组存储在所述第 一节点中。
25. 根据权利要求22所述的文件系统节点,还包括 将所述特定数据组分为多个子组的装置,其中每个子组具有这样的大小,即所述特定数据组的第一部分和余下部分分别包含至少一个子组;修改所述元数据结构以指示包含所述第一部分的子组存储在所述第一节点中以及包含所述余下部分的子组存储在所述第二节点中的装置;以及 将所述第一部分的子组存储在所述第一节点中的装置。
26. 根据权利要求25所述的文件系统节点,还包括 在所述主干交换机处于降低的活动级别期间,将包含所述第一部分的子组通过该主干交换机从所述第一节点传送到所述第二节点的装置;将所述第一部分的至少一个子组与所述余下部分的至少一个子组组合以 重组所述特定数据组的装置;将重组的特定数据组存储在所述第二节点中的装置;以及修改所述元数据结构以指示所述特定数据组是存储在所述第二节点中的 装置。
27.根据权利要求22所述的文件系统节点,还包括 在所述主干交换机处于降低的活动级别期间,将所述第一部分通过该主干交换机从第二节点传送到所述第 一节点的装置;将所述第一部分与所述余下部分进行组合以重组所述特定数据组的装置; 将所述重组的特定数据组存储在所述第一节点中的装置;以及 修改所述元数据结构以指示所述特定数据组是存储在所述第一节点中的装置。
全文摘要
本发明涉及一种在集群文件系统中管理数据组的方法和系统。接收来自客户机的对存储在集群中的多个节点之一中的特定数据组执行文件系统操作的请求。通过主干交换机从第一节点取回该特定数据组并存储在第二节点的高速缓存中。对该特定数据组执行所请求的文件系统操作,并在完成所请求的操作时修改元数据以指示该特定数据组存储在所述第二节点中。该特定数据组不通过主干交换机返回到第一节点。
文档编号G06F3/06GK101375241SQ200780003835
公开日2009年2月25日 申请日期2007年1月3日 优先权日2006年1月31日
发明者普拉迪普·文森特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1