集群镜像同步方法和系统与流程

文档序号:11216392阅读:509来源:国知局
集群镜像同步方法和系统与流程

本发明涉及集群镜像技术领域,特别是涉及一种集群镜像同步方法和系统。



背景技术:

集群系统,是一种计算机系统,将多台同构或异构的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作,集群系统对外表现为一台虚拟主机,集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。镜像技术是将数据同时写入两份独立的磁盘中,如raid1(redundantarrayofindependentdisks1,独立磁盘冗余阵列1),或是写入建立在多个物理资源上的卷资源中。其中,一个资源称为原始文件,另一个资源作为原始文件的副本,称为镜像文件,当原始文件故障时,可以将业务切换至镜像文件,以保证业务不中断。在建立原始文件与镜像文件的镜像关系时,通过执行同步任务将原始文件的所有数据完全同步到镜像文件,在写入业务数据时,将业务数据同时写入原始文件和镜像文件,以保证二者的数据一致。镜像同步功能是集群系统工作的基础,即集群启动时需要在集群服务器之间进行镜像同步操作。而目前常用的集群镜像同步技术常常由于网络中断、读写错误等原因造成镜像同步操作失败,不能及时进行校验及修复,为后续操作造成很多不便。



技术实现要素:

基于此,有必要针对镜像同步操作失败不能及时校验及修复,为后续操作造成不便问题,提供一种集群镜像同步方法和系统。

一种集群镜像同步方法,其特征在于,包括以下步骤:

接收镜像同步指令,所述镜像同步指令包括集群系统信息和原始文件信息,其中所述集群系统信息包括各个节点信息和各个节点指定的文件夹信息;

根据镜像同步指令将当前原始文件镜像同步到集群系统中各个节点指定的文件夹中,得到各个节点的镜像文件;

检测所述当前原始文件信息与所述各个节点的镜像文件信息;

在所述当前原始文件信息与所述各个节点的镜像文件信息相同时,完成镜像同步过程。

一种集群镜像同步系统,包括:

信息获取模块,用于接收镜像同步指令,所述镜像同步指令包括集群系统信息和原始文件信息,其中所述集群系统信息包括各个节点信息和各个节点指定的文件夹信息;

镜像文件同步模块,用于根据镜像同步指令将当前原始文件镜像同步到集群系统中各个节点指定的文件夹中,得到各个节点的镜像文件;

镜像文件检测模块,用于检测所述当前原始文件信息与所述各个节点的镜像文件信息;

镜像同步确定模块,用于在所述当前原始文件信息与所述各个节点的镜像文件信息相同时,完成镜像同步过程。

本发明的集群镜像同步方法和系统,在镜像同步完成后,自动对原始文件信息和节点镜像文件信息进行校验,以保证镜像文件同步成功,避免对后续操作的影响,降低了用户操作难度。

附图说明

图1为本发明的集群镜像同步方法在一实施例中的流程示意图;

图2为本发明的集群镜像同步方法在另一实施例中的流程示意图;

图3为本发明的集群镜像同步方法在其中一实施例中的流程示意图;

图4为本发明的集群镜像同步方法在其中一实施例中的流程示意图;

图5为本发明的集群镜像同步方法在其中一实施例中的流程示意图;

图6为本发明的集群镜像同步系统在其中一实施例中的结构示意图。

具体实施方式

下面将结合较佳实施例及附图对本发明的内容作进一步详细描述。显然,下文所描述的实施例仅用于解释本发明,而非对本发明的限定。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

图1为本发明的集群镜像同步方法在一个实施例中的流程示意图,如图1所示,本发明实施例中的集群镜像同步方法,包括以下步骤:

步骤s110,接收镜像同步指令,接收镜像同步指令,所述镜像同步指令包括集群系统信息和原始文件信息,其中所述集群系统信息包括各个节点信息和各个节点指定的文件夹信息。

