一种基于分布式云平台的档案块同步方法技术

技术编号:30534064 阅读:14 留言:0更新日期:2021-10-30 13:08
本发明专利技术所请求保护的一种基于分布式云平台的档案块同步方法,按层级和模块化方式设计并实现了增量同步备份工具,底层负责数据存储,负责通信和数据传输,针对实时同步需求,采用Inotify机制监控文件,核心数据同步采用RAMM算法和无分区单哈希布隆过滤器实现了高效的增量同步,而控制模块负责整体的控制和调度,还有日志记录和异常处理等,以档案块分区的方式寻找增量,再将增量部分的档案块通过档案块块层进行同步。同时,本发明专利技术全面结合当前分布式区块链技术架构,共识层采用共识机制,识别节点之间的不信任情况,使交易双方在无需第三方参与的情况下达成一致,信息由所有档案块块共同维护。块块共同维护。块块共同维护。

【技术实现步骤摘要】
一种基于分布式云平台的档案块同步方法


[0001]本专利技术属于网络档案块同步
,涉及一种基于分布式云平台的档案块同步方法,特别是在云数据中心内进行镜像档案块分发时,对新、旧不同版本镜像档案块进行差异比较而基于特殊档案块分块方式的镜像档案块同步方法。

技术介绍

[0002]一个网络系统中可能共享规模巨大的档案块,并需要在各个主机端保持档案块版本的一致。例如在大型数据中心中向各个主机分发新版本的操作系统镜像时,为了同步系统内各主机所保存的镜像档案块,需要把新版本档案块分发给系统中每一个主机。但是,传输整个镜像档案块不仅耗时长,而且会导致网络压力过大。由于新版本镜像档案块往往与旧版本档案块差异很小,与完整的镜像档案块相比,这些差异仅仅是一小部分。因此,如何获取这些差异之处,以实现差异档案块与旧版本档案块的合并成为解决上述问题的瓶颈。
[0003]近年来,为了探查两个档案块的不同,研究涉及操作系统、远程桌面、P2P镜像档案块部署等等多个方面,所取得的成果主要有:
[0004](1)档案块分块方法:该方法首先将需要传输的档案块分为若干块,之后以档案块为单位比较新旧两个档案块的差异,按块校验数据。Linux下diff命令按“行”为单位进行差异比较也采用类似思想。对档案块分块,相当于把大档案块的档案块数量缩小,并把档案块的数据量抽象为档案块的数量。计算得到的档案块差异同样以档案块为最小单位。计算所得差异量越小,方法的精度越高。不过,如果档案块所分块足够多,也就是一个档案块足够小,那么分块计算得到的差异量很接近于实际上的差异量。
[0005](2)档案块定长分块法:
[0006]对于档案块定长分块,目前最主要的分块方式来自于固定分块检测技术(Fixed

Sized Partition,FSP)。此方法非常简单,时间效率很高,广泛用于下载软件的档案块正确性测试。方法输入量为档案块总长度与所需分块数量,即可将此档案块按照“档案块长度=文件总长度/所需分块数量”的结果来固定划分档案块,末尾长度不足,直接划分为一块。对于此分块方法,在进行差异运算的过程中,完全可以一一对应计算。即把需要对比的两个档案块均按照同样块长度分块,且依次编写档案块号,之后对比两个档案块中相同块号的档案块内容是否一致。
[0007](3)档案块不定长分块法:
[0008]不定长分块又称变长分块,是为了克服定长分块在对比差异时“错位”问题而提出的。目前效果较好的已有方法是基于内容的不定长分块(Content

Defined Chunking,CDC)。此方法考虑档案块的内容,定位分块的标志点并划分块,之后在档案块的分块描述中记录下每个块的分块标志,并以此描述指导另一个档案块的划分。
[0009]对于以上问题分析得知,导致档案块对比差异不精确的问题正是上述“错位”问题的存在。而如何解决错位问题成为本领域的一大难题。尤其,随着分布式区块链技术的运用,结合区块链架构对档案块进行同步的技术亟待更大提升。

技术实现思路

