基于分块索引的镜像数据复用与更新原子化方法和装置

摘要: 本发明涉及移动终端桌面镜像管理、分布式存储、端云协同数据同步以及镜像一致性保护,尤其涉及一种基于分块索引的镜像数据复用与更新原子化方法和装置。背景技术:1、随着...
基于分块索引的镜像数据复用与更新原子化方法和装置

本发明涉及移动终端桌面镜像管理、分布式存储、端云协同数据同步以及镜像一致性保护,尤其涉及一种基于分块索引的镜像数据复用与更新原子化方法和装置。

背景技术:

1、随着云桌面、桌面虚拟化、移动办公和可信终端技术的发展,用户的工作环境正在由传统的单机本地运行环境逐渐演化为能够跨设备迁移、跨终端恢复并持续同步的桌面镜像集合。在手机、平板、云桌面终端以及远程桌面环境之间切换已成为常态,用户希望在不同终端上延续同一套应用状态、桌面配置、文档数据和运行环境。因此,桌面镜像已不再是一次性静态备份对象,而是贯穿采集、上传、复用、更新、恢复与校验全流程的动态数据对象。

2、在移动终端桌面镜像场景中,一个用户往往拥有多个镜像,例如工作镜像、生活镜像、开发镜像和测试镜像等。不同镜像在用途上相互独立,但在实际内容上经常高度重叠。现有去重系统虽然能够通过块摘要或内容指纹识别重复数据,但大多服务于跨用户、跨租户或通用对象存储场景,侧重点在全局去重、跨节点扩展和大规模索引分片。对于移动终端桌面镜像场景而言,这些方案存在明显不匹配之处。

3、首先,桌面镜像数据通常涉及用户隐私和应用状态,很多系统采用用户独立密钥保护数据块,不适合进行跨用户密文复用。其次,移动终端侧资源受限,不宜频繁执行复杂的全局索引查询和远程元数据聚合。再次,本场景并不以长期保存大量镜像历史版本为首要目标,而更关注当前镜像如何高效同步、稳定切换以及在需要时被正确还原。因此,传统以全局去重、全局索引扩展和多版本长期保留为核心目标的方案,并不能直接解决本场景下的关键问题。

4、除冗余存储和索引开销外,镜像增量更新的一致性风险是现有技术的突出难点。桌面镜像更新以分块形式进行,终端上传变化部分后,云端需完成接收、落盘等多步骤才算完成。在网络波动、终端异常或存储节点故障等情况下,更新易陷入中间状态,如块入库但索引未切换、索引登记但块未校验等,导致系统处于半更新状态,引发镜像损坏、恢复失败等问题。

5、传统断点续传仅解决传输中断后的续传问题,关注字节流偏移,无法保障镜像版本状态一致性,即便减少重复传输,也不能确保数据块与目标版本逻辑正确,无法保证镜像清单、版本标识等在异常后可判定,也不能保障未完成更新时旧版本稳定可用,仅靠传输层补偿无法满足原子提交要求。镜像还原路径同样存在问题,终端还原时若被中断,系统粗粒度判断易导致重复下载或拼装出逻辑不完整的镜像。此外,现有底层事务化方案多依赖特定文件系统或内核改造,而移动终端桌面镜像系统更适合应用层实现,不侵入底层文件系统。因此,亟需一种适配移动终端资源与网络条件,能在应用层实现数据复用、增量更新与最终一致性保障的管理方法。

技术实现思路

1、本发明提供一种基于分块索引的镜像数据复用与更新原子化方法,用以解决现有技术中单用户多镜像场景下镜像间数据重复存储、分布式查重开销高、更新过程中易出现半更新状态以及镜像还原后难以保证最终一致性;传统断点续传仅保障传输层连续性而无法确保镜像版本逻辑一致性;镜像还原缺乏状态收敛机制导致中断后难以恢复到正确版本的缺陷,实现

2、在保证数据隔离的同时显著降低存储与信令开销,以及更新过程的非全即无语义,使镜像仅在全部目标块写入和校验完成后整体生效。