集群系统是指一种由互相连接的计算机组成的并行或分布式系统,可以作为单独、统一的计算资源来使用。在本实施例中,集群系统是由至少一台计算机组成的系统,其中将每台计算机记为一个节点。另外,每个节点中存储有至少一个文件夹。原始文件是指需要同步到集群系统中各节点的原始资源。

镜像同步指令可以是用户操作的,其中镜像同步指令中包括集群系统信息和原始文件信息,在镜像同步操作过程中,根据镜像同步指令将原始文件镜像同步至集群系统中各个节点指定的文件夹中。

步骤s120,根据镜像同步指令将当前原始文件镜像同步到集群系统中各个节点内指定的文件夹中,得到各个节点的镜像文件。

步骤s130,检测当前原始文件信息与各个节点的镜像文件信息。

步骤s140,在当前原始文件信息与各个节点的镜像文件信息相同时,完成镜像同步过程。

在将当前原始文件镜像同步至集群系统中各个节点内指定的文件夹后,各个节点都会获得对应的镜像文件。对当前原始文件信息和各个节点的镜像文件信息进行检测分析,在当前原始文件信息与每一个节点的镜像文件信息都相同的时,完成镜像同步过程。

在其中的一个实施例中,如图2所示,在检测当前原始文件信息与各个节点的镜像文件信息的步骤中包括以下步骤:

步骤s131,在当前原始文件和各节点的镜像文件中,随机提取位置相同且数量相等的文件切片序列,对当前原始文件的文件切片序列和各节点的镜像文件的文件切片序列进行函数运算,得到当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码。

具体地,所述函数运算可以是散列值函数运算和/或加密函数运算,其中散列函数可以采用md5函数,加密函数可以采用rc4函数。md5(messagedigestalgorithm5,信息摘要算法5)为计算机安全领域广泛使用的一种散列函数,常被用于加密和解密技术上,可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,不管它的体积多大,都有且只有一个独一无二的md5信息码。md5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了唯一的md5信息摘要,当文件被修改时,它的md5也将随之改变。当两个文件完全相同时,这两个文件对应的md5值也相同。

rc4(rivestcipher4)算法是密钥长度可变的流加密算法簇,是一个可以快速软件实现的新的序列密码算法。rc4算法因其算法简洁、安全性高、易于软件实现,被广泛地应用于各种商业密码产品中,它还是许多重要的加密协议和标准的一部分。对文件序列进行rc4算法运算,能产生对应的文件rc4值。如果两个文件完全相同,这两个文件对应的rc4值也相同。

采用md5函数和/或rc4函数对文件序列进行计算,可以得到文件序列的md5值和/或rc4值,其中文件序列md5值和/或rc4值可以作为文件序列信息码。在本实施例中,在完成镜像同步操作后,在当前原始文件和各节点的镜像文件中,随机提取位置相同且数量相等的文件切片序列,其中提取文件切片序列的数量不是一个定值,可以根据原始文件的大小选择提取合适数量文件切片序列,通常情况下原始文件越大提取文件切片序列数量越多。在提取当前原始文件的文件切片序列与各节点的镜像文件的文件切片序列之后,对当前原始文件的文件切片序列和各节点的镜像文件的文件切片序列进行md5值和/或rc4值计算,并比对当前原始文件的文件切片序列md5值和/或rc4值和各节点的镜像文件的文件切片序列md5值和/或rc4值。

由于md5值及rc4算法在对大文件进行计算时,需要时间较长,且对系统运行会产生一定影响,可能会导致系统运行不流畅,因此在本实施例中,采用在当前原始文件和各节点的镜像文件中,随机提取位置相同且数量相等的文件切片序列进行md5和/或rc4值计算比对,这种比对方式在在保证比对准确性的前提下,极大地提升了比对效率。另外,还可以提升了系统运行地稳定性。

步骤s132,在当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码相同时,完成镜像同步过程。

在当前原始文件的文件切片和各节点的镜像文件的文件切片序列md5值和/或rc4值都相同时,就可以确定当前原始文件信息和各个节点的镜像文件信息相同,然后完成镜像同步操作。

