CN103092891B - 分布式文件存储系统及其实现方法 - Google Patents
分布式文件存储系统及其实现方法 Download PDFInfo
- Publication number
- CN103092891B CN103092891B CN201110349783.0A CN201110349783A CN103092891B CN 103092891 B CN103092891 B CN 103092891B CN 201110349783 A CN201110349783 A CN 201110349783A CN 103092891 B CN103092891 B CN 103092891B
- Authority
- CN
- China
- Prior art keywords
- file
- office data
- data
- found
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了分布式文件存储系统及其实现方法。其中,该方法包括:文件存储服务器在执行分布式文件读操作或分布式文件写操作时,如果自身未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务,如果是,则在自身满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息,利用该同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并执行分布式文件读操作或分布式文件写操作。
Description
技术领域
本发明涉及网络通信技术,特别涉及分布式文件存储系统及其实现方法。
背景技术
随着数据存储量的增加,分布式文件存储系统得到了广泛发展,但是,目前的分布式文件存储系统都是预先被启动的,与文件存储服务是否启动无关,这样会导致没有文件存储服务时,分布式文件存储系统一直启动,会对文件存储服务的扩展性有影响,提高分布式文件存储系统管理成本,并影响分布式文件存储系统的应用。
发明内容
本发明提供了分布式文件存储系统及其实现方法,用于动态实现分布式文件存储系统随需启动,避免由于事先启动分布式文件存储服务所带来的诸多问题。
本发明提供的技术方案包括:
一种分布式文件存储系统实现方法,包括:
文件存储服务器在执行分布式文件读操作或分布式文件写操作时,如果自身未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务,如果是,则在自身满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息,利用该同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并执行分布式文件读操作或分布式文件写操作。
一种分布式文件存储系统,包括:至少一个文件存储服务器;其中,
每一文件存储服务器包括:查找单元、同步单元、启动单元、写操作执行单元、和读操作执行单元;
查找单元,用于在所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作时,如果所述文件存储服务器未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务;
同步单元,用于在所述查找单元的查找结果为是时,在所述文件存储服务器满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息;
启动单元,用于所述同步单元同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并触发所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作。
由以上技术方案可以看出,本发明中,文件存储服务器并非事先启动分布式文件存储服务,而是在执行分布式文件读操作或分布式文件写操作时启动分布式文件存储服务,即具有随需启动服务的特性,这完全避免现有技术由于事先启动分布式文件存储服务所带来的诸多问题,节约管理成本。
附图说明
图1为本发明实施例提供的基本流程图;
图2为本发明实施例提供的图1流程举例示意图;
图3为本发明实施例提供的写操作流程图;
图4为本发明实施例提供的步骤301查找写请求需要写入数据的文件是否存在的操作实现流程图;
图5为本发明实施例提供的文件数据存储结构示意图;
图6为本发明实施例提供的读操作流程图;
图7为本发明实施例提供的利用原子查找实现读操作流程图;
图8为本发明实施例提供的局数据动态同步示意图;
图9为本发明实施例提供的局数据动态同步实现流程图;
图10为本发明实施例提供的分布式文件存储系统的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图1,图1为本发明实施例提供的方法流程图。如图1所示,该流程可包括以下步骤:
步骤101,文件存储服务器在执行分布式文件读操作或分布式文件写操作时,如果自身未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务,如果是,执行步骤102。
优选地,作为本发明实施例的一种扩展,步骤101中,当查找结果为否时,则可定期执行上述广播,或者静默,本发明并不具体限定。
步骤102,在自身满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息,利用该同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并执行分布式文件读操作或分布式文件写操作。
至此,完成图1所示的流程。
需要说明的是,在图1所示的流程中,步骤101中,文件存储服务器执行分布式文件读操作或分布式文件写操作是由该文件存储服务器上的应用程序(APP)触发的。下面通过图2举例描述:
如图2所示,假设在一个网络中有三台文件存储服务器:server1至server3。其中,只有server2启动了分布式文件存储服务,即能够随时执行分布式文件读操作或分布式文件写操作。
而当server1上面启动了应用程序App1,而App1需要执行分布式文件读操作或分布式文件写操作时,App1会调用server1上的分布式文件存储服务接口,由该服务接口以广播的方式在网络上寻找是否有分布式文件存储服务,此时会找到server2上的分布式文件存储服务,然后App1会判断server1是否满足分布式文件存储服务的需求比如硬件需求等,如果满足,则会将server2上面的分布式文件存储服务可运行信息比如可运行程序以及策略同步到server1,然后启动server1上面的分布式文件存储服务,执行分布式文件读操作或分布式文件写操作。这样,server1和server2采用互为备份的方式构成了分布式文件存储系统。依次类推,则当server3上面运行APP2时,会启动server3上面的分布式文件存储服务,这样就会构成一个server1至server3组成的分布式文件存储系统。
需要说明的是,本发明中,当某些server上的应用程序停止时不影响该serve上的分布式文件存储服务。
从上面描述可以看出,本发明中,文件存储服务器并非事先启动分布式文件存储服务,而是在执行分布式文件读操作或分布式文件写操作时启动分布式文件存储服务,即具有随需启动服务的特性。这完全避免现有技术由于事先启动分布式文件存储服务所带来的诸多问题。
另外,在上述步骤101中,文件存储服务器(也即文件存储服务器上的APP,下面为描述简便,均简称为文件存储服务器)执行分布式文件写操作可包括图3所示的流程:
参见图3,图3为本发明实施例提供的写操作流程图。如图3所示,该流程可包括以下步骤:
步骤301,文件存储服务器接收客户端发送的写请求时,查找该写请求需要写入数据的文件是否存在,如果是,返回查找到的文件给客户端,之后执行步骤302,如果否,执行步骤303;
步骤302,在客户端选择允许文件多版本时,执行步骤303;在客户端选择允许文件覆盖时,将所述写请求携带的数据覆盖查找到的其中一个文件中的数据;
步骤303,在本地创建新的文件版本号,并将所述写请求携带的数据写入所述文件版本号对应的文件。
其中,文件存储服务器创建的文件版本号是依据该文件存储服务器启动文件存储服务的时间点、该文件存储服务器的IP地址以及该文件存储服务器创建该文件版本号的时间点决定。并且,该文件版本号只在写请求时发生改变,而在读请求时不会变化。
本发明中,之所以为文件创建文件版本号,主要目的是用于区分分布式文件存储系统中不同文件存储服务器上可能出现的同名文件,另外,其也能有助于文件存储服务器对自己管理的相关文件进行命名。
至此,完成图3所示的流程。
其中,上述步骤301中,查找写请求需要写入数据的文件是否存在的操作具体实现时可包括图4所示的流程。
在描述图4所示的流程之前,先描述一下分布式文件存储系统中每一文件存储服务器的文件数据存储结构。如图5所示,本发明中,分布式文件存储系统中每一文件存储服务器针对一个文件,要维护三种局数据列表:本地局数据列表、本地备份局数据列表、外地关联数据列表。
其中,本地局数据列表中的一个局数据至少包括:文件版本号、文件本地路径、文件属性(至少包括文件的名称)构成的,主要用于本地数据的读写及动态数据同步。
本地备份局数据列表中的一个局数据包括文件版本号、文件本地路径、文件属性(至少包括文件的名称)及位置信息(比如ip地址)构成,其中,该位置信息为该文件的备份的来源,也即该文件的备份所在的位置,主要用于备份数据的读写及动态数据同步。
外地关联数据列表中的一个关联数据存放的是位置信息(比如ip地址),该位置信息为与该文件具有不同文件版本号、但相关联的文件所在的位置,一般此列表是空的,除非本机经过数据动态同步后仍然没有空间进行存放,主要用于外地数据的读写及动态数据同步。
为保证分布式文件存储系统的一致性和完整性,整个分布式文件存储系统需要统一的局数据访问和控制策略,该策略可由网络中某一台启用分布式文件存储服务的文件存储服务器决定,其他文件存储服务器在启动分布式文件存储服务后从该文件存储服务器获取局数据访问和控制策略。其中,局数据访问和控制策略可参见图4所示。通过局数据访问和控制策略,能够在各文件存储服务器之间平衡局数据访问,减少了局数据集中瓶颈。
基于图5所示的结构,则如图4所示,该图4所示的流程可包括:
步骤401,在本地存储的本地局数据列表中查找所述写请求需要写入数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤402,如果未查找到,执行步骤402;
步骤402,在本地存储的与所述本地局数据列表对应的本地备份局数据列表中查找所述写请求需要写入数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤403,如果未查找到,执行步骤403;
步骤403,在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述写请求需要写入数据的文件相关联的关联文件所在的位置,如果查找到,则利用所述位置查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
至此,完成图4所示的流程。
通过图4所示的流程可以看出,本发明采用局部管理方式来提高局数据的查询速度及查询局数据的负载,也就是自组织管理局数据。其中,管理局数据的操作主要为:由于局数据分布于各个文件存储服务器,因此,所有文件存储服务器上的局数据组合在一起才成为分布式文件存储系统的局数据,而对于分布于每一文件存储服务器上的局数据,是本地文件存储服务器进行文件存取时产生的,即每一文件存储服务器只存储位于本地的文件对应的局数据,比如,文件a存储于文件存储服务器A,文件b存储于文件存储服务器B,则文件存储服务器A中有文件a的局数据,而无b的局数据,而文件存储服务器B上则有文件b的局数据,而无文件a的局数据,当向文件存储服务器发送写请求时,如果本地局数据列表中没有写请求需要写入数据的文件对应的局数据,则查找本地存储的与所述本地局数据列表对应的本地备份局数据列表、以及本地存储的与所述本地局数据列表对应的外地关联数据列表,这样的方式类似网络中的路由原理,可以有效避免广播查询带来的网络压力。
为了便于后续其他写请求的访问,则在上述步骤403之后进一步包括:文件存储服务器将自身存储的文件备份至启动了分布式文件存储服务、且经过协商确定出的用于备份自身文件的至少一个文件存储服务器,并将自身存储的文件的备份对应的局数据放入本地备份局数据列表中;以及,文件存储服务器将存储了与自身存储的文件相关联的文件、且启动了分布式文件存储服务的文件存储器的位置放入本地存储的外地关联数据列表中。
以上对文件存储服务器执行分布式文件写操作进行了描述,下面通过图6对文件存储服务器执行分布式文件读操作进行描述:
参见图6,图6为本发明实施例提供的读操作流程图。如图6所示,该流程可包括以下步骤:
步骤601,文件存储服务器在本地存储的本地局数据列表中查找读请求需要读数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤602,如果未查找到,执行步骤602。
步骤602,在本地存储的与所述本地局数据列表对应的本地备份数据列表中查找所述读请求需要读数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤603,如果未查找到,执行步骤603;
步骤603,在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述读请求需要读数据的文件相关联的关联文件所在的位置,如果查找到,则利用所述位置查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
至此,完成图6所示的流程。
其中,步骤401、步骤402、步骤403、步骤601、步骤602、以及步骤603中的查找为原子查找或者多结果查找。
其中,原子查找为使用文件名称、以及文件被创建文件版本号的时间查找;所述多结果查找为仅使用文件名称查找。
下面仅以原子查找为例对图6所示的流程进行描述,其他情况原理类似:
参见图7,图7为本发明实施例提供的利用原子查找实现读操作流程图。如图7所示,该流程可包括以下步骤:
步骤701,接收客户端发送的读请求,所述读请求携带以下两个参数:文件名称和文件被创建文件版本号的时间。
步骤702,根据读请求携带的两个参数在本地存储的本地局数据列表中精确查找对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤703,如果未查找到,执行步骤703。
步骤703,根据读请求携带的两个参数在本地存储的与所述本地局数据列表对应的本地备份数据列表中精确查找对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤704,如果未查找到,执行步骤704。
步骤704,根据读请求携带的两个参数在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找关联文件所在的位置,如果查找到,则利用所述位置查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
至此,完成图7所示的流程。
需要说明的是,为保证尽量在本地局数据列表中找到局数据,则可执行局数据动态同步。
其中,该局数据动态同步目的是为了提高本地文件命中率,具体实现时可采用循环备份的策略,其包括同一个文件存储服务器上面主备局数据同步及不同文件存储服务器上面的局数据同步,具体包括:在文件查询的时候如果本地备份局数据列表中查找到一文件的局数据,说明有新的应用加入则将将该查找到的局数据放入与所述本地备份数据列表对应的本地局数据列表中;如果在外地关联数据列表中查找到关联文件所在的位置信息、且利用该位置查找到所述关联文件对应的局数据后,将该查找到的局数据放入与所述外地关联数据列表对应的本地局数据列表中。下面举例进行描述:
参见图8,假如整个网络中有三台文件存储服务器即A、B、C,A、B、C之间循环备份,其中,A、B、C分别部署自己的应用程序,分别为:App1、App2、App3,每台文件存储服务器上面针对每一文件有两个局数据列表(为便于描述,外地关联数据列表在此省略),即本地局数据列表(简称主管理区)和本地备份局数据列表(简称备份管理区)。如果A上面应用为App1,并且,区1为主管理区,区2为备份管理区,该A与C互为备份。则当C上的App3被迁移到A上时,A上面区2中对应App3的局数据就被迁移到区1,当B上APP2迁移到A上时,B上对应App2的局数据被迁移到A上的区1,经过这样动态数据的调整可以保证大部分局数据可以在本地直接命中,提高文件查询的效率。另外如果APP1应用程序在一定的时间段内被停止运行或者迁移走,那么A上对应APP1的局数据就会从区1迁移到区2,这样可以确保区1中的局数据是本机上对应的应用程序需要的文件对应的局数据,当然,如果由于本地数据量超过存储容量的话可以采用就进原则的策略找到临近的文件服务器进行存储,图8中,E区的数据就是因为本地磁盘空间不够而存储的,所以当后台程序发现本地磁盘有空间的时间就会将该E区的数据移到区1。
另外,本发明中,局数据动态同步还可通过其他方式实现,比如图9所示的方式。在图9所示的方式中,需要上述步骤401、步骤402、步骤601、以及步骤602中查找到局数据时,将该局数据的访问次数加上第一设定值,将得到的结果作为该局数据的当前访问次数;以及在步骤403、以及步骤603中查找到位置信息时,将该位置信息的访问次数加上第二设定值,将得到的结果作为该位置信息的当前访问次数;如此,图9所示的流程可包括以下步骤:
步骤901,扫描本地备份数据列表中每一局数据的当前访问次数,如果该当前访问次数达到第一设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该局数据放入该存储空间中。
步骤902,扫描本地存储的外地关联数据列表中每一位置信息的当前访问次数,如果该当前访问次数达到第二设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该位置信息放入该存储空间中。
其中,步骤901至步骤902没有固定的时间先后顺序。
至此,完成本发明提供的方法描述。下面对本发明提供的分布式文件存储系统进行描述:
参见图10,图10为本发明实施例提供的分布式文件存储系统结构图。如图10所示,该系统包括:至少一个文件存储服务器;其中,
每一文件存储服务器包括:查找单元、同步单元、启动单元、写操作执行单元、和读操作执行单元;为简单示意,图10仅以一个文件存储服务器进行详细描述。
其中,查找单元,用于在所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作时,如果所述文件存储服务器未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务;
同步单元,用于在所述查找单元的查找结果为是时,在所述文件存储服务器满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息;
启动单元,用于所述同步单元同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并触发所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作。
优选地,如图10所示,所述写操作执行单元包括:
第一写请求处理单元,用于接收客户端发送的写请求时,查找该写请求需要写入数据的文件是否存在,如果是,返回查找到的文件给客户端,之后触发第二写请求处理单元执行操作,如果否,触发第三写请求处理单元执行操作;
第二写请求处理单元,用于在客户端选择允许文件多版本时,触发第三写请求处理单元执行操作;在客户端选择允许文件覆盖时,将所述写请求携带的数据覆盖查找到的其中一个文件中的数据;
第三写请求处理单元,用于在本地创建新的文件版本号,并将所述写请求携带的数据写入所述文件版本号对应的文件。
其中,所述第一写请求处理单元具体实现时可包括:
第一查找子单元,用于在本地存储的本地局数据列表中查找所述写请求需要写入数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第二查找子单元执行查找操作,如果未查找到,触发第二查找子单元执行查找操作;所述文件对应的局数据至少包括:文件的文件版本号、文件的本地路径、以及文件的名称;
第二查找子单元,用于在本地存储的与所述本地局数据列表对应的本地备份局数据列表中查找所述写请求需要写入数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第三查找子单元执行查找操作,如果未查找到,触发第三查找子单元执行查找操作;所述文件的备份对应的局数据至少包括:该文件的文件版本号、该文件的本地路径、该文件的名称、以及该文件的备份所在的位置信息;
第三查找子单元,用于在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述写请求需要写入数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
本发明中,所述读操作执行单元具体实现时可包括:
第一读请求处理单元,用于接收客户端发送的读请求,在本地存储的本地局数据列表中查找读请求需要读数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第二读请求处理单元执行操作,如果未查找到,触发第二读请求处理单元执行操作;
第二读请求处理单元,用于在本地存储的与所述本地局数据列表对应的本地备份数据列表中查找所述读请求需要读数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第三读请求处理单元执行操作,如果未查找到,触发第三读请求处理单元执行操作;
第三读请求处理单元,用于在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述读请求需要读数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
优选地,为提高本地局数据查找命中率,每一文件存储服务器进一步包括:第一局数据同步单元。
其中,第一局数据同步单元用于在从本地备份数据列表中查找到局数据时,将该查找到的局数据放入与所述本地备份数据列表对应的本地局数据列表中;以及用于在本地存储的外地关联数据列表中查找到关联文件所在的位置信息,且利用该位置信息查找到所述关联文件对应的局数据后,将该查找到的局数据放入与所述外地关联数据列表对应的本地局数据列表中。
优选地,每一文件存储服务器进一步包括:
访问次数计数单元,用于在所述第一查找子单元、第二查找子单元、第一读请求处理单元、以及第二读请求处理单元查找到局数据时,将该局数据的访问次数加上第一设定值,将得到的结果作为该局数据的当前访问次数;以及在第三查找子单元、以及第三读请求处理单元查找到位置信息时,将该位置信息的访问次数加上第二设定值,将得到的结果作为该位置信息的当前访问次数;
第二局数据同步单元,用于扫描本地备份数据列表中每一局数据的当前访问次数,如果该当前访问次数达到第一设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该局数据放入该存储空间中;以及扫描本地存储的外地关联数据列表中每一位置信息的当前访问次数,如果该当前访问次数达到第二设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该位置信息放入该存储空间中。
至此,完成本发明提供的分布式文件存储系统结构描述。
由以上技术方案可以看出,本发明中,文件存储服务器并非事先启动分布式文件存储服务,而是在执行分布式文件读操作或分布式文件写操作时启动分布式文件存储服务,即具有随需启动服务的特性,这完全避免现有技术由于事先启动分布式文件存储服务所带来的诸多问题,节约管理成本;
进一步地,本发明中,为了提高本地文件命中率,还提供了局数据动态同步;
更进一步地,本发明中,整个分布式文件存储系统具有统一的局数据访问和控制策略,能够在各文件存储服务器之间平衡局数据访问,减少了局数据集中瓶颈,节省通信成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种分布式文件存储系统实现方法,其特征在于,该方法包括:
文件存储服务器在执行分布式文件读操作或分布式文件写操作时,如果自身未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务,如果是,则在自身满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息,利用该同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并执行分布式文件读操作或分布式文件写操作;
其中,执行分布式文件写操作包括:
A1,所述文件存储服务器接收客户端发送的写请求时,查找该写请求需要写入数据的文件是否存在,如果是,返回查找到的文件给客户端,之后执行步骤A2,如果否,执行步骤A3;
A2,在客户端选择允许文件多版本时,执行步骤A3;在客户端选择允许文件覆盖时,将所述写请求携带的数据覆盖查找到的其中一个文件中的数据;
A3,在本地创建新的文件版本号,并将所述写请求携带的数据写入所述文件版本号对应的文件。
2.根据权利要求1所述的方法,其特征在于,步骤A3中,所述文件存储服务器创建的文件版本号是依据该文件存储服务器启动文件存储服务的时间点、该文件存储服务器的IP地址以及该文件存储服务器创建该文件版本号的时间点决定。
3.根据权利要求1所述的方法,其特征在于,步骤A1中,查找写请求需要写入数据的文件是否存在包括:
A11,在本地存储的本地局数据列表中查找所述写请求需要写入数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤A12,如果未查找到,执行步骤A12;所述文件对应的局数据至少包括:文件的文件版本号、文件的本地路径、以及文件的名称;
A12,在本地存储的与所述本地局数据列表对应的本地备份局数据列表中查找所述写请求需要写入数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤A13,如果未查找到,执行步骤A13;所述文件的备份对应的局数据至少包括:该文件的文件版本号、该文件的本地路径、该文件的名称、以及该文件的备份所在的位置信息;
A13,在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述写请求需要写入数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
4.根据权利要求3所述的方法,其特征在于,步骤A3之后进一步包括:
A4,文件存储服务器将自身存储的文件备份至启动了分布式文件存储服务、且经过协商确定出的用于备份自身文件的至少一个文件存储服务器,并将自身存储的文件的备份对应的局数据放入本地备份局数据列表中;
A5,所述文件存储服务器将存储了与自身存储的文件相关联的文件、且启动了分布式文件存储服务的文件存储器的位置放入本地存储的外地关联数据列表中。
5.根据权利要求4所述的方法,其特征在于,所述文件存储服务器执行分布式文件读操作包括:
B1,在本地存储的本地局数据列表中查找读请求需要读数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤B2,如果未查找到,执行步骤B2;
B2,在本地存储的与所述本地局数据列表对应的本地备份数据列表中查找所述读请求需要读数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并执行步骤B3,如果未查找到,执行步骤B3;
B3,在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述读请求需要读数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
6.根据权利要求5所述的方法,其特征在于,步骤A11、步骤A12、步骤A13、步骤B1、步骤B2、以及步骤B3中的查找为原子查找或者多结果查找;
所述原子查找为使用文件名称、以及文件被创建文件版本号的时间查找;所述多结果查找为仅使用文件名称查找。
7.根据权利要求5所述的方法,其特征在于,该方法进一步包括:
在从本地备份数据列表中查找到局数据时,将该查找到的局数据放入与所述本地备份数据列表对应的本地局数据列表中;
在本地存储的外地关联数据列表中查找到关联文件所在的位置信息,且利用该位置信息查找到所述关联文件对应的局数据后,将该查找到的局数据放入与所述外地关联数据列表对应的本地局数据列表中。
8.根据权利要求5所述的方法,其特征在于,该方法进一步包括:
在步骤A11、步骤A12、步骤B1、以及步骤B2中查找到局数据时,将该局数据的访问次数加上第一设定值,将得到的结果作为该局数据的当前访问次数;以及在步骤A13、以及步骤B3中查找到位置信息时,将该位置信息的访问次数加上第二设定值,将得到的结果作为该位置信息的当前访问次数;
扫描本地备份数据列表中每一局数据的当前访问次数,如果该当前访问次数达到第一设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该局数据放入该存储空间中;
扫描本地存储的外地关联数据列表中每一位置信息的当前访问次数,如果该当前访问次数达到第二设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该位置信息放入该存储空间中。
9.一种分布式文件存储系统,其特征在于,该系统包括:至少一个文件存储服务器;其中,
每一文件存储服务器包括:查找单元、同步单元、启动单元、写操作执行单元、和读操作执行单元;
查找单元,用于在所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作时,如果所述文件存储服务器未开启分布式文件存储服务,则以广播方式在整个网络中查找是否有其他文件存储服务器启动了分布式文件存储服务;
同步单元,用于在所述查找单元的查找结果为是时,在所述文件存储服务器满足分布式文件存储服务需求时,从启动了分布式文件存储服务的任一文件存储服务器上同步分布式文件存储服务可运行信息;
启动单元,用于所述同步单元同步的可运行信息启动分布式文件存储服务,与其他启动了分布式文件存储服务的文件存储服务器构成分布式文件系统,并触发所述写操作执行单元执行分布式文件写操作或所述读操作执行单元执行分布式文件读操作;
其中,所述写操作执行单元包括:
第一写请求处理单元,用于接收客户端发送的写请求时,查找该写请求需要写入数据的文件是否存在,如果是,返回查找到的文件给客户端,之后触发第二写请求处理单元执行操作,如果否,触发第三写请求处理单元执行操作;第二写请求处理单元,用于在客户端选择允许文件多版本时,触发第三写请求处理单元执行操作;在客户端选择允许文件覆盖时,将所述写请求携带的数据覆盖查找到的其中一个文件中的数据;第三写请求处理单元,用于在本地创建新的文件版本号,并将所述写请求携带的数据写入所述文件版本号对应的文件。
10.根据权利要求9所述的系统,其特征在于,所述第一写请求处理单元包括:
第一查找子单元,用于在本地存储的本地局数据列表中查找所述写请求需要写入数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第二查找子单元执行查找操作,如果未查找到,触发第二查找子单元执行查找操作;所述文件对应的局数据至少包括:文件的文件版本号、文件的本地路径、以及文件的名称;
第二查找子单元,用于在本地存储的与所述本地局数据列表对应的本地备份局数据列表中查找所述写请求需要写入数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第三查找子单元执行查找操作,如果未查找到,触发第三查找子单元执行查找操作;所述文件的备份对应的局数据至少包括:该文件的文件版本号、该文件的本地路径、该文件的名称、以及该文件的备份所在的位置信息;
第三查找子单元,用于在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述写请求需要写入数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
11.根据权利要求10所述的系统,其特征在于,所述读操作执行单元包括:
第一读请求处理单元,用于接收客户端发送的读请求,在本地存储的本地局数据列表中查找读请求需要读数据的文件对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第二读请求处理单元执行操作,如果未查找到,触发第二读请求处理单元执行操作;
第二读请求处理单元,用于在本地存储的与所述本地局数据列表对应的本地备份数据列表中查找所述读请求需要读数据的文件的备份所对应的局数据,如果查找到,提供查找到的局数据给客户端,并触发第三读请求处理单元执行操作,如果未查找到,触发第三读请求处理单元执行操作;
第三读请求处理单元,用于在本地存储的与所述本地局数据列表对应的外地关联数据列表中查找与所述读请求需要读数据的文件相关联的关联文件所在的位置信息,如果查找到,则利用所述位置信息查找到所述关联文件对应的局数据,提供查找到的局数据给客户端。
12.根据权利要求11所述的系统,其特征在于,每一文件存储服务器进一步包括:
第一局数据同步单元,用于在从本地备份数据列表中查找到局数据时,将该查找到的局数据放入与所述本地备份数据列表对应的本地局数据列表中;以及用于在本地存储的外地关联数据列表中查找到关联文件所在的位置信息,且利用该位置信息查找到所述关联文件对应的局数据后,将该查找到的局数据放入与所述外地关联数据列表对应的本地局数据列表中。
13.根据权利要求11所述的系统,其特征在于,每一文件存储服务器进一步包括:
访问次数计数单元,用于在所述第一查找子单元、第二查找子单元、第一读请求处理单元、以及第二读请求处理单元查找到局数据时,将该局数据的访问次数加上第一设定值,将得到的结果作为该局数据的当前访问次数;以及在第三查找子单元、以及第三读请求处理单元查找到位置信息时,将该位置信息的访问次数加上第二设定值,将得到的结果作为该位置信息的当前访问次数;
第二局数据同步单元,用于扫描本地备份数据列表中每一局数据的当前访问次数,如果该当前访问次数达到第一设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该局数据放入该存储空间中;以及扫描本地存储的外地关联数据列表中每一位置信息的当前访问次数,如果该当前访问次数达到第二设定阈值、且与所述本地备份数据列表对应的本地局数据列表中存在空闲的存储空间,则将该位置信息放入该存储空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110349783.0A CN103092891B (zh) | 2011-11-08 | 2011-11-08 | 分布式文件存储系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110349783.0A CN103092891B (zh) | 2011-11-08 | 2011-11-08 | 分布式文件存储系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103092891A CN103092891A (zh) | 2013-05-08 |
CN103092891B true CN103092891B (zh) | 2016-01-27 |
Family
ID=48205468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110349783.0A Active CN103092891B (zh) | 2011-11-08 | 2011-11-08 | 分布式文件存储系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092891B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679772B (zh) * | 2013-11-29 | 2019-01-25 | 深圳市腾讯计算机系统有限公司 | 分布式数据仓库中删除文件的方法、装置、设备及系统 |
CN105187552B (zh) * | 2015-09-29 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种文件异地灾备的方法和装置 |
CN108234566B (zh) * | 2016-12-21 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 一种集群的数据处理方法及装置 |
CN107391669A (zh) * | 2017-07-20 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于文件系统的多版本文件管理方法及装置 |
CN111092934B (zh) * | 2019-11-26 | 2022-06-07 | 福建天泉教育科技有限公司 | 更新客户端路由的方法、存储介质 |
CN113064756A (zh) * | 2021-03-22 | 2021-07-02 | 苏州易辰云信息科技有限公司 | 一种分布式文件存储与备份保护方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480858A (zh) * | 2002-09-03 | 2004-03-10 | 鸿富锦精密工业(深圳)有限公司 | 非结构化数据同步系统及方法 |
CN101644994A (zh) * | 2009-08-20 | 2010-02-10 | 中兴通讯股份有限公司 | 控制磁盘休眠方法与系统及启用磁盘的方法与服务器 |
CN102123167A (zh) * | 2010-12-31 | 2011-07-13 | 成都市华为赛门铁克科技有限公司 | 分布式文件系统及其数据存储处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149918B2 (en) * | 2003-03-19 | 2006-12-12 | Lucent Technologies Inc. | Method and apparatus for high availability distributed processing across independent networked computer fault groups |
-
2011
- 2011-11-08 CN CN201110349783.0A patent/CN103092891B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1480858A (zh) * | 2002-09-03 | 2004-03-10 | 鸿富锦精密工业(深圳)有限公司 | 非结构化数据同步系统及方法 |
CN101644994A (zh) * | 2009-08-20 | 2010-02-10 | 中兴通讯股份有限公司 | 控制磁盘休眠方法与系统及启用磁盘的方法与服务器 |
CN102123167A (zh) * | 2010-12-31 | 2011-07-13 | 成都市华为赛门铁克科技有限公司 | 分布式文件系统及其数据存储处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103092891A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210056074A1 (en) | File System Data Access Method and File System | |
CN103092891B (zh) | 分布式文件存储系统及其实现方法 | |
JP6510112B2 (ja) | データストリーム取り込み及び永続性ポリシ | |
US9852204B2 (en) | Read-only operations processing in a paxos replication system | |
US7685367B2 (en) | Multi-cache cooperation for response output caching | |
CN102012933B (zh) | 分布式文件系统及利用其存储数据和提供服务的方法 | |
CN104301360A (zh) | 一种日志数据记录的方法、日志服务器及系统 | |
US8914379B2 (en) | Index constructing method, search method, device and system | |
US20200387480A1 (en) | Path resolver for client access to distributed file systems | |
US11567837B2 (en) | Journaling data received in a cloud-based distributed computing environment | |
US10114765B2 (en) | Automatic recovery of application cache warmth | |
CN104331428A (zh) | 一种小文件和大文件的存储及访问方法 | |
CN104660643A (zh) | 请求响应方法、装置及分布式文件系统 | |
CN103294167A (zh) | 一种基于数据行为的低能耗集群存储复制装置和方法 | |
CN103150225B (zh) | 基于应用级代理的对象并行存储系统磁盘满异常容错方法 | |
CN104951475B (zh) | 分布式文件系统和实现方法 | |
CN117076391B (zh) | 一种水利元数据管理系统 | |
US20120310912A1 (en) | Crawl freshness in disaster data center | |
CN111190878B (zh) | 一种共享访问nas快照的方法、装置、设备及存储介质 | |
US10296418B2 (en) | Versioned records management using restart era | |
US10970285B2 (en) | Grid topology change in a distributed data grid when iterating on the contents of the data grid | |
CN113722157B (zh) | 一种虚拟机数据管理方法、装置、设备及介质 | |
CN106339279B (zh) | 一种业务恢复方法及装置 | |
US9875120B2 (en) | Virtualized components in computing systems | |
CN118035207A (zh) | 基于HDFS Federation架构的小文件合并方法、装置及相关介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160311 Address after: West high tech Zone Fucheng Road in Chengdu city of Sichuan province 610000 399 No. 6 Building 1 unit 12 floor No. 3 Patentee after: MIGU MUSIC CO., LTD. Address before: 610041 No. 10 Peng Da Road, hi tech Zone, Sichuan, Chengdu Patentee before: China Mobile Communication Group Sichuan Co., Ltd. |