文件同步的方法和系统与流程

文档序号:11155373阅读:570来源:国知局
文件同步的方法和系统与制造工艺

本发明涉及计算机领域,具体来说,涉及一种文件同步的方法和一种文件同步的系统。



背景技术:

在计算机领域中,数据是信息的载体,所以对数据的保护十分重要。因此如何正确、有效地将数据保护起来,是当今较为重要的研究课题。复制,即是实现数据保护的途径之一。复制,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合并复制到其它的存储介质的过程。按复制的对象来区分,现有的复制可分为文件复制、数据库复制、块级复制、虚拟化复制等。其中,文件复制是所有复制方式中使用最为广泛的一种。

现有的一种远程文件复制技术,在复制文件过程中,在父目录未创建时,会导致文件频繁创建不成功,文件可能晚于父目录到达访问修改文件,引起父目录元数据的变化。

针对相关技术中父目录未创建时文件创建不成功及因此导致的父目录元数据变化的问题,目前尚未提出有效的解决方案。



技术实现要素:

针对相关技术中父目录未创建时文件创建不成功及其导致的父目录元数据变化的问题,本发明提出一种文件同步的方法和一种文件同步的系统,能够提高复制系统的服务能力,避免父目录未创建时文件创建不成功及因此导致的父目录元数据变化的问题。

本发明的技术方案是这样实现的:根据本发明的一个方面,提供了一种文件同步的方法。

该文件同步的方法包括:获取用户设置的策略并根据策略获取已经修改的数据,数据包括文件列表;将文件列表分解为复制子任务,复制子任务包括:文件夹子任务和文件子任务;对文件夹子任务进行文件夹比对,并完成文件夹子任务的复制;以及对文件子任务进行文件比对,完成文件子任务的复制。

优选地,数据还包括:目录;以及复制子任务还包括:目录层深子任务。

优选地,在对文件子任务进行文件比对,完成文件子任务的复制之后,还包括:从目录的最深一层形开始,逐层完成目录的元数据修改。

优选地,在对文件夹子任务进行文件夹比对,并完成文件夹子任务的复制之前,还包括:将复制子任务下盘保存。

优选地,在将复制子任务下盘保存之后,还包括:将复制子任务添加到策略中。

优选地,文件子任务包括:小文件子任务和大文件子任务。

优选地,完成文件子任务的复制,包括:完成小文件子任务的复制;以及完成大文件子任务的复制。

优选地,大文件子任务为文件大小在4M以上的文件子任务;以及小文件子任务为文件大小小于4M的文件子任务。

根据本发明的另一个方面,还提供了一种文件同步的系统。

该文件同步的系统包括:管理节点,用于获取用户设置的策略;文件复制控制器,与管理节点通信连接,用于保存策略并管理策略的执行;文件扫描控制器,与文件复制控制器通信连接,用于根据策略获取已经修改的数据;以及文件复制服务器,与文件复制控制器通信连接,用于将数据分解为复制子任务、进行文件夹比对、进行文件比对、完成复制子任务的复制。

优选地,还包括:管理节点还用于管理文件复制控制器和文件复制服务器;以及文件复制控制器还用于完成目录的元数据修改。

本发明通过将文件列表分解为子文件夹子任务和文件子任务,并通过在进行文件夹子任务的复制前进行文件夹比对、在进行文件子任务的复制前进行文件比对,避免了父文件目录未创建时频繁创建文件不成功的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的文件同步的方法的流程图;

图2是根据本发明另一个实施例的文件同步的方法的流程图;

图3是根据本发明实施例的文件同步的系统的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明的实施例,提供了一种文件同步的方法。

如图1所示,根据本发明实施例的文件同步的方法包括:

步骤S101,获取用户设置的策略并根据策略获取已经修改的数据,数据包括文件列表;

步骤S103,将文件列表分解为复制子任务,复制子任务包括:文件夹子任务和文件子任务;

步骤S105,对文件夹子任务进行文件夹比对,并完成文件夹子任务的复制;

步骤S107,对文件子任务进行文件比对,完成文件子任务的复制。

本发明的文件同步的方法,通过将文件列表分解为子文件夹子任务和文件子任务,并通过在进行文件夹子任务的复制前进行文件夹比对、在进行文件子任务的复制前进行文件比对,避免了父文件目录未创建时频繁创建文件不成功的问题。

在一个实施例中,上述数据还包括目录,相应的复制子任务还包括目录层深子任务。

进一步地,在步骤S107之后,还包括以下步骤:从目录的最深一层形开始,逐层完成目录的元数据修改。

由于文件可能晚于父目录到达访问修改文件将引起父目录元数据的变化,最终影响目录的元数据属性。通过将目录按层级关系,从最深层到根,逐层进行目录的元数据修改,能够保证目录元数据属性的一致性、所有文件夹的元数据属性都和源端一致。

在一个实施例中,在步骤S105之前还包括以下步骤:

将复制子任务下盘保存;

将复制子任务添加到策略中。

在本实施例中,当所有复制子任务均处理完成后,更新策略的执行信息为已完成。如果策略为周期执行,则返回步骤S101。