应当理解,所述文件切片序列信息码并不限于文件切片序列md5值和/或rc4值,根据本发明的技术启示,本领域技术人员还可以采用md4值、md2值以及rc2值等作为文件切片序列信息码。

在其中一个实施例中,如图2所示,所述原始文件信息包括文件名称信息和文件大小信息;所述镜像文件信息还包括文件名称信息和文件大小信息;

在所述当前原始文件和各节点的所述镜像文件中,随机提取位置相同且数量相等的文件切片序列的步骤之前,还包括以下步骤:

步骤s133,检测当前原始文件信息与各个节点的镜像文件信息的文件名称信息和文件大小信息;

在当前原始文件信息与各个节点的镜像文件信息的文件名称信息和文件大小信息相同时,随机提取相同位置且相等数量当前原始文件的文件切片序列与各节点的镜像文件的文件切片序列。

在进行镜像同步时,将原始文件中的所有数据完全同步到各个节点,所以正常情况下原始文件信息与各个节点的镜像文件信息应该完成相同,即原始文件信息与各个节点的镜像文件信息中的数据完成一致。但在实际同步操作过程中,由于网络中断、读写错误等原因,致使原始文件信息与各个节点的镜像文件信息可能不相同。因此在完成镜像同步操作后,要对原始文件信息和各个节点的镜像文件信息进行检测。

首先,对原始文件和各个节点的镜像文件的文件名称信息和文件大小信息进行检测对比,当原始文件和各个节点的镜像文件的名称和文件大小信息都不相同时,原始文件信息与各个节点的镜像文件信息肯定不相同,即原始文件与各个节点的镜像同步文件中的数据必然不是完全一致的,提高检测效率。

应当理解,所述当前原始文件信息与各个节点的镜像文件信息并不限于切片序列信息码,根据本发明的技术启示,本领域技术人员还可以采用其他信息作为所述当前原始文件信息和镜像文件信息,实现当前原始文件和镜像文件的比对。

在其中一个实施例中,如图3所示,本发明的集群镜像同步方法,还包括:

步骤s134,在当前原始文件信息与所述各个节点的镜像文件信息不相同时,删除各个节点的镜像文件,重新将当前原始文件镜像同步到集群系统中各个节点。

具体地,在将当前原始文件镜像同步到各节点后,检测当前原始文件信息与各个节点的镜像文件的文件信息,在当前原始文件信息与所述各个节点的镜像文件信息不相同时,表明当前原始文件与各个节点的镜像文件不相同,镜像同步操作失败。在这种情况下,删除所有的镜像文件,重新进行镜像同步操作。在发现同步操作失败后,及时进行修复,方便用户后期对文件的使用。

在其中一个具体实施例中,在当前原始文件与各个节点的镜像文件的文件名称信息和文件大小信息不相同,删除各个节点的镜像文件,重新将当前原始文件镜像同步到集群系统中各个节点。

具体而言,在当前原始文件和各个节点的镜像文件的文件名称信息和文件大小信息不相同时,即当前原始文件与各个节点的镜像文件不相同,表明镜像同步操作失败,在这种情况下,删除所有的镜像文件,重新进行镜像同步操作。在发现同步操作失败后,及时进行修复,方便用户后期对文件的使用。

或者当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码不相同时,在这种情况下,删除所有的镜像文件,重新进行镜像同步操作。在发现同步操作失败后,及时进行修复,方便用户后期对文件的使用。

在其中一个具体实施例中,在当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码不相同时,删除各个节点的镜像文件,重新将当前原始文件镜像同步到集群系统中各个节点。

具体地,在镜像同步操作完成后,首先检测当前原始文件和各个节点的镜像文件的文件名称信息和文件大小信息。在当前原始文件和各个节点的镜像文件的文件名称信息和文件大小信息相同时,检测当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码,在在当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码不相同时,表明镜像同步操作失败,在这种情况下,删除所有的镜像文件,重新进行镜像同步操作。在发现同步操作失败后,及时进行修复,方便用户后期对文件的使用。

