分布式文件系统的制作方法

文档序号:6367379阅读:79来源:国知局
专利名称:分布式文件系统的制作方法
技术领域
本申请涉及ー种分布式文件系统,更具体的,涉及ー种通过在 经由网络连接的计算机节点之间传送文件系统的增量数据来多路复用文件系统的分布式文件系统。
背景技术
高度可靠分布式文件系统利用多路复用,其将创建与主文件系统具有相同内容的复制文件系统并将该复制文件系统存储进存储主文件系统的计算机节点之外的计算机节点中。这些分布式文件系统更新主文件系统并将更新内容反映在复制文件系统上以保持文件系统多路复用。即使主文件系统或者复制文件系统二者之ー崩溃,这些分布式文件系统可以从另一文件系统恢复文件系统的内容。此外,通过创建多个复制文件系统,有可能保证更高的可靠性。专利文档I的图10示出了用于将主数据的副本创建到多个计算机节点的方法的例子。在专利文档I所描述的技术中,具有复制数据的计算机节点连接成一行。当主计算机节点上的数据更新时,在具有复制数据的多个计算机节点的头端处地一个计算机节点上的复制数据也更新。接着,将更新的数据从头端计算机节点发送到第二计算机节点,并且更新第二计算机节点上的复制数据。相同的操作按顺序重复执行,直至最后的计算机节点。更新复制本数据所必须的数据从ー个计算机节点中继到ー个计算机节点的这种多路复用称为中继多路复用。此外,主计算机侧的ー侧称为上游侧,而最后的计算机节点的一侧称为下游侧。专利文档I日本待审专利申请公开第JP-A2007-200086号。上述的中继多路复用使得有可能避免负荷集中于特定计算机节点上。然而,当在计算机节点之间的通信发生延迟时,不能被发出到下游侧的大量数据从延迟发生的位置开始保持在上游侧上的计算机节点的存储部分中。

发明内容
本发明的目的是提供ー种分布式文件系统,解决了上述问题在中继多路复用中,很难減少保持在中间计算机节点上的数据,除非数据被发出到下游侧。根据本发明的示例性实施例的分布式文件系统包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到第一计算机节点以便能够与之通信并具有作为第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到第二计算机节点以便能够与之通信并具有作为第一文件系统的副本的第三文件系统,在该分布式文件系统中第一计算机节点具有増量数据生成単元,配置为将自前一増量数据生成时刻起在第一文件系统的数据中改变的部分生成为增量数据;第一存储单元;以及第一控制单元,配置为将增量数据生成単元所生成的増量数据存储进第一存储单元并发送给第二计算机节点;第二计算机节点具有第二存储单元;以及第二控制单元,配置为将从第一计算机节点接收到的増量数据存储进第二存储单元、反映在第二文件系统上并发送给第三计算机节点;第三计算机节点具有第三存储单元;以及第三控制单元,配置为将从第二计算机节点接收到的増量数据存储进第三存储单元并反映在第三文件系统上;以及在已经从第一计算机节点接收到并且尚未发送给第三计算机节点的多次増量数据在第二存储单元中累积的情况下,第二控制单元将多次増量数据中除了最新接收到的增量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。、
另外,根据本发明的另ー示例性实施例的分布式文件系统中的多路复用方法是由如下分布式文件系统执行的多路复用方法,该分布式文件系统包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到第一计算机节点以便能够与之通信并具有作为第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到第二计算机节点以便能够与之通信并具有作为第一文件系统的副本的第三文件系统,并且其中第一计算机节点具有増量数据生成単元、第一存储单元和第一控制单元;第二计算机节点具有第二存储单元和第二控制单元;以及第三计算机节点具有第三存储单元和第三控制单元,分布式文件系统中的多路复用方法包括由第一计算机节点的増量数据生成单元将自前一増量数据生成时刻起在第一文件系统的数据中改变的部分生成为增量数据;由第一计算机节点的第一控制单元将增量数据生成単元所生成的増量数据存储进第一存储单元并发送给第二计算机节点;由第二计算机节点的第二控制单元将从第一计算机节点接收到的増量数据存储进第二存储单元、反映在第二文件系统上并发送给第三计算机节点;由第三计算机节点的第三控制单元将从第二计算机节点接收到的増量数据存储进第三存储单元并反映在第三文件系统上;以及在已经从第一计算机节点接收到并且尚未发送给第三计算机节点的多次増量数据在第二存储单元中累积的情况下,由第二计算机节点的第二控制单元将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合并。由于本发明具有上述配置,有可能在不发出数据到下游侧的情况下減少保留在中间计算机节点上的数据。