[0010]为解决当前档案块同步时面临的种种问题,本申请请求保护一种基于分布式云平台的档案块同步方法,采用分布式区块链网络完成档案块同步,其特征在于,包括:
[0011]客户端和服务端进行通信交互,保证档案块的传输,采用TCP/IP链路,使用多线程方式提高传输效率;
[0012]数据层对整个区块进行控制管理,完成调度,区块产生故障的信息都会反馈进行处理,处理产生的故障信息,一旦产生故障就通知故障区块进行处理,从而保证客户端与服务端的正常持续运行;
[0013]实时监控指定目录或档案块的变化情况,当被监控的档案块发生变化时,会将档案块变更以账本的形式生成队列,等待控制处理,至少包含目录或档案块监控、账本队列处理;
[0014]应用层以档案块分区的方式寻找增量,再将增量部分的档案块通过档案块层进行同步,至少包括档案块控制、档案块分区、分区校验;
[0015]共识层采用共识机制,识别节点之间的不信任情况,使交易双方在无需第三方参与的情况下达成一致,信息由所有档案块共同维护。
[0016]进一步地,所述客户端和服务端进行通信交互,保证档案块的传输,采用TCP/IP链路,使用多线程方式提高传输效率,还包括:
[0017]初始化开始首先读取配置档案块信息,获取至少IP地址、网络端口信息;
[0018]通过createMainThread()函数创建主线程,主要负责网络通信链接。执行主线程,监听获取到的网络端口,等待服务端响应消息;
[0019]服务端响应来自客户端的请求时,主线程响应请求创建子线程,主要负责两端的档案块传输;
[0020]子线程完成通信传输后关闭,主线程仍保持监听端口,等待下一次链接。
[0021]进一步地,所述数据层对整个区块进行控制管理,完成调度,区块产生故障的信息都会反馈进行处理,处理产生的故障信息,一旦产生故障就通知故障区块进行处理,从而保证客户端与服务端的正常持续运行,还包括;
[0022]负责流程内部各区块之间的协调合作、记录日志、故障处理;
[0023]产生日志消息,日志记录运行时发生的一些状况,至少包括系统运行的日志和档案块变更的日志;故障消息的处理,定义一个消息队列,并使用api对其进行管理维护;
[0024]使用initControl()函数进行初始化,接着创建消息队列,设置必要的全局变量并且初始化;
[0025]使用msgrcv函数接收指定的消息,然后做出响应;
[0026]如果收到消息继续判断消息类型,没有收到消息则继续等待;
[0027]判断接收的消息类型,根据不同的类型转给下一步进行操作,如果是日志类型则转给日志子区块进行处理,如果是故障则转给故障子区块进行处理;
[0028]重复接收消息,直到主动结束;
[0029]所述产生日志消息,日志记录运行时发生的一些状况,至少包括系统运行的日志和档案块变更的日志,日志的消息处理还包括:
[0030]首先初始化区块,包括各种参数初始化、读取系统日志和档案块变更日志的档案
块路径;
[0031]根据读取的信息判断日志类型,并解析日志的详细内容;
[0032]根据不同的类型写入对应的日志档案块,如果日志类型是档案块变更类型则把其记录到档案块变更日志中,否在就记录到系统日志中;
[0033]根据不同的日志类型按照对应的格式内容记录到相应的日志中;
[0034]所述故障消息的处理还包括:
[0035]首先初始化区块,包括需要的参数和档案块路径初始化;
[0036]接收到故障消息后,获取其故障类型和详细的故障描述,根据不同的故障类型进行不同的处理;
[0037]将不同的故障类型及内容按照上述的格式记录到系统日志中,以便查看时可以更快地找到故障来源并修复;
[0038]如果判断故障非常严重,已本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式云平台的档案块同步方法,采用分布式区块链网络完成档案块同步,其特征在于,包括:客户端和服务端进行通信交互,保证档案块的传输,采用TCP/IP链路,使用多线程方式提高传输效率;数据层对整个区块进行控制管理,完成调度,区块产生故障的信息都会反馈进行处理,处理产生的故障信息,一旦产生故障就通知故障区块进行处理,从而保证客户端与服务端的正常持续运行;实时监控指定目录或档案块的变化情况,当被监控的档案块发生变化时,会将档案块变更以账本的形式生成队列,等待控制处理,至少包含目录或档案块监控、账本队列处理;应用层以档案块分区的方式寻找增量,再将增量部分的档案块通过档案块层进行同步,至少包括档案块控制、档案块分区、分区校验;共识层采用共识机制,识别节点之间的不信任情况,使交易双方在无需第三方参与的情况下达成一致,信息由所有档案块共同维护。2.如权利要求1所述的一种基于分布式云平台的档案块同步方法,其特征在于,包括,所述客户端和服务端进行通信交互,保证档案块的传输,采用TCP/IP链路,使用多线程方式提高传输效率,还包括:初始化开始首先读取配置档案块信息,获取至少IP地址、网络端口信息;通过createMainThread()函数创建主线程,主要负责网络通信链接,执行主线程,监听获取到的网络端口,等待服务端响应消息;服务端响应来自客户端的请求时,主线程响应请求创建子线程,主要负责两端的档案块传输;子线程完成通信传输后关闭,主线程仍保持监听端口,等待下一次链接。3.如权利要求1所述的一种基于分布式云平台的档案块同步方法,其特征在于,包括,所述数据层对整个区块进行控制管理,完成调度,区块产生故障的信息都会反馈进行处理,处理产生的故障信息,一旦产生故障就通知故障区块进行处理,从而保证客户端与服务端的正常持续运行,还包括;负责流程内部各区块之间的协调合作、记录日志、故障处理;产生日志消息,日志记录运行时发生的一些状况,至少包括系统运行的日志和档案块变更的日志;故障消息的处理,定义一个消息队列,并使用api对其进行管理维护;使用initControl()函数进行初始化,接着创建消息队列,设置必要的全局变量并且初始化;使用msgrcv函数接收指定的消息,然后做出响应;如果收到消息继续判断消息类型,没有收到消息则继续等待;判断接收的消息类型,根据不同的类型转给下一步进行操作,如果是日志类型则转给日志子区块进行处理,如果是故障则转给故障子区块进行处理;重复接收消息,直到主动结束;所述产生日志消息,日志记录运行时发生的一些状况,至少包括系统运行的日志和档案块变更的日志,日志的消息处理还包括:首先初始化区块,包括各种参数初始化、读取系统日志和档案块变更日志的档案块路
径;根据读取的信息判断日志类型,并解析日志的详细内容;根据不同的类型写入对应的日志档案块,如果日志类型是档案块变更类型则把其记录到档案块变更日志中,否在就记录到系统日志中;根据不同的日志类型按照对应的格式内容记录到相应的日志中;所述故障消息的处理还包括:首先初始化区块,包括需要的参数和档案块路径初始化;接收到故障消息后,获取其故障类型和详细的故障描述,根据不同的故障类型进行不同的处理;将不同的故障类型及内容按照上述的格式记录到系统日志中,以便查看时可以更快地找到故障来源并修复;如果判断故障非常严重,已有处理方法无法解决时,会通知管理人员进行检测维护。4.如权利要求1所述的一种基于分布式云平台的档案块同步方法,其特征在于,包括,所述实时监控指定目录或档案块的变化情况,当被监控的档案块发生变化时,会将档案块变更以账本的形式生成队列,等待控制处理,至少包含目录或档案块监控、账本队列处理,还包括:读取配置档案块中需要被监控的对象,如果是档案块,则直接对该档案块进行监控,如果是目录,则需要对该目录进行递归遍历所有的子目录,对其所有子目录创建监控实例进行监控;利用epoll技术以账本驱动作为响应的级别,只对产生了账本触发的档案块描述符进行处理,当被监控的档案块描述符上有可读写账本发生时,epoll_wait()会通知处理程序去读写;如果这次没有把档案块全部读写完,那么下次调用epoll_wait()时,它不会再次通知,也就是它只会通知一次,直到该档案块...

【专利技术属性】
技术研发人员:李帅
申请(专利权)人:中盾创新档案管理北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1