在一种可选的实施方式中,如图3所示,删除各个节点的镜像文件,重新将所述当前原始文件镜像同步到集群系统中各个节点之后,还包括:

步骤s135,检测当前原始文件信息与各节点的镜像文件信息。

步骤s136,直至当前原始文件信息与各节点的镜像文件信息相同且当前原始文件镜像同步操作次数小于预设的次数时,完成镜像同步操作。

本实施例中的镜像同步操作预设的次数是可以选择的,可以是系统默认的数值,也可以是在进行镜像同步操作之前,用户选择的操作次数。综合考虑镜像同步操作对系统的影响(例如:运行时间以及运行效率)等因素,镜像同步操作次数不应该太多也不应该太少。一般选择镜像同步操作的次数为3次。

在一种可选的实施方式中,如图4所示,删除各个节点的镜像文件,重新将所述当前原始文件镜像同步到集群系统中各个节点之后,还包括:

步骤s135,检测当前原始文件信息与各节点的镜像文件信息。

步骤s137,在当前原始文件信息与各节点的镜像文件信息不相同且当前原始文件镜像同步操作次数大于预设的次数时,记录镜像同步操作的错误信息。

具体地,在检测当前原始文件与各个节点的镜像文件的文件名称信息和文件大小信息不相同或在当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码不相同时,删除各个节点的镜像文件,重新将当前原始文件镜像同步到集群系统中各个节点,并检测当前原始文件信息与所述各节点的镜像文件信息,在当前原始文件信息与所述各节点的镜像文件信息不相同且当前原始文件镜像同步操作次数大于预设的次数时,记录镜像同步操作的错误信息。

在多次重新镜像同步操作后(即镜像同步操作的次数大于规定的次数时),当前原始文件信息与各节点的镜像文件信息依然不相同时,记录镜像同步操作的错误信息。可选地,可以将镜像同步操作的错误信息记录在日志中,并返回错误信息,其中镜像同步操作的错误信息可以包括当前的镜像同步文件信息、镜像同步操作错误的原因等,便于系统维护人员的查看,增加了维护的效率。

在一种可选的实施方式中,接收镜像同步指令之前,还包括:

步骤s150,启动wed系统,web系统调用shutil模块发送镜像同步指令。

web系统的启动,需要一条全局命令,例如pythonmanager.py。web系统启动脚本依赖于某种运行环境和启动命令,如:javac/python/php,或是已封装好的tomcat脚本./start.sh;系统启动后,用户在web端进行镜像启用操作,后台接受到用户操作后,使用shutil模块将用户选择的原始文件镜像同步至集群系统各节点指定文件夹中,然后利用shutil模块对原始文件信息和各节点镜像文件信息进行检测。

为了便于理解本发明,提供一个更加详细的实施例。如图5所示,一种集群镜像同步方法,具体步骤如下:

步骤510,启动web系统。

步骤511,系统启动后,用户在web端选择原始文件信息和集群系统,发送镜像同步操作指令至镜像同步系统;

步骤512,镜像同步系统接收镜像同步指令后,使用shutil模块将用户选择的镜像文件同步至集群服务器指定文件夹中;

步骤513,镜像同步操作完成后,校验原始文件信息与各节点镜像文件信息文件名;

步骤514,校验原始文件信息与各节点镜像文件信息;若是,进行步骤515;若否,进行步骤518;

步骤515,随机抽取等数量且相同位置的原始文件的文件切片序列与各节点镜像文件的子文件切片序列,其中抽取文件切片序列的数量由镜像文件大小决定;若是,进行步骤516;若否,进行步骤518;

步骤516,原始文件的文件切片序列与各节点镜像文件的子文件切片序列进行md5值及rc4值计算,并进行比对;若是,进行步骤518;若否,进行步骤518;

步骤517,若比对结果为相同,则操作成功,完成镜像同步过;否则进行步骤518;

步骤518,校验不一致;