如图2所示,根据本发明另一个实施例的文件同步的方法,具体包括如下步骤:

在步骤S201中,查看策略调度时间;

在步骤S202中,判断执行时间是否到来,如果执行时间没有到,则返回步骤S201;

在步骤S203中,当执行时间到来后,从文件扫描控制器oScan获取目录和文件列表;

在步骤S204中,将目录和文件列表分解为文件夹子任务、文件子任务、和目录层深子任务;

在步骤S205中,将文件夹子任务、文件子任务、和目录层深子任务下盘保存;

在步骤S206中,将文件夹子任务、文件子任务、和目录层深子保存在策略链表中;

在步骤S207中,检测正在执行的策略数,并将正在执行的策略数与设定的策略数进行比较;

在步骤S208中,当正在执行的策略数小于设定的策略数时,选取可执行任务的文件复制控制器oBks;

在步骤S209中,向文件复制控制器oBks发送文件夹子任务;

在步骤S210中,判断文件夹子任务是否完成;

在步骤S211中,在文件夹子任务完成的情况下,向文件复制控制器oBks发送文件子任务;

在步骤S212中,判断文件子任务是否完成;

在步骤S213中,在文件子任务完成的情况下,向文件复制控制器oBks发送目录层深子任务;

在步骤S214中,等待目录层深子任务完成。

在本实施例中,通过将文件列表和目录分解为文件夹子任务、文件子任务、和目录层深子任务,将文件夹子任务、文件子任务、和目录层深子任务下盘存储,并依次完成文件夹子任务、文件子任务、目录层深子任务的复制,降低了内存使用,提高了复制系统的服务能力。

在一个实施例中,文件子任务包括:小文件子任务和大文件子任务。

其中,小文件子任务和大文件子任务可以根据实际需要进行划分。例如,大文件子任务为文件大小在4M以上的文件子任务;小文件子任务为文件大小小于4M的文件子任务。

进一步地,完成文件子任务的复制,包括以下步骤:

完成小文件子任务的复制;

完成大文件子任务的复制。

根据本发明的实施例,还提供了一种文件同步的系统。

根据本发明实施例的文件同步的系统包括:

管理节点模块:用于获取用户设置的策略;

文件复制控制器,用于保存策略并管理策略的执行;

文件扫描控制器,用于根据策略获取已经修改的数据;

文件复制服务器,用于将数据分解为复制子任务、进行文件夹比对、进行文件比对、完成复制子任务的复制。

本发明的文件同步的系统,通过文件复制服务器将文件列表分解为子文件夹子任务和文件子任务、并在进行文件夹子任务的复制前进行文件夹比对、在进行文件子任务的复制前进行文件比对,避免了父文件目录未创建时频繁创建文件不成功的问题。

在一个实施例中,管理节点还用于管理文件复制控制器和文件复制服务器;文件复制控制器还用于完成目录的元数据修改。

具体的,文件复制控制器控制各个策略的生命周期,保证策略间按照调度方案有序的执行,在策略运行的过程中,触发策略进入不同的策略状态,执行文件的同步。文件复制控制器还可以用于查询策略,若策略执行时间到来,则启动策略执行。

参考图3,对应于源端设置有第一文件扫描控制器oScan1、与第一文件扫描控制器oScan1通信连接的第一文件复制控制器oBke1、与第一文件复制控制器oBke1通信连接的至少一组第一文件复制服务器oBks1和第一管理节点模块MGR1;对应于目标端设置有第二文件扫描控制器oScan2、与第二文件扫描控制器oScan2通信连接的第二文件复制控制器oBke2、与第二文件复制控制器oBke2通信连接的至少一组第二文件复制服务器oBks2和第二管理节点模块MGR2;其中,源端对应的第一文件复制控制器oBke1与目标端对应的第二文件复制控制器oBke2通信连接,源端对应的第一文件复制服务器oBks1与目标端对应的第二文件复制服务器oBks2通信连接。

用户可以从界面添加复制的源端和目标端节点,设置策略,设定成功的策略保存在第一文件复制控制器oBke1和第二文件复制控制器oBke2;目标端的第二文件复制控制器oBke2从第二文件扫描控制器oScan2上获取基于该策略所修改的数据并将这些数据分解成子任务;在子任务分解完成后,会向各个第二文件复制服务器oBks2推送子任务,第二文件复制服务器oBks2接到子任务后将执行,从而将数据从源端复制到目标端,并修改元数据,同时将子任务执行结果返回给第二文件复制控制器oBke2。

综上所述,借助于本发明的上述技术方案,通过将文件列表和目录分解为文件夹子任务、文件子任务、目录层深子任务并下盘存储,依次完成文件夹子任务、文件子任务、目录层深子任务的复制,并在进行文件夹子任务的复制前进行文件夹比对、在进行文件子任务的复制前进行文件比对,避免了父文件目录未创建时频繁创建文件不成功的现象,解决了因文件晚于父目录到达访问修改文件引起的父目录元数据变化的问题;通过按照层级关系从最深层到根逐层进行目录元数据的修改,保证了目录元数据属性与源端的一致性,降低了内存使用,提高了复制系统的服务能力。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1