图I是本发明第一示例性实施例的框图;图2是用于解释本发明第一示例性实施例中的増量数据及其合并过程的示图;图3是本发明第二示例性实施例的配置解释示图;图4是本发明第二示例性实施例中的节点的框图5是示出了本发明第二示例性实施例中的快照状态转变的示图;图6是示出了本发明第二示例性实施例中在中间节点延迟状态中的快照状态转变的示图;图7是示出了本发明第二示例性实施例中在节点退出时的快照状态转变的示图;图8是示出了本发明第二示例性实施例中在节点恢复时的快照状态转变的示图;图9是示出了本发明第二示例性实施例中的服务器过程的处理例子的流程图;图10是示出了本发明第二示例性实施例中头端节点的快照控制过程的处理例子的流程图;图11是示出了本发明第二示例性实施例中中间节点的快照控制过程的处理例子的流程图; 图12是示出了本发明第二示例性实施例中末端节点的快照控制过程的处理例子的流程图;图13是本发明第二示例性实施例中发送请求包的解释性视图;图14是本发明第二示例性实施例中节点列表的解释性视图;图15是本发明第二示例性实施例中下一跳的解释性视图;以及图16是本发明第二示例性实施例中下一跳的解释性视图。
具体实施例方式下面,将结合附图详细描述本发明的示例性实施例。參考图1,根据本发明第一示例性实施例的分布式文件系统具有计算机节点110、与计算机节点110连接以便能够经由网络140与之通信的计算机节点120,以及与计算机节点120连接以便能够经由网络150与之通信的计算机节点130。计算机节点110具有主文件系统111 ;增量数据生成単元112,用于每当添加或改变数据时或者以规律的时间间隔将已从文件系统111的数据中先前数据改变或者添加到先前数据的数据生成为增量数据;存储单元113 ;以及控制単元114,其配置为将增量数据生成単元112生成的増量数据存储进存储単元113并将增量数据发送到计算机节点120。増量数据生成単元112可以每当改变或添加数据时或者以规律的时间间隔获取作为文件系统111的映像(image)的快照,并计算当前获取的快照与先前获取的快照之间的区别作为増量数据。此外,増量数据可以仅具有在配置文件系统的块中的从先前数据改变或者添加至先前数据的决。例如,假设文件系统111 一共被四个块所配置,并且第η次、第η+1次和第η+2次获取的快照内容如图2中所示。在图2中,AO至D0、A1、A2和BI示出了相应块的内容。也即,在第η次获取的快照中,块I至4的内容分别是AO至DO ;在第η+1次获取的快照中,块I和2的内容从AO和BO改变为Al和BI ;并且在第η+2次获取的快照中,块I的内容进ー步改变为Α2。此时,η和η+1之间的增量数据包括具有Al内容的块I和具有BI内容的块
2。此外,η+1和η+2之间的增量数据包括具有Α2内容的块I。计算机节点120具有作为文件系统111的副本的文件系统121 ;存储单元;以及控制単元124,其将从计算机节点110接收到的増量数据存储进存储単元123、将该增量数据反映在文件系统121上并将该増量数据发送给计算机节点130。此外,控制单元124具有如下功能当在将增量数据发送给计算机节点的同时检测到在増量数据被发送后多次的增量数据在存储单元123中累积时,将多次増量数据合并为ー个増量数据。換言之,控制单元124具有如下功能在已经从计算机节点110接收到但尚未发送给计算机节点130的多次増量数据在存储单元123中累积时,将多次増量数据中的最新接收的增量数据与其余多次増量数据合并,并从存储单元114中删除其余増量数据。当将第一増量数据与接在第一増量数据之后接收的第二増量数据进行合并时,控制単元124生成包括在第一増量数据或者在第二増量数据中所包括的块的增量数据,并且在块包括于第一増量数据和第二増量数据中的每ー个中的情况下,所生成的増量数据包括第二増量数据的块。例如,通过将图2所示的η和η+1之间的增量数据与η+1和η+2之间的増量数据进行合并所获得的増量数据包括具有内容Α2的块I和具有内容B I的块2。换言之,控制单元124将多次増量数据中的最新接收增量数据与其余増量数据进行合并,并从存储単元123中删除其余増量数据。在此合并过程中,生成如下増量数据,该增量数据包 括被包括于多次増量数据中任何ー个中的块,并且在块被包括于两个或者更多增量数据中每ー个中时,该增量数据包括最新接收的增量数据的块。进ー步地,控制单元124向上游计算机节点110的控制单元114发送关于从存储単元123删除增量数据的请求。在接收到该删除请求吋,控制单元114从存储単元113删除与删除请求有关的增量数据。计算机节点130具有作为文件系统111的副本的文件系统131、存储单元133以及存储从计算机节点120接收到的増量数据并将该增量数据反映在文件系统131上的控制单元 134。下面,将描述本示例性实施例的操作。每当在文件系统111中改变或者添加数据时,或者以规律的时间间隔,计算机节点110的増量数据生成単元112将从文件系统111的数据中先前数据改变或者添加至先前数据的数据生成为增量数据。控制单元114将增量数据生成単元112生成的増量数据存储进存储単元113,并将该増量数据发送给计算机节点120。当从计算机节点110接收到增量数据后,计算机节点120的控制单元124将接收到的増量数据存储进存储単元123并且还在文件系统121上反映该增量数据。此外,控制単元124将接收到的増量数据发送给计算机节点130。当从计算机节点120接收到增量数据后,计算机节点130的控制单元134将接收到的増量数据存储进存储単元133并且还在文件系统131上反映该增量数据。如上所述,文件系统111的増量数据反映在文件系统121和131上,并且由此文件系统121和131与文件系统111保持相同的内容。存储在计算机节点110、120和130的存储单元113、123和133中的增量数据可以在存储该数据的需要消除的时候被删除。例如,由于无计算机节点存在于计算机节点130的下游,计算机节点130可以在数据反映于节点130的文件系统131上完成的时候从存储単元133中删除增量数据。另ー方面,计算机节点120不能仅在完成了在节点120的文件系统121上反映了数据后就删除增量数据。这是因为,在已经发送给下游计算机节点130的増量数据没有被计算机节点130正常地接收到时,还需要重新发送。因此,计算机节点120从存储単元123删除已经在节点120的文件系统121上反映了且已经被正常发送给了下游计算机节点130的増量数据。此外,计算机节点110从存储単元113删除已经正常发送给了下游计算机节点120的増量数据。例如,在由于连接计算机节点120和计算机节点130的通信网络拥塞而造成増量数据传送用了很长时间的情况下,将发生如下状态当计算机节点120正在向计算机节点130发送增量数据时,新的増量数据从计算机节点110发送给计算机节点120并且累积到存储单元123中。当检测到在増量数据被发送后多次増量数据存储在存储单元123中吋,控制单元124将多次的増量数据合 并为ー个増量数据。也即,控制単元124将多次増量数据中的最新接收到的増量数据与其余増量数据合并,并从存储单元123中删除其余増量数据。此外,控制单元124向上游计算机节点110的控制单元114发送关于删除已删除的增量数据的请求。此后,当完成被发送增量数据的发送吋,控制单元124从存储単元123获取合并后的増量数据并将该数据发送给计算机节点130。在从计算机节点120接收到合并后的增量数据时,计算机节点130的控制单元134将所接收到的合并后的増量数据存储进存储単元133中并且还将该数据反映在文件系统131 上。由此,根据示例性实施例,有可能在不将增量数据发出到下游侧的情况下减少剩余在中间计算机节点上的増量数据。例如,在图2所示的例子中,通过将η和η+1之间的增量数据与η+1和η+2之间的增量数据合并,有可能将剩余数据的量減少到三分之ニ。此外,根据示例性实施例,由于通过合并减少了发出到下游侧的増量数据的数目和数量,有可能在较短时间内将増量数据发送到末端计算机节点。因此,有可能较早地維持文件系统的多路复用。第二示例性实施例本示例性实施例的特征本示例性实施例的特征是有效中继文件系统的快照并保持在由网络连接的节点之间复用的文件系统的方法。本示例性实施例所解决的问题存在如下技术为了多路复用文件系统,发送作为ー时刻的文件系统映像与下一时刻的文件系统映像之间增量的増量快照(下文简称快照),并在节点间同步数据。然而,在中间节点于发送快照的同时从父节点相继接收快照的情况下,待发送的快照数目增加并且成本(磁盘容量、快照数目、通信次数)也増加。这是低效的,并且需要減少待存储快照的数目以及有效地对其进行管理。本示例性实施例的解决手段在本示例性实施例中,減少了待管理快照的数目并且实现了有效地快照中继。此夕卜,当节点从网络中退出以及恢复到网络中时,相应的节点动态地确定节点的父子关系并且进行同歩。因此,中继快照的节点的数目不受限制,并且可以实现有利的可扩展性。节点的功能分为三种主要类型头端节点功能、中间节点功能以及末端节点功能。相应的节点通过如下模型来定义其中仅父节点和子节点进行通信。为每一文件系统提供了节点功能单
J Li ο本示例性实施例的配置
将描述本示例性实施例的配置。图3示出了整体配置。系统由多个计算机设备来配置。每个计算机设备具有一个执行对快照控制过程的控制的服务器过程。此外,每个计算机设备具有一个或者多个磁盘设备。该磁盘设备存储ー个或者多个文件系统。在每个文件系统上,可以配置多个快照。每个文件系统存在一个快照控制过程。计算机设备的数目,也即节点的数目可以从I至y。在一个计算机设备的情况下,计算机设备不执行传送过程。在两个计算机设备的情况下,计算机设备配置为头端节点和末端节点。在三个或者更多个计算机设备的情况下,计算机设备配置为头端节点、一个或者多个中继节点和末端节点。图4中示出了节点的内部的配置例子。參考图4,节点200具有服务器过程210、快照控制过程220、快照接收器部分230、快照发送器部分231、文件系统241和磁盘设备240。服务器过程210具有发送和接收控制信息的控制信息收发器部分211,以及对快照控制过程信息进行管理的快照控制过程列表212。、快照控制过程220具有管理节点信息的节点列表221、获取快照的快照获取部分222、检查快照的快照检查部分223、删除快照的快照删除部分224、发送传送控制信息的控制信息发送器部分225以及管理各个部分的快照控制部分226。接收快照的快照接收器部分230和发送快照的快照发送器部分231可以是快照控制过程220的功能,或者可以是文件系统241的外部功能,等等。 磁盘设备240具有一个或者多个文件系统241,并且多个快照242可以被配置在每个文件系统上。本示例性实施例的操作解释<操作序列>I.服务器过程在系统启动时,服务器过程210启动与待管理文件系统的数目相同数目的快照控制过程220。在待管理文件系统的数目为X的情况下,服务器过程210启动X个快照控制过程220。服务器过程210将待管理快照控制过程220的列表存储进快照控制过程列表212中。在快照控制过程220非出于本意而停止时,服务器过程210重启该过程。在系统停止时,服务器过程210參考快照控制过程列表212,并停止已经启动的X个快照控制过程。2.快照控制过程2. I头端节点的快照发送序列下面,參考图4、图5、图9和图10,描述头端节点的操作序列。每个快照控制过程220由快照控制部分226 (下面称为控制部分226)来控制。控制部分226以规律的时间间隔或者当数据写入到文件系统中时向快照获取部分222发送快照获取请求。快照获取部分222执行从文件系统241对快照的获取。当执行了快照获取之后,将当前发送的快照(η)存储在文件系统241中,并且将先前发送的快照存储为先前发送的快照(η-I)。控制部分226向快照发送器部分231发送关于向子节点发送当前发送的快照(η)的请求。当接收到该发送请求时,快照发送器部分231向子节点发送该快照。在完成快照(η)的发送之后,控制部分226经由控制信息发送器部分225发送关于向子节点传送当前快照(η)的请求。此后,服务器过程210的控制信息收发器部分211从子节点接收作为对传送请求的响应的传送请求結果,并且将该结果发送给快照控制过程220的控制部分226。在传送请求结果显示为成功时,操作进行到下一快照获取传送循环。在传送请求结果显示为失败时,存储先前发送的快照(η-I)和当前发送的快照(η)。2. 2中间节点的快照传送序列下面,參考图4、图5、 图9和图10,描述中间节点的操作序列。当接收到快照(η)后,快照接收器部分230将该快照应用到文件系统241。因此,中间节点的文件系统241与父节点的文件系统241同歩。接着,服务器过程210的控制信息收发器部分211接收关于传送快照(η)的请求并将其发送到控制部分226。在接收到该传送请求后,控制部分226向快照检察部分223发送关于检察快照(η)的请求。快照检察部分223检察快照(η)是否存储在文件系统241中。在快照(η)已存储的情况下,控制部分226向快照发送器部分231发送关于发送快照(η)的请求。该发送请求异步执行,并且在发送该发送请求后,控制部分226不等待发送完成就返回过程。控制部分226经由服务器过程210的控制信息收发器部分211发送作为上述传送请求的响应的传送请求结果。当完成快照(η)的发送后,控制部分226经由控制信息发送器部分225发送关于向子节点传送当前发送的快照(η)的请求。此后,服务器过程210从子节点接收快照(η)传送请求結果,并且将该结果发送到快照控制过程220的控制部分226。在传送请求结果显示为成功时,控制部分226经由控制信息发送器部分225向父节点发送关于删除先前发送的快照(η-I)的请求。在传送请求结果显示为失败时,存储先前发送的快照(η-I)和当前发送的快照(η)。下面,參考图4、图6、图9和图11,描述中间节点在发送快照(η)的同时接收快照(η+1)和快照(η+2)的序列。在接收到关于传送快照(η+1)的请求后,服务器过程210的控制信息收发器部分211将其发送给控制部分226。在接收到该传送请求后,控制部分226巷快照检查部分223发送关于检查快照(η+1)的请求。此时,即使在快照(η+1)存在时,控制部分226仍然暂停向子节点发送快照(η+1),因为正在发送快照(η)。此后,控制部分226经由服务器过程210的控制信息收发器部分211向父节点发送一个关于快照(η+1)传送请求显示成功的結果。接下来,在接收到关于传送快照(η+2)的请求后,服务器过程210的控制信息收发器部分211将其发送给控制部分226。在接收到该传送请求后,控制部分226向快照检查部分223发送关于检查快照(η+2)的请求。此时,即使在快照(η+2)存在时,控制部分226仍然暂停向子节点发送快照(η+2)以及快照(η+1),因为正在发送快照(η)。代替地,由于多次的快照即先前接收到的快照(η+1)和当前接收到的快照(η+2)被存储而没有被发送,控制部分226向快照删除部分224发送关于将先前接收到的快照(η+1)与当前接收到的快照(η+2)进行合并的请求。快照删除部分224利用通过将先前接收到的快照(η+1)与当前接收到的快照(η+2)进行合并而获得的数据来代替当前接收到的快照(η+2),并执行对先前接收到的快照(η+1)的删除。此外,经由控制信息发送器部分225向父节点发送关于删除先前接收到的快照(η+1)的请求。此后,控制部分226经由服务器过程210的控制信息收发器部分211向父节点发送快照(η+2)传送请求显示成功的結果。
2. 3末端节点的快照接收序列下面,參考图4、图5、图9和图12,描述末端节点的操作序列。当接收快照(η)时,快照接收器部分230将该快照应用到文件系统241。因此,末端节点的文件系统241与父节点的文件系统241同歩。接着,服务器过程210的控制信息收发器部分211接收关于传送快照(η)的请求,并将其发送给控制部分226。在接收到该传送请求后,控制部分226向快照检查部分223发送关于检查快照(η)的请求。快照检查部分223检查该快照(η)是否存储在文件系统241中。此时,不执行传送过程,因为作为传送目的地的子节点并不存在。在快照(η)已存储的情况下,控制部分226向快照删除部分224发送关于删除先前接收到的快照(η-I)的请求。快照删除部分224执行对快照(η-I)的删除。接着,控制部分226经由控制信息发送器部分225向父节点发送关于删除先前接收到的快照(η-I)的请求。在完成此过程后,控制部分226经由服务器过程210的控制信息收发器部分211向父节点发送传送请求結果。
2. 4共同序列与获取传送循环异步地,服务器过程210的控制信息收发器部分211从子节点接收关于删除先前接收到的快照(η-I)的请求。在接收到该请求的情况下,控制信息收发器部分211向快照控制过程220的控制部分226发送删除请求,并且控制部分226向快照删除部分224发送快照删除请求。快照删除部分执行快照删除。删除快照并非删除文件系统的实际数据而是删除作为管理信息的快照。与获取传送循环异步地,服务器过程210的控制信息收发器部分211接收节点状态改变请求。在接收到该请求的情况下,控制信息收发器部分211向快照控制过程220的控制部分226发送节点状态改变请求,并且控制部分226改变节点列表221中的节点状态。3.节点退出时的序列參考图7,描述在节点退出时的序列。图7的例子显示了在从中间节点2向节点3进行的传送过程中子节点3从ー组节点中退出的情况下的序列。在快照的发送过程中节点3从ー组节点(例如,节点死机)中退出的情况下,存储当前发送的快照(η)和先前发送的快照(η-I)以便其不被删除,并且节点列表中节点3的状态被设置为异常状态。此外,向父节点I发送关于存储快照并改变节点3的状态的请求。因此,先前发送的快照(η-I)和当前发送的快照(η)都被存储。存储这两个快照,是因为不知道至节点3退出时到节点3的快照发送是否已经完成。当已经退出的节点3恢复到该组节点中时节点3所具有的最新快照是节点2和节点I所存储的两个快照中的一个,并且有可能基于该快照重新同歩。在存储快照后,继续循环过程。当下一优先权子节点存在的情况下,节点2执行快照的传送。在图7的例子中,节点2操作为该组节点的末端节点功能,因为节点2不具有子节点。4.节点恢复时的序列下面,參考图8,描述节点恢复的序列。图8的例子示出了在节点3向节点2发送恢复请求的情况下的序列。节点3基于作为节点3所具有的最新快照的快照(η-I)向节点2发送恢复请求。在接收到该恢复请求后,节点2执行从所存储的快照(η-I)到先前接收到的快照(η)的区别同歩。
与区别同步异步地,从节点I向节点2发送快照,并且执行循环过程。此时,当执行区别同步的时候先前接收到的快照(η)不被删除。在完成了节点2和节点3之间的区别同步后,节点2变为中间节点,而节点3加入到该组节点中作为末端节点。此外,删除节点3的快照(η-I)和快照(η-2),并且向父节点2发送关于删除已存储的快照(η-I)和已存储的快照(η-2)的请求以及状态改变请求。在接收到关于删除已存储的快 照的请求以及状态改变请求后,节点2删除快照并将节点3的状态改为正常。在完成该过程后,节点2向父节点I发送关于删除快照的请求以及状态改变请求。在接收到关于删除快照的请求和状态改变请求后,节点I删除快照并将节点3的状态改为正常。此时,与删除过程异步地,节点I和节点2之间的循环过程继续。在完成区别同步后,在接收到关于传送快照(η+2)的请求的情况下,节点2检查该快照是否存储在文件系统中,在快照已存储的情况下,节点2删除先前接收到的快照(η+1)井向父节点I发送关于删除先前接收到的快照(η+1)的请求。在完成该过程后,节点2向节点3发送快照(η+2)。该发送异步地执行,并且向父节点I返回传送请求过程結果。在完成了正被发送的快照(η+2)的发送之后,节点2向节点3发送关于传送快照(η+2)的请求。检查到节点3已经存储了该快照,并且删除了先前接收到的快照(η)。除了向节点2发送传送请求结果之外,节点3还向节点2发送关于删除先前接收到的快照(η)的请求。在接收到传送请求结果后,节点2向父节点I发送关于删除先前发送的快照(η)的请求。作为执行上述过程的结果,所有的节点返回到所有节点同步的正常状态。〈补充〉I.传送请求包參考图13,描述传送请求包。传送请求包包括a)计算机设备上唯一的文件系统名称,显示其的ID或者其它;b)待传送快照的名称、显示其的ID或者其它;c)显示发送源节点的项,诸如发送源节点的名称或者IP地址;以及d)阻止向已经接收到的节点发送传送请求的未发送节点比特。在未发送节点比特中,比特以节点的顺序排列。当发送传送请求时,头端节点将发送目标节点的比特设置为I。在传送的时候中间节点将其比特设置为0,并向子节点发送传送请求。2.节点列表參考图14,描述节点列表。每个节点保持注册到ー组节点的节点列表。每个节点不管理所有节点的状态,只管理其父节点和子节点的状态。在每个节点不能向子节点发送数据的情况下,该节点确定子节点已经从该组节点中退出并将子节点的状态设置为异常。在来自父节点的通信异常结束的情况下,每个节点将父节点的状态设置为异常。此外,响应于来自已经从该组节点中退出的节点的状态改变请求,每个节点将该已退出的节点的状态设置为正常。3.下一跳參考图15,描述下ー跳。包括于传送请求包中的未发送节点比特的尺寸大小确定了数据可以被传送到的节点的数目。在设置了下一跳地址的情况下,一组节点中的末端节点操作为中间节点功能,并将快照传送给下一跳地址。一般的,下一跳地址指明下一组节点的虚拟IP地址。下一跳地址可以指明物理IP地址。具有下一组节点的下一跳地址的节点操作为中间节点功能。在图I5中,头端节点1-1的快照顺序地传送至节点1-4,并且节点1_4操作为中间节点功能,已将快照传送给下一跳地址。具有下一跳地址的节点2-1操作为中间节点功能,并顺序地将快照传送至节点2-4。节点2-4操作为末端节点。下面,參考图16,描述发生节点故障的情況。图16示出了一组节点的末端节点已经退出和下一组节点的头端节点已经退出的情况。由于节点1-4已经退出,充当节点1-4的父节点的节点1-3代替节点1-4执行向下一跳进行传送的过程。由于节点2-1已经退出,充当节点2-1的子节点的节点2-2持有下一跳地址并代替节点2-1执行该过程。本示例性实施例的效果I.有可能在多个节点中执行数据同步,并且在一个或者多个节点发生故障的情况 下,有可能由另ー节点使用数据。2.有可能在具有快照功能的每个文件系统中利用本发明。其它示例性实施例I.本发明涉及具有快照功能的各种文件系统。2.除了文件系统的快照外,还可以传送具有区别存储功能的所有数据。3.可以发送加密数据。4.可以发送压缩数据。5.通过在故障发生后使用HA集群软件来进行应用切換,可以将操作暂停时间限制得尽可能短尽管已经结合其示例性实施例特别地示出和描述了本发明,但是本发明不限于这些实施例。本领域普通技术人员将能够理解,在不偏离权利要求所限定的本发明的主旨和范围的情况下可以对形式和细节进行各种改变。此外,本发明的配置分布式文件系统的计算机节点的控制单元可以用计算机和程序来实现。程序通过记录在计算机可读记录介质诸如磁盘和半导体存储器上来提供,并且当计算机启动时由计算机读取。程序控制计算机的操作,由此在计算机上实现第一示例性实施例的控制单元,等等。补充注释上述示例性实施例的整体或者部分可以被描述为但是不限于下面的补充注释。(补充注释I)ー种分布式文件系统,包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到第一计算机节点以便能够与之通信并具有作为第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到第二计算机节点以便能够与之通信并具有作为第一文件系统的副本的第三文件系统,其中第一计算机节点具有増量数据生成単元,配置为将自前一増量数据生成时刻起在第一文件系统的数据中改变的部分生成为增量数据;第一存储单元;以及第一控制单元,配置为将增量数据生成単元所生成的増量数据存储进第一存储单元并发送给第二计算机节点;第二计算机节点具有第二存储单元;以及第二控制单元,配置为将从第一计算机节点接收到的増量数据存储进第二存储单元、反映在第二文件系统上并发送给第三计算机节点;第三计算机节点具有第三存储单元;以及第三控制单元,配置为将从第二计算机节点接收到的増量数据存储进第三存储单元并反映在第三文件系统上;以及在已经从第一计算机节点接收到并且尚未发送给第三计算机节点的多次増量数据在第二存储单元中累积的情况下,第二控制单元将多次増量数据中除了最新接收到的增量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。(补充注释2)根据补充注释I的分布式文件系统,其中第二控制单元在合并后从第二存储单元删除剩余増量数据。(补充注释3) 根据补充注释I或2的分布式文件系统,其中第二控制单元向第一控制单元发送关于删除从第二存储单元已删除的増量数据的请求;以及第一控制单元从第一存储单元删除与删除请求有关的增量数据。(补充注释4)根据补充注释1-3中任ー项的分布式文件系统,其中増量数据生成单元将自前一増量数据生成时刻起在配置第一文件系统的块中改变的ー组块生成为增量数据。(补充注释5)根据补充注释4的分布式文件系统,其中在将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合并的过程中,第ニ控制单元生成的増量数据包括被包括于多次増量数据中仅ー个增量数据中的块,并且在块包含于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于该两个或者更多增量数据中最新接收到的増量数据中的块。(补充注释6)根据补充注释1-5中任ー项的分布式文件系统,其中増量数据生成単元针对每次改变和添加或者按照规律的时间间隔获取作为第一文件系统的映像的快照,并计算当前获取的快照与前一获取的快照之间的区别作为増量数据。(补充注释7)ー种由分布式文件系统执行的多路复用方法,该分布式文件系统包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到第一计算机节点以便能够与之通信并具有作为第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到第二计算机节点以便能够与之通信并具有作为第一文件系统的副本的第三文件系统,并且其中第一计算机节点具有増量数据生成単元、第一存储单元和第一控制单元;第二计算机节点具有第ニ存储单元和第二控制单元;以及第三计算机节点具有第三存储单元和第三控制单元,分布式文件系统中的多路复用方法包括由第一计算机节点的増量数据生成单元将自前一増量数据生成时刻起在第一文件系统的数据中改变的部分生成为增量数据;由第一计算机节点的第一控制单元将增量数据生成単元所生成的増量数据存储进第一存储单元并发送给第二计算机节点;由第二计算机节点的第二控制单元将从第一计算机节点接收到的増量数据存储进第二存储单元、反映在第二文件系统上并发送给第三计算机节点;由第三计算机节点的第三控制单元将从第二计算机节点接收到的増量数据存储进第三存储单元并反映在第三文件系统上;以及在已经从第一计算机节点接收到并且尚未发送给第三计算机节点的多次増量数据在第二存储单元中累积的情况下,由第二计算机节点的第二控制单元将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。(补充注释8)
根据补充注释7的分布式文件系统中的多路复用方法,包括由第二计算机节点的第二控制单元在合并后从第二存储单元删除剩余増量数据。(补充注释9)根据补充注释7或8的分布式文件系统中的多路复用方法,包括由第二控制单元向第一控制单元发送关于删除从第二存储单元已删除的增量数据的请求;以及由第一控制单元从第一存储单元删除与删除请求有关的增量数据。(补充注释10)根据补充注释7-9中任ー项的分布式文件系统中的多路复用方法,其中在增量数据生成単元生成増量数据时,将自前一増量数据生成时刻起在配置第一文件系统的块中改变的ー组块生成为增量数据。(补充注释11)根据补充注释10的分布式文件系统中的多路复用方法,其中在第二控制单元的合并过程中,生成如下増量数据该增量数据包括包被包括于多次増量数据中仅一个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该増量数据则包括被包括于最新接收到的増量数据中的块。(补充注释12)根据补充注释7-11中任ー项的分布式文件系统中的多路复用方法,其中在由增量数据生成単元生成増量数据时,针对毎次改变和添加或者按照规律的时间间隔获取作为第一文件系统的映像的快照,并计算当前获取的快照与前一获取的快照之间的区别作为增
量数据。(补充注释13)ー种计算机节点,与上游计算机节点和下游计算机节点连接以便能够与之通信,并且包括作为主文件系统的副本的复制文件系统、存储単元和控制单元,其中控制单元从上游计算机节点接收包括自前一増量数据生成时刻起在主文件系统的数据中改变的部分的増量数据,将其存储进存储单元,反映在复制文件系统上,并发送到下游计算机节点,并且,在已经从上游计算机节点接收到并且尚未发送给下游计算机节点的多次増量数据在存储单元中累积的情况下,将多次増量数据中除了最新接收到的增量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。
(补充注释14)根据补充注释13的计算机节点,其中控制单元在合并后从第二存储单元删除剩余増量数据。(补充注释15)根据补充注释13或14的计算机 节点,其中控制单元向上游控制单元发送关于删除从存储単元已删除的増量数据的请求。(补充注释16)根据补充注释13-15任一项的计算机节点,其中在将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合并的过程中,控制单元生成的増量数据包括被包括于多次増量数据中仅ー个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于最新接收到的増量数据中的块。(补充注释17)一种使得与上游计算机节点和下游计算机节点连接以便能够与之通信并且包括作为主文件系统的副本的复制文件系统和存储单元的计算机具有如下控制单元功能的程序,该控制単元配置为从上游计算机节点接收包括自前一増量数据生成时刻起在主文件系统的数据中改变的部分的増量数据;将其存储进存储单元;将其反映在复制文件系统上;将其发送到下游计算机节点;并且在已经从上游计算机节点接收到但是尚未发送到下游计算机节点的多次増量数据在存储单元中累积的情况下,将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。(补充注释18)根据补充注释17的程序,其中控制单元在合并后从第二存储单元删除剩余増量数据。(补充注释19)根据补充注释17或18的计算机节点,其中控制单元向上游控制单元发送关于删除从存储単元已删除的増量数据的请求。(补充注释20)根据补充注释17-19中任一项的计算机节点,其中在将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合并的过程中,控制单元生成的増量数据包括被包括于多次増量数据中仅一个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于最新接收到的増量数据中的块。(补充注释21)一种用于记录程序的计算机可读记录介质,该程序使得与上游计算机节点和下游计算机节点连接以便能够与之通信并且包括作为主文件系统的副本的复制文件系统和存储单元的计算机用作如下控制单元,该控制単元配置为从上游计算机节点接收包括自前一増量数据生成时刻起在主文件系统的数据中改变的部分的増量数据;将其存储进存储单元;将其反映在复制文件系统上;将其发送到下游计算机节点;并且在已经从上游计算机节点接收到但是尚未发送到下游计算机节点的多次増量数据在存储单元中累积的情况下,将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合井。(补充注释22)根据补充注释21的计算机可读记录介质,其中控制单元在合并后从第二存储单元删除剩余増量数据。(补充注释23) 根据补充注释21或22的计算机节点,其中控制单元向上游控制单元发送关于删除从存储単元已删除的増量数据的请求。(补充注释24)根据补充注释21-23中任一项的计算机节点,其中在将多次増量数据中除了最新接收到的増量数据之外的剩余增量数据与多次増量数据中最新接收到的増量数据合并的过程中,控制单元生成的増量数据包括被包括于多次増量数据中仅一个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于最新接收到的増量数据中的块。
权利要求
1.一种分布式文件系统,包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到所述第一计算机节点以便能够与之通信并具有作为所述第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到所述第二计算机节点以便能够与之通信并具有作为所述第一文件系统的副本的第三文件系统,其中 所述第一计算机节点具有增量数据生成单元,配置为将自前一增量数据生成时刻起在所述第一文件系统的数据中改变的部分生成为增量数据;第一存储单元;以及第一控制单元,配置为将所述增量数据生成单元所生成的增量数据存储进所述第一存储单元并发送给所述第二计算机节点; 所述第二计算机节点具有第二存储单元;以及第二控制单元,配置为将从所述第一计算机节点接收到的增量数据存储进所述第二存储单元、反映在所述第二文件系统上并发送给所述第三计算机节点; 所述第三计算机节点具有第三存储单元;以及第三控制单元,配置为将从所述第二 计算机节点接收到的增量数据存储进所述第三存储单元并反映在所述第三文件系统上;以及 在已经从所述第一计算机节点接收到并且尚未发送给所述第三计算机节点的多次增量数据在所述第二存储单元中累积的情况下,所述第二控制单元将所述多次增量数据中除了最新接收到的增量数据之外的剩余增量数据与所述多次增量数据中最新接收到的增量数据合并。
2.根据权利要求I所述的分布式文件系统,其中所述第二控制单元在所述合并后从所述第二存储单元删除所述剩余增量数据。
3.根据权利要求2所述的分布式文件系统,其中 所述第二控制单元向所述第一控制单元发送关于删除从所述第二存储单元已删除的所述增量数据的请求;以及 所述第一控制单元从所述第一存储单元删除与删除请求有关的增量数据。
4.根据权利要求I所述的分布式文件系统,其中所述增量数据生成单元将自前一增量数据生成时刻起在配置所述第一文件系统的块中改变的一组块生成为增量数据。
5.根据权利要求4所述的分布式文件系统,其中在将所述多次增量数据中除了最新接收到的增量数据之外的剩余增量数据与所述多次增量数据中最新接收到的增量数据合并的过程中,所述第二控制单元生成如下增量数据,该增量数据包括被包括于多次增量数据中仅一个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于该两个或者更多增量数据中最新接收到的增量数据中的块。
6.根据权利要求I所述的分布式文件系统,其中所述增量数据生成单元针对每次改变和添加或者按照规律的时间间隔获取作为所述第一文件系统的映像的快照,并计算当前获取的快照与前一获取的快照之间的区别作为增量数据。
7.一种由分布式文件系统执行的多路复用方法,该分布式文件系统包括第一计算机节点,具有第一文件系统;第二计算机节点,连接到所述第一计算机节点以便能够与之通信并具有作为所述第一文件系统的副本的第二文件系统;以及第三计算机节点,连接到所述第二计算机节点以便能够与之通信并具有作为所述第一文件系统的副本的第三文件系统,并且其中所述第一计算机节点具有增量数据生成单元、第一存储单元和第一控制单元;所述第二计算机节点具有第二存储单元和第二控制单元;以及所述第三计算机节点具有第三存储单元和第三控制单元, 所述分布式文件系统中的所述多路复用方法包括 由所述第一计算机节点的所述增量数据生成单元将自前一增量数据生成时刻起在所述第一文件系统的数据中改变的部分生成为增量数据; 由所述第一计算机节点的所述第一控制单元将所述增量数据生成单元所生成的增量数据存储进所述第一存储单元并发送给所述第二计算机节点; 由所述第二计算机节点的所述第二控制单元将从所述第一计算机节点接收到的增量数据存储进所述第二存储单元、反映在所述第二文件系统上并发送给所述第三计算机节占. 由所述第三计算机节点的所述第三控制单元将从所述第二计算机节点接收到的增量数据存储进所述第三存储单元并反映在所述第三文件系统上;以及 在已经从所述第一计算机节点接收到并且尚未发送给所述第三计算机节点的多次增量数据在所述第二存储单元中累积的情况下,由所述第二计算机节点的所述第二控制单元将所述多次增量数据中除了最新接收到的增量数据之外的剩余增量数据与所述多次增量数据中最新接收到的增量数据合并。
8.根据权利要求7所述的分布式文件系统中的多路复用方法,包括由所述第二计算机节点的所述第二控制单元在所述合并后从所述第二存储单元删除所述剩余增量数据。
9.根据权利要求8所述的分布式文件系统中的多路复用方法,包括 由所述第二控制单元向所述第一控制单元发送关于删除从所述第二存储单元已删除的所述增量数据的请求;以及 由所述第一控制单元从所述第一存储单元删除与删除请求有关的增量数据。
10.根据权利要求7所述的分布式文件系统中的多路复用方法,其中在所述增量数据生成单元生成所述增量数据时,将自前一增量数据生成时刻起在配置所述第一文件系统的块中改变的一组块生成为增量数据。
11.根据权利要求10所述的分布式文件系统中的多路复用方法,其中在所述第二控制单元的合并中,生成如下增量数据该增量数据包括被包括于多次增量数据中仅一个增量数据中的块,并且在块包含于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于最新接收到的增量数据中的块。
12.根据权利要求7所述的分布式文件系统中多路复用方法,其中在由所述增量数据生成单元生成增量数据时,针对每次改变和添加或者按照规律的时间间隔获取作为所述第一文件系统的映像的快照,并计算当前获取的快照与前一获取的快照之间的区别作为增量数据。
13.一种计算机节点,与上游计算机节点和下游计算机节点连接以便能够与之通信,并且包括作为主文件系统的副本的复制文件系统、存储单元和控制单元, 其中所述控制单元从所述上游计算机节点接收包括自前一增量数据生成时刻起在所述主文件系统的数据中改变的部分的增量数据,将其存储进所述存储单元,反映在所述复制文件系统上,并发送到所述下游计算机节点,并且,在已经从所述上游计算机节点接收到并且尚未发送给所述下游计算机节点的多次增量数据在所述存储单元中累积的情况下,将所述多次增量数据中除了最新接收到的增量数据之外的剩余增量数据与所述多次增量数据中最新接收到的增量数据合并。
14.根据权利要求13所述的计算机节点,其中所述控制单元在所述合并后从所述第二存储单元删除所述剩余增量数据。
15.根据权利要求14所述的计算机节点,其中所述控制单元向所述上游控制单元发送关于删除从所述存储单元已删除的所述增量数据的请求。
16.根据权利要求15所述的计算机节点,其中在将所述多次增量数据中除了最新接收到的增量数据之外的剩余增量数据与所述多次增量数据中最新接收到的增量数据合并的过程中,所述控制单元生成增量数据,该增量数据包括被包括于多次增量数据中仅一个增量数据中的块,并且在块被包括于两个或者更多增量数据中每一个增量数据中的情况下,该增量数据则包括被包括于最新接收到的增量数据中的块。
全文摘要
提供一种分布式文件系统。一个实施方式提供一种计算机节点,与上游计算机节点和下游计算机节点连接以便能够与之通信,该计算机节点具有主文件系统的复制文件系统、存储单元和控制单元。该控制单元从上游计算机节点接收显示主文件系统的改变部分的增量数据,将增量数据存储进存储单元,在文件系统上反映该增量数据,并将该增量数据发送给下游计算机节点。此外,在已经从上游计算机节点接收到并且尚未发送给下游计算机节点的多次增量数据在存储单元中累积的情况下,控制单元将多次增量数据中最新接收增量数据与多次增量数据中的剩余部分合并。
文档编号G06F12/00GK102737098SQ201210090278
公开日2012年10月17日 申请日期2012年3月28日 优先权日2011年3月29日
发明者竹本平 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1