步骤519,删除各节点镜像文件信息并重复步骤512-517;并记录镜像同步操作次数;

步骤520,判断镜像同步操作次数是否小于三次;若是,进行步骤521;若否,进行步骤512。

步骤521,记录错误信息至日志文件并返回同步结果至web端用户。

根据上述本发明的集群镜像同步方法,本发明还提供一种集群镜像同步系统,下面结合附图及较佳实施例对本发明的集群镜像同步系统进行详细说明。

图6为本发明的集群镜像同步系统在一个实施例中的结构示意图。如图6所示,该实施例中的集群镜像同步系统,包括:

信息获取模块10,用于接收镜像同步指令,镜像同步指令包括集群系统信息和原始文件信息,其中集群系统信息包括各个节点信息和各个节点指定的文件夹信息。

镜像文件同步模块20,用于根据镜像同步指令将当前原始文件镜像同步到集群系统中各个节点指定的文件夹中,得到各个节点的镜像文件。

镜像文件检测模块30,用于检测当前原始文件信息与各个节点的镜像文件信息。

镜像同步确定模块40,用于在当前原始文件信息与各个节点的镜像文件信息相同时,完成镜像同步过程。

在其中一个实施例中,参照图6所示,镜像文件检测模块30还包括文件切片信息码计算模块31:

文件切片信息码计算模块31,用于在当前原始文件和各节点的镜像文件中,随机提取位置相同且数量相等的文件切片序列,对当前原始文件的文件切片序列和各节点的镜像文件的文件切片序列进行函数运算,得到当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码。

镜像确定模块40用于在所述当前原始文件的文件切片序列信息码和所述各节点的镜像文件的文件切片序列信息码相同时,完成镜像同步过程。

在其中一个实施例中,参照图6所示,所述原始文件信息还包括文件名称信息和文件大小信息;所述镜像文件信息还包括文件名称信息和文件大小信息;

镜像文件检测模块30还包括文件属性信息检测模块:

文件属性信息检测模块32用于检测当前原始文件信息与各个节点的镜像文件信息的文件名称信息和文件大小信息;

文件切片信息码计算模块31用于在当前原始文件信息与各个节点的镜像文件信息的文件名称信息和文件大小信息相同,随机提取相同位置且相等数量当前原始文件的文件切片序列与各节点的镜像文件的文件切片序列,对当前原始文件的文件切片序列和各节点的镜像文件的文件切片序列进行函数运算,得到所述当前原始文件的文件切片序列信息码和各节点的镜像文件的文件切片序列信息码。

在其中一个实施例中,参照图6所示,镜像文件同步模块20还用于在当前原始文件信息与各个节点的镜像文件信息不相同时,删除各个节点的镜像文件,重新将当前原始文件镜像同步到集群系统中各个节点。

在其中一个实施例中,参照图6所示,镜像文件检测模块30还用于检测当前原始文件信息与各节点的镜像文件信息。

镜像同步确定模块40还用于在当前原始文件信息与所述各节点的镜像文件信息相同且当前原始文件镜像同步操作次数小于预设的次数时,完成镜像同步操作。

在其中一个实施例中,参照图6所示,还包括镜像错误信息存储模块50:

镜像文件检测模块30用于检测所述当前原始文件信息与所述各节点的镜像文件信息

镜像错误信息存储模块50用于在所述当前原始文件信息与所述各节点的镜像文件信息不相同且当前原始文件镜像同步操作次数大于预设的次数时,记录镜像同步操作的错误信息。

在其中一个实施例中,参照图6所示,还包括:

web启动模块60,用于启动wed系统,web系统调用shutil模块发送镜像同步指令。

上述集群镜像同步系统可执行本发明实施例所提供的集群镜像同步方法,具备执行方法相应的功能模块和有益效果。至于其中各个功能模块所执行的处理方法,例如信息获取模块10、镜像文件同步模块20、镜像文件检测模块30、镜像同步确定模块40、镜像错误信息存储模块50,可参照上述方法实施例中的描述,此处不再进行赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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