3、本发明提供一种基于分块索引的镜像数据复用与更新原子化方法,方法应用于由一个用户的多个移动终端、云端固定主节点、元数据存储模块和密文块存储模块构成的端云协同镜像管理系统中,包括如下步骤。

4、在接收到移动终端发起的镜像更新请求或镜像还原请求后,根据用户标识,路由至目标云端固定主节点;

5、通过移动终端,基于采集到的目标镜像的数据,进行分块处理和数据块生成,得到多个独立寻址数据块的数据块信息;基于用户对应密钥,对待上传的新增块进行加密,得到密文块及校验信息;其中,新增块为多个独立寻址数据块中的一个;通过云端固定主节点,维护用户级全局块索引和各数据块信息;

6、在检测到更新请求的情况下,通过目标云端固定主节点,创建与更新请求对应的影子索引;根据密文块和多个独立寻址数据块,逐一执行用户内多镜像范围的复用匹配;若匹配成功,在影子索引中建立匹配成功的独立寻址数据块与密文块的引用关系;若匹配不成功,将密文块写入候选存储区并校验,并通过预写日志记录处理过程;在多个独立寻址数据块全部完成复用匹配之后,通过一次原子操作将活动版本指针从旧版本切换至生成的当前有效版本;

7、在检测到镜像还原请求的情况下,通过目标云端固定主节点,确定当前有效版本的目标版本清单;移动终端基于目标版本清单接收目标镜像所需的完整块集合并对完整块集合进行重组,将重组后的数据分发至移动终端侧对应目录、应用数据域或桌面运行环境中。

8、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,通过移动终端,基于采集到的目标镜像的数据,进行分块处理和数据块生成,得到多个独立寻址数据块的数据块信息,包括:

9、通过移动终端对目标镜像的数据进行采集和处理;并按照预设策略执行分块处理,得到多个独立寻址数据块;

10、为各独立寻址数据块生成数据块信息;其中,数据块信息包括块指纹、块顺序信息和块长度信息。

11、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,通过目标云端固定主节点,维护用户级全局块索引和各数据块信息,包括:

12、通过目标云端固定主节点,维护用户级全局块索引和数据块信息;其中,用户级全局块索引用于记录同一用户名下多个目标镜像中已提交块的块指纹、镜像引用关系、引用计数和块状态信息。

13、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,根据密文块和多个独立寻址数据块,逐一执行用户内多镜像范围的复用匹配,包括:

14、基于密文块,对多个独立寻址数据块的块指纹,逐一执行用户内多镜像范围的复用匹配;

15、若密文块指纹存在于用户级全局块索引中,确认匹配成功;

16、若密文块指纹不存在于用户级全局块索引中,确认匹配不成功。

17、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,在多个独立寻址数据块全部完成复用匹配之后,通过一次原子操作将活动版本指针从旧版本切换至生成的当前有效版本,包括:

18、在多个独立寻址数据块全部完成复用登记,或者密文写入并校验通过之后,通过目标云端固定主节点生成新版本镜像清单,得到当前有效版本;

19、通过一次原子操作,将活动版本指针从旧版本切换至当前有效版本;

20、若更新过程中发生中断或失败的情况下,维持旧版本不变,并基于预写日志识别未提交资源。

21、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,通过目标云端固定主节点,确定当前有效版本的目标版本清单,包括:

22、通过云端固定主节点,确定当前有效版本的目标版本清单,并将目标版本清单及其对应的密文块集合下发至移动终端。

23、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,移动终端基于目标版本清单接收目标镜像所需的完整块集合并对完整块集合进行重组,将重组后的数据分发至移动终端侧对应目录、应用数据域或桌面运行环境中,包括:

24、移动终端通过在本地建立的临时恢复区,基于目标版本清单及其对应的密文块集合,接收目标镜像所需的完整块集合,并对接收的密文块执行完整性校验和解密处理;

25、移动终端在确认目标镜像所需的完整块集合均已接收并校验通过后,根据目标版本清单中的块顺序、文件归属关系、目录映射关系和应用数据域映射关系,对恢复得到的完整块集合进行重组,并将重组后的数据分发至移动终端侧对应目录、应用数据域或桌面运行环境中。

26、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,还包括:

27、在目标镜像接收、校验、重组和目录分发处理过程中,设置状态检查点和幂等执行标记;

28、当还原过程中发生网络抖动、终端重启、进程退出或本地写入异常时,移动终端根据状态检查点判断当前恢复阶段,并在重新进入恢复流程后继续完成镜像接收、重新校验或者重新执行目录分发操作,直至目标镜像完整恢复并通过版本级一致性确认。

29、根据本发明提供的一种基于分块索引的镜像数据复用与更新原子化方法,根据用户标识,路由至目标云端固定主节点,包括:

30、通过确定性路由算法,根据用户标识进行选择,确定目标云端固定主节点;其中,确定性路由算法,包括一致性哈希或者映射表;

31、路由至目标云端固定主节点。

32、本发明还提供一种基于分块索引的镜像数据复用与更新原子化装置,包括如下模块:

33、路由模块,用于在接收到移动终端发起的镜像更新请求或镜像还原请求后,根据用户标识,路由至目标云端固定主节点;

34、数据块生成和维护模块,用于通过移动终端,基于采集到的目标镜像的数据,进行分块处理和数据块生成,得到多个独立寻址数据块的数据块信息;基于用户对应密钥,对待上传的新增块进行加密,得到密文块及校验信息;其中,新增块为多个独立寻址数据块中的一个;通过云端固定主节点,维护用户级全局块索引和各数据块信息;

35、更新处理模块,用于在检测到更新请求的情况下,通过目标云端固定主节点,创建与更新请求对应的影子索引;根据密文块和多个独立寻址数据块,逐一执行用户内多镜像范围的复用匹配;若匹配成功,在影子索引中建立匹配成功的独立寻址数据块与密文块的引用关系;若匹配不成功,将密文块写入候选存储区并校验,并通过预写日志记录处理过程;在多个独立寻址数据块全部完成复用匹配之后,通过一次原子操作将活动版本指针从旧版本切换至生成的当前有效版本;

36、还原处理模块,用于在检测到镜像还原请求的情况下,通过目标云端固定主节点,确定当前有效版本的目标版本清单;移动终端基于目标版本清单接收目标镜像所需的完整块集合并对完整块集合进行重组,将重组后的数据分发至移动终端侧对应目录、应用数据域或桌面运行环境中。

37、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述基于分块索引的镜像数据复用与更新原子化方法。

38、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于分块索引的镜像数据复用与更新原子化方法。

39、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于分块索引的镜像数据复用与更新原子化方法。

40、本发明提供的基于分块索引的镜像数据复用与更新原子化方法,通过在接收到移动终端发起的镜像更新请求或镜像还原请求后,根据用户标识,路由至目标云端固定主节点; 通过移动终端,基于采集到的目标镜像的数据,进行分块处理和数据块生成,得到多个独立寻址数据块的数据块信息;基于用户对应密钥,对待上传的新增块进行加密,得到密文块及校验信息;在检测到更新请求的情况下,通过目标云端固定主节点,创建与更新请求对应的影子索引;根据密文块和多个独立寻址数据块,逐一执行用户内多镜像范围的复用匹配;若匹配成功,在影子索引中建立匹配成功的独立寻址数据块与密文块的引用关系;若匹配不成功,将密文块写入候选存储区并校验,并通过预写日志记录处理过程;在多个独立寻址数据块全部完成复用匹配之后,通过一次原子操作将活动版本指针从旧版本切换至生成的当前有效版本;在检测到镜像还原请求的情况下,通过目标云端固定主节点,确定当前有效版本的目标版本清单;移动终端基于目标版本清单接收目标镜像所需的完整块集合并对完整块集合进行重组,将重组后的数据分发至移动终端侧对应目录、应用数据域或桌面运行环境中;通过单用户内块复用与固定主节点集中管理,实现在保证数据隔离的同时显著降低存储与信令开销;利用影子索引与原子版本指针切换机制,实现更新过程的非全即无语义,使镜像仅在全部目标块写入和校验完成后整体生效;基于目标版本清单进行块级校验与重组,在应用层实现了端侧异常后的精准恢复与最终一致性保障。