CN117971774B - 文件集恢复方法、装置、计算机设备、介质及程序产品 - Google Patents
文件集恢复方法、装置、计算机设备、介质及程序产品 Download PDFInfo
- Publication number
- CN117971774B CN117971774B CN202410374356.5A CN202410374356A CN117971774B CN 117971774 B CN117971774 B CN 117971774B CN 202410374356 A CN202410374356 A CN 202410374356A CN 117971774 B CN117971774 B CN 117971774B
- Authority
- CN
- China
- Prior art keywords
- file
- target
- node
- image
- image file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000011084 recovery Methods 0.000 title claims abstract description 19
- 238000004891 communication Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 59
- 230000015654 memory Effects 0.000 claims description 26
- 238000005192 partition Methods 0.000 claims description 21
- 230000000903 blocking effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 abstract description 43
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及镜像技术领域,公开了文件集恢复方法、装置、计算机设备、介质及程序产品,包括:向镜像文件块分发节点发送镜像文件获取请求,其中,镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示镜像文件块分发节点根据标识信息,确定存储目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个候选种子节点中选取目标种子节点,并建立镜像拉取节点和目标种子节点之间的通讯连接;从目标种子节点上拉取到目标镜像文件对应的所有文件分块;对目标镜像文件进行解析,得到镜像元数据层和数据镜像层;根据镜像元数据层和数据镜像层,恢复出目标文件集。本发明可以避免从同时从一个存储节点上拉取训练数据导致的通信堵塞问题。
Description
技术领域
本发明涉及镜像技术领域,具体涉及文件集恢复方法、装置、计算机设备、介质及程序产品。
背景技术
在深度学习技术领域中,模型训练过程中使用的训练数据量越多,可以使用训练出的模型更加准确。但是,训练数据量较多的情况下,所依赖的硬件资源需要可能比较大。因此,一般采用分布式训练实现使用大规模训练数据对模型进行训练的需求。
在分布式训练的过程中,由于大量的训练数据存储在集群中的某一个节点(可以称为存储节点)上,每一个训练节点需要从存储节点上获取全部的训练数据,再通过训练数据对模型进行训练。在每一轮训练之后,每一个训练节点可以将该轮训练结果同步至其他的训练节点上,以保证在不同训练节点上模型参数一致。
但是,由于所有训练节点同时从一个存储节点上拉取训练数据,很容易造成通信堵塞问题,导致各个训练节点无法及时获取到全部的训练数据,进一步,导致各个训练节点得到训练结果的时间相差比较大,无法及时同步训练结果。在长时间的训练过程中,会导致严重的不一致性问题。
发明内容
有鉴于此,本发明提供了一种文件集恢复方法、装置、计算机设备、介质及程序产品,以及一种文件分块分发方法、装置、计算机设备、介质及程序产品、一种镜像文件生成方法、装置、计算机设备、介质及程序产品,可以解决同时从一个存储节点上拉取训练数据导致的通信堵塞问题。
第一方面,本发明提供了一种文件集恢复方法,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述镜像拉取节点执行,所述方法包括:
向所述镜像文件块分发节点发送镜像文件获取请求,其中,所述镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示所述镜像文件块分发节点根据所述标识信息,确定存储与所述标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接;
从所述目标种子节点上拉取到目标镜像文件对应的所有文件分块,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,所述文件分块为所述镜像文件块分发节点对所述目标镜像文件进行分块后分发到一个或多个所述候选种子节点的;
对所述目标镜像文件进行解析,得到镜像元数据层和数据镜像层;
根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集。
本发明提供的一种文件集恢复方法,具有如下优点:
每一个镜像拉取节点均可以通过上述方法从目标种子节点上拉取目标镜像文件。这样,对于不同的镜像拉取节点,对应的目标种子节点可以是不同的,也即不同的镜像拉取节点从不同的目标种子节点上拉取文件分块。通过将通信压力分布到多个节点,充分利用不同节点的带宽,从而可以降低从单一节点拉取目标镜像文件的压力,进一步可以提高目标镜像文件的下载速度。每一个目标种子节点上又下载有目标镜像文件对应的部分或全部的文件分块,也即每一个镜像拉取节点可以同时从不同的目标种子节点上拉取部分文件分块,同样可以降低单一节点的压力,提高目标文件集的下载速度。在分布式训练任务中,通过上述的方法下载训练数据集,可以及时完成训练数据集的下载,并及时完成训练同步模型参数,可以保证模型参数的一致性。
在一种可选的实施方式中,所述根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集,包括:
对所述数据镜像层进行解析,得到多个子数据镜像层;
根据所述镜像元数据层中的镜像元数据,遍历每一个所述子数据镜像层,将每一个所述子数据镜像层恢复为与所述子数据镜像层对应的文件;
根据所述镜像元数据层,以及与每一个所述子数据镜像层对应的文件,得到所述目标文件集。
具体地,通过对数据镜像层的细分,实现了对文件集的精细恢复,即可以针对不同子数据镜像层分别处理,确保恢复出的每一个文件与原始文件集中的文件一一对应且内容正确,也即可以保证整个目标文件集恢复的准确性。
在一种可选的实施方式中,当根据所述镜像元数据层中的镜像元数据,遍历每一个所述子数据镜像层时,若所述子数据镜像层对应的文件为目标替换文件时,所述方法还包括:
从所述目标替换文件中提取指针路径信息,其中,所述指针路径信息为指示存储目标文件的存储位置信息的指针路径;
根据所述指针路径信息,确定所述目标文件的存储位置,并从所述存储位置获取所述目标文件;
将所述目标替换文件替换为所述目标文件。
具体地,当遍历子数据镜像层时,遇到目标替换文件时,镜像拉取节点可以自动识别并提取出指向实际目标文件的指针路径信息。在这种机制下,对于内容完全相同的文件,可以只保留一份文件,进一步,可以减小目标镜像文件的所占用的存储空间,并且也可以节约网络资源,提高目标镜像文件的传输效率。
第二方面,本发明提供了一种文件分块分发方法,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述镜像文件块分发节点执行,所述方法包括:
当监测到镜像文件库中新增目标镜像文件时,从所述镜像文件库中获取所述目标镜像文件,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在所述镜像文件库中的;
对所述目标镜像文件进行分块,得到与所述目标镜像文件对应的多个文件分块;
从至少一个种子节点选取至少一个候选种子节点;
将多个所述文件分块分发到至少一个所述候选种子节点上,其中,至少一个所述候选种子节点中的每一个所述候选种子节点上下载有多个所述文件分块中的所有文件分块或部分文件分块,以便后续所述镜像拉取节点从至少一个所述候选种子节点上拉取所述目标镜像文件对应的所有文件分块,并恢复出所述目标文件集。
本发明提供的一种文件分块分发方法,具有如下优点:
将目标镜像文件的文件分块分发到至少一个候选种子节点上,实现了数据的分布式存储。由于不同候选种子节点分布有重复的文件分块,因此,可以在一定程度上实现冗余存储,避免文件分块丢失导致无法恢复目标文件集的问题。并且,在将文件分块分发到不同候选种子节点的基础上,才能实现后续选择目标种子节点,并保证不同镜像拉取节点可以从不同的目标种子节点上拉取文件分块,从而避免所有镜像拉取节点从单一节点拉取文件分块导致的通信堵塞问题。
在一种可选的实施方式中,所述方法还包括:
接收来自所述镜像拉取节点的镜像文件获取请求;
从所述镜像文件获取请求中提取待获取的镜像文件的标识信息;
根据所述标识信息,确定存储与所述标识信息对应的镜像文件的文件分块的至少一个候选种子节点;
从至少一个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接。
具体地,镜像文件块分发节点为镜像拉取节点和目标种子节点建立通讯连接后,可以确保镜像拉取节点能够从目标种子节点上拉取文件分块。
第三方面,本发明提供了一种镜像文件生成方法,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述文件集处理节点执行,所述方法包括:
获取目标文件集,对所述目标文件集进行扫描,获取与所述目标文件集的文件层级结构信息,并将所述文件层级结构信息作为镜像元数据层;
根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件;
根据所述镜像元数据层,对所述目标文件集中的文件进行层级封装得到数据镜像层,以及,对所述镜像元数据层进行封装,所述数据镜像层和封装后的镜像元数据层共同构成目标镜像文件;
将所述目标镜像文件存储在镜像文件库中。
本发明提供的一种镜像文件生成方法,具有如下优点:
通过上述方法,可以将目标文件集转换为目标镜像文件。在此基础上,才能实现后续对目标镜像文件进行分块,并且根据分块能够恢复目标文件集的过程。进一步,在对目标镜像文件进行分块的基础上,才能将得到的文件分块分布到不同的候选种子节点上。更进一步,才能实现选择目标种子节点,使得不同镜像拉取节点从不同目标种子节点上获取到文件分块,从而降低不同镜像拉取节点从单一节点拉取文件集导致的通信堵塞问题。
在一种可选的实施方式中,所述目标文件集中包括至少一个文件对象,所述文件对象为文件夹或文件;
所述根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件,包括:
将与所述目标文件集对应的根目录确定为根节点;
以所述根节点为遍历起点,对所述目标文件集中包括的每一个所述文件对象进行遍历,得到与每一个所述文件对象对应的子节点;
当任一所述文件对象为文件时,停止对该文件对象的遍历;
或者,当所述文件对象为文件夹时,继续对所述文件夹遍历,直至获取所述目标文件集中的所有文件。
具体地,通过从目标文件集的根目录作为遍历起点,能够确保对整个目录结构进行完全遍历,从而不会遗漏任何一个文件或子目录,保证了数据完整性和一致性。
在一种可选的实施方式中,所述方法还包括:
获取与所述目标文件集中每一个文件对应的内容指标值;
将所述内容指标值相同的多个文件中的目标文件进行保留;
获取所述目标文件的存储位置信息;
根据所述存储位置信息,生成指针路径信息,并将所述指针路径信息存储到目标替换文件中;
将所述内容指标值相同的多个文件中除所述目标文件之外的其他文件均分别替换为所述目标替换文件,得到更新后的目标文件集。
具体地,通过获取文件的内容指标值并进行比较,可以识别和去除重复文件,仅保留一个目标文件。这样不仅节省了存储空间,也提高了后续传输目标镜像文件的效率。
在一种可选的实施方式中,所述内容指标值为MD5值。
具体地,MD5是一种广泛使用的哈希算法,对于不同的输入数据几乎不可能产生相同的输出。因此,每个文件都有一个独特且确定的MD5值,确保了基于MD5的内容校验能够准确地识别出内容完全一致的文件。
在一种可选的实施方式中,所述方法还包括:
将所述目标镜像文件标记为数据集类镜像文件。
具体地,由于镜像文件库中的镜像文件数量众多,因此,通过标记操作可以实现对镜像文件的精细分类,方便管理,并且在查询时可以先基于标记查询,可以提高查询效率。
第四方面,本发明提供了一种文件集恢复装置,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述镜像拉取节点,所述装置包括:
发送模块,用于向所述镜像文件块分发节点发送镜像文件获取请求,其中,所述镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示所述镜像文件块分发节点根据所述标识信息,确定存储与所述标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接;
拉取模块,用于从所述目标种子节点上拉取到目标镜像文件对应的所有文件分块,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,所述文件分块为所述镜像文件块分发节点对所述目标镜像文件进行分块后分发到一个或多个所述候选种子节点的;
解析模块,用于对所述目标镜像文件进行解析,得到镜像元数据层和数据镜像层;
恢复模块,用于根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集。
第五方面,本发明提供了一种文件分块分发装置,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述镜像文件块分发节点,所述装置包括:
获取模块,用于当监测到镜像文件库中新增目标镜像文件时,从所述镜像文件库中获取所述目标镜像文件,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在所述镜像文件库中的;
分块模块,用于对所述目标镜像文件进行分块,得到与所述目标镜像文件对应的多个文件分块;
选取模块,用于从至少一个种子节点选取至少一个候选种子节点;
分发模块,用于将多个所述文件分块分发到至少一个所述候选种子节点上,其中,至少一个所述候选种子节点中的每一个所述候选种子节点上下载有多个所述文件分块中的所有文件分块或部分文件分块,以便后续所述镜像拉取节点从至少一个所述候选种子节点上拉取所述目标镜像文件对应的所有文件分块,并恢复出所述目标文件集。
第六方面,本发明提供了一种镜像文件生成装置,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述文件集处理节点,所述装置包括:
获取模块,用于获取目标文件集,对所述目标文件集进行扫描,获取与所述目标文件集的文件层级结构信息,并将所述文件层级结构信息作为镜像元数据层;
遍历模块,用于根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件;
封装模块,用于根据所述镜像元数据层,对所述目标文件集中的文件进行层级封装得到数据镜像层,以及,对所述镜像元数据层进行封装,所述数据镜像层和封装后的镜像元数据层共同构成目标镜像文件;
存储模块,用于将所述目标镜像文件存储在镜像文件库中。
第七方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的文件集恢复方法,或者,执行上述第二方面或其对应的任一实施方式的文件分块分发方法,或者,执行上述第三方面或其对应的任一实施方式的镜像文件生成方法。
第八方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的文件集恢复方法,或者,执行上述第二方面或其对应的任一实施方式的文件分块分发方法,或者,执行上述第三方面或其对应的任一实施方式的镜像文件生成方法。
第九方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的文件集恢复方法,或者,执行上述第二方面或其对应的任一实施方式的文件分块分发方法,或者,执行上述第三方面或其对应的任一实施方式的镜像文件生成方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的集群的架构示意图;
图2是根据本发明实施例的文件集拉取方法的流程示意图;
图3是根据本发明实施例的目标文件集的树状索引结构的示意图;
图4是根据本发明实施例的目标镜像文件的结构示意图;
图5是根据本发明实施例的文件分块的拉取过程示意图;
图6是根据本发明实施例的目标文件集的恢复过程示意图;
图7是根据本发明实施例的镜像文件管理示意图;
图8是根据本发明实施例的文件集恢复方法的流程示意图;
图9是根据本发明实施例的文件分块分发方法的流程示意图;
图10是根据本发明实施例的镜像文件生成方法的流程示意图;
图11是根据本发明实施例的文件集恢复装置的结构框图;
图12是根据本发明实施例的文件分块分发装置的结构框图;
图13是根据本发明实施例的镜像文件生成装置的结构框图;
图14是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在深度学习领域中,Kubernetes为深度学习任务的部署和管理提供了高效、灵活且可扩展的解决方案。首先,Kubernetes可以提供容器编排和管理的功能,将深度学习模型打包为容器,在集群中进行调度和运行。其次,Kubernetes提供了强大的横向扩展能力,可以根据工作负载的需求自动调整集群中的计算资源,来处理大规模数据和复杂模型的深度学习任务。再次,Kubernetes还支持多种服务发现和负载均衡机制,可以确保深度学习任务能够在集群中无缝地通信和协同工作。最后,Kubernetes还提供了丰富的监控和日志功能,可以实时监控深度学习任务的状态和性能指标,及时发现并解决潜在的问题,确保深度学习任务的顺利运行。
本发明实施例可以应用于上述的集群。如图1所示,该集群中可以包括多个节点。每一个节点可以是一台计算机设备,例如,可以是服务器。每一个节点可以用于执行一种或多种业务功能。多个节点中可以包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点。其中,文件集处理节点可以预存有多个文件集,这些文件集可以是客户端在执行指定业务操作的时候发送至文件集处理节点的。例如,业务操作可以是下发训练模型任务的操作。镜像文件块分发节点上配置有镜像文件分发系统,例如,镜像文件分发系统可以是P2P镜像分发框架,P2P镜像分发框架是一种基于点对点(Peer-to-Peer)网络技术的镜像文件分发系统。种子节点可以是技术人员预先指定的,例如,可以是在集群中指定一定比例的节点作为种子节点。镜像拉取节点可以是需要使用文件集执行业务功能的节点,配置有镜像解构应用程序。例如,文件集中包括多条训练数据时,镜像拉取节点需要获取文件集执行训练任务。
本发明实施例提供了一种文件集拉取方法,每一个镜像拉取节点均可以从通过不同的种子节点上拉取文件分块,可以避免所有镜像拉取节点均从同一节点拉取文件集导致通信堵塞的问题。
根据本发明实施例,提供了一种文件集拉取方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种文件集拉取方法,应用于上述的集群,由集群中的文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点之间通过通信交互,完成文件集的拉取。如图2所示,该流程包括如下步骤:
步骤S201,文件集处理节点获取目标文件集,对目标文件集进行扫描,获取与目标文件集的文件层级结构信息,并将文件层级结构信息作为镜像元数据层。
其中,目标文件集中的内容可以是数据集,也可以是应用程序对应的软件包。例如,在分布式训练任务中,目标文件集可以包括多条训练数据,也可以是未训练的大型模型。文件层级结构信息可以是树状索引结构。
具体地,用户可以在客户端上传目标文件集,由客户端将目标文件集发送至文件集处理节点,文件集处理节点即可获取到目标文件集。或者,文件集处理节点存储有大量的文件集,在接收到来自客户端的业务请求中,从业务请求中提取出文件集标识信息,再根据文件集标识,确定出与该文件集标识对应的目标文件集。
文件集处理节点在获取到目标文件集之后,可以通过扫描工具对目标文件集进行扫描,得到其对应的文件层级结构信息,例如,文件层级结构信息可以如下:
根目录
├── 文件夹1
│├── 文件A
│└── 文件夹2
│└── 文件B
├──文件夹3
│└── 文件C
└── 文件D
步骤S202,文件集处理节点根据文件层级结构信息,对目标文件集进行遍历,得到目标文件集中的每一个文件。
具体地,目标文件集中可以包括至少一个文件对象,文件对象为文件夹或文件,上述步骤S202可以包括:
步骤a1,将与目标文件集对应的根目录确定为根节点。
步骤a2,以根节点为遍历起点,对目标文件集中包括的每一个文件对象进行遍历,得到与每一个文件对象对应的子节点。
步骤a3,当任一文件对象为文件时,停止对该文件对象的遍历。
步骤a4,当文件对象为文件夹时,继续对文件夹遍历,直至获取目标文件集中的所有文件。
具体地,文件集处理节点从文件层级结构信息中获取到目标文件集的所属根目录,并将该根目录确定为根节点,以根节点为遍历起点,对目标文件集中包括的每一个文件对象进行遍历。如果遍历到的文件对象为文件,则可以将该文件确定为一个子节点,获取该文件,并停止遍历。如果遍历到的文件对象为文件夹,则可以将该文件夹也确定为一个子节点,但是需要对该文件夹包括的文件对象进行遍历。同样地,在对该文件夹包括的文件对象进行遍历的过程中,如果遍历到的文件对象为文件,则可以将该文件确定为一个子节点,获取该文件,并停止遍历,如果遍历到的文件对象为文件集,则可以将该文件夹也确定为一个子节点,并继续对该文件夹包括的文件对象进行遍历。以此类推,可以得到目标文件集中包括的所有文件。
如图3所示,节点1为根节点,节点2、3、4、5、6均为子节点,节点1和节点2对应的文件对象是文件夹,节点3、4、5、6对应的文件对象为文件。
在一些可选的实施方式中,由于目标文件集中可能存在内容完全相同的多个文件,因此,为了减少重复内容占用的存储资源和通信资源,文件集处理节点还可以执行以下步骤:
步骤b1,获取与目标文件集中每一个文件对应的内容指标值。
其中,内容指标值可以是消息摘要算法5(Message-Digest Algorithm 5,MD5)值,MD5算法可以将任意大小的数据转换为一个固定长度的值。
步骤b2,将内容指标值相同的多个文件中的目标文件进行保留。
步骤b3,获取目标文件的存储位置信息。
步骤b4,根据存储位置信息,生成指针路径信息,并将指针路径信息存储到目标替换文件中。
步骤b5,将内容指标值相同的多个文件中除目标文件之外的其他文件均分别替换为目标替换文件,得到更新后的目标文件集。
具体地,对于目标文件集中的每一个文件,文件集处理节点可以预先通过MD5算法计算每一个文件的MD5值,并将该文件的文件标识和MD5值进行对应记录。这样,文件集处理节点获取到目标文件集之后,可以根据其包括的每一个文件的文件标识,获取到与每一个文件对应的MD5值。或者,文件集处理节点也可以在获取到目标文件集之后,再进行上述生成MD5值的操作。
文件集处理节点在获取到目标文件集中每一个文件的MD5值后,可以对每一个文件的MD5值进行对比,如果存在相同的MD5值,则确定相同的MD5对应的多个文件标识,并在多个文件标识中随机选取一个文件标识,获取与选取的文件标识对应的目标文件。然后,再获取该目标文件的存储位置信息,根据存储位置信息,生成指针路径信息。进一步,根据指针路径信息生成目标替换文件。根据未选取的文件标识,确定出除目标文件之外的其他文件,并将确定出的这些文件全部替换为目标替换文件。
在图3中,节点4和节点6对应的文件内容完全相同,节点4对应的文件为目标文件,根据目标文件的指针路径信息,生成目标替换文件,再将节点6对应的文件替换为目标替换文件。
步骤S203,文件集处理节点根据镜像元数据层,对目标文件集中的文件进行层级封装得到数据镜像层,以及,对镜像元数据层进行封装,数据镜像层和封装后的镜像元数据层共同构成目标镜像文件。
具体地,文件集处理节点可以根据镜像元数据层确定每一个文件的遍历顺序,根据每一个文件的遍历顺序,对文件进行层级封装,得到数据镜像层。另外,文件集处理节点可以对镜像元数据层进行封装。数据镜像层和封装后的镜像元数据层构成目标镜像文件。例如,目标镜像文件的结构可以如图4所示。
步骤S204,文件集处理节点将目标镜像文件存储在镜像文件库中。
其中,镜像文件库可以存储在另外一个节点(可以称为存储节点)上,文件集处理节点可以将目标镜像文件发送至存储节点,由存储节点将目标镜像文件存储至镜像文件库中。如图4所示,将镜像推送至镜像仓库。
在一些可选的实施方式中,由于镜像文件库中存储的镜像文件集数量众多,因此,为了方便管理和查询镜像文件,还可以将目标镜像文件标记为数据集类镜像文件。这样,在后续查询目标镜像文件时,可以仅仅在标记为数据集类镜像文件的文件中进行查找,而非在镜像文件库中的所有文件中查找,可以提高查询目标镜像文件的速度。
步骤S205,当镜像文件块分发节点监测到镜像文件库中新增目标镜像文件时,从镜像文件库中获取目标镜像文件。
具体地,当镜像文件块分发节点接收到新增通知时,可以根据新增通知中携带的镜像文件标识,并根据镜像文件标识,生成获取通知,将获取通知发送至存储节点,存储节点可以从镜像文件库中查询到与镜像文件标识对应的目标镜像文件。如图4所示,从镜像仓库中拉取镜像。
步骤S206,镜像文件块分发节点对目标镜像文件进行分块,得到与目标镜像文件对应的多个文件分块。
具体地,镜像文件块分发节点可以通过镜像文件分发系统对目标镜像文件进行分块,得到多个文件分块。另外,镜像文件块分发节点可以生成与每一个文件分块对应的标识信息,并将目标镜像文件的标识信息,以及与其对应的每一个文件分块的标识信息进行记录。
步骤S207,镜像文件块分发节点从至少一个种子节点选取至少一个候选种子节点。
具体地,镜像文件块分发节点可以从至少一个种子节点中随机选取预设比例的候选种子节点,并记录每一个候选种子节点的标识信息、通信地址等。
步骤S208,镜像文件块分发节点将多个文件分块分发到至少一个候选种子节点上。
具体地,镜像文件块分发节点可以先将全部或部分文件分块发到一个或多个候选种子节点上,接收到文件分块的候选种子节点之间可以共享自身接收到的文件分块,这样,候选种子节点既可以直接从存储节点中拉取文件分块,也可以从其他候选种子节点拉取文件分块,如图5所示,两两节点之间都可以进行互相通信分享文件分块。在完成分发任务后,每一个候选种子节点上可以下载有多个文件分块中的所有文件分块或部分文件分块。在图5中,节点1到节点4上均下载有目标镜像文件对应的全部文件分块。通过多节点互相通信,可以避免同时从镜像文件库拉取文件分块的通信堵塞问题,也即可以大大提高文件分块的分发速度。另外,镜像文件分发块可以记录每一个候选种子节点中下载的文件分块的标识。
步骤S209,镜像拉取节点向镜像文件块分发节点发送镜像文件获取请求。
其中,镜像文件获取请求可以携带有待获取的镜像文件的标识信息。镜像文件获取请求可以在接收到客户端的业务执行请求后生成的,也可以是在接收到镜像文件的分发任务完成通知时,根据分发任务完成通知携带的镜像文件的标识信息生成的。
步骤S210,镜像文件块分发节点从镜像文件获取请求中提取待获取的镜像文件的标识信息。
具体地,镜像文件块分发节点在接收到镜像文件获取请求后,可以对镜像文件获取请求进行解析,从中提取出待获取的镜像文件的标识信息。
步骤S211,镜像文件块分发节点根据标识信息,确定存储与标识信息对应的镜像文件的文件分块的至少一个候选种子节点。
具体地,镜像文件块分发节点可以根据待获取的镜像文件的标识信息,确定出与该标识信息对应的文件分块所在的候选种子节点的标识信息。
步骤S212,镜像文件块分发节点从至少一个候选种子节点中选取目标种子节点,并建立镜像拉取节点和目标种子节点之间的通讯连接。
其中,目标种子节点可以是一个或多个。
具体地,镜像文件块分发节点可以从候选种子节点的标识信息中随机选择一个或多个目标种子节点,并建立镜像拉取节点与每一个目标种子节点的通讯连接。需要说明的是,如果选择的是一个目标种子节点,则该目标种子节点上下载有待获取的镜像文件对应的所有文件分块。如果选择的是多个目标种子节点,则多个目标种子节点上下载的文件分块可以构成完整的目标镜像文件。
在一些可选的实施方式中,镜像文件块分发节点可以根据每一个候选种子节点的运行状态参数(例如,当前的业务执行量、当前空闲网络资源、当前空闲计算资源参数等等),以及具有的文件分块的标识和数量,从至少一个候选种子节点中选取目标种子节点。这样,综合考虑各个候选种子节点的负载情况,可以保证文件分块的分发速度。同时,也可以保证镜像拉取节点后续能够拉取到待获取的镜像文件的所有文件分块。
步骤S213,镜像拉取节点从目标种子节点上拉取到目标镜像文件对应的所有文件分块。
具体地,镜像拉取节点可以从镜像文件块分发节点获取到目标镜像文件对应的所有文件分块的标识。这样,镜像拉取节点可以同时从一个或多个目标种子节点上下载文件分块,直到根据下载的文件分块的标识,确定下载的文件分块可以组合成完整的目标镜像文件时,停止拉取。
或者,镜像文件块分发节点可以在选择目标种子节点的同时,告知镜像拉取节点分别从每一个目标种子节点下载的文件分块的标识列表。这样,镜像拉取节点可以根据与每一个目标种子节点对应的标识列表,从相应的目标种子节点上下载与标识列表对应的文件分块。
在分布式训练任务中,镜像拉取节点的数量较多,其中的每一个镜像拉取节点均可以按照上述的方式从一个或多个种子节点上下载目标镜像文件对应的所有文件分块。这样,将下载目标镜像文件的通信压力分摊到不同的种子节点上,可以提高下载速度。
步骤S214,镜像拉取节点对目标镜像文件进行解析,得到镜像元数据层和数据镜像层。
具体地,镜像拉取节点在下载到目标镜像文件对应的文件分块后,可以根据文件分块,还原出目标镜像文件,再对目标镜像文件进行解析,将解析出的第一层确定为镜像元数据层,将解析出的其他层确定为数据镜像层。
步骤S215,镜像拉取节点根据镜像元数据层和数据镜像层,恢复出目标文件集。
具体地,上述步骤S215可以包括:
步骤c1,对数据镜像层进行解析,得到多个子数据镜像层。
步骤c2,根据镜像元数据层中的镜像元数据,遍历每一个子数据镜像层,将每一个子数据镜像层恢复为与子数据镜像层对应的文件。
步骤c3,根据镜像元数据层,以及与每一个子数据镜像层对应的文件,得到目标文件集。
具体地,首先,镜像拉取节点可以对数据镜像层进行解析,得到多个子数据镜像层,其中,每一个子数据镜像层对应目标文件集中的一个文件。然后,镜像拉取节点对镜像元数据层解析从中提取出镜像元数据,并根据镜像元数据,对解析出的每一个子数据镜像层进行遍历。每遍历一个子数据镜像层,对该子数据镜像层进行解析,得到该子数据镜像层对应的文件,这样,在遍历完所有的子数据镜像层之后,可以得到目标文件集中的所有文件。最后,根据镜像元数据层,确定每一个文件原先是否从属于某一文件夹,如果是,则根据镜像元数据层,恢复该文件夹,并将文件放到恢复的文件夹中。这样,恢复后的文件集和文件构成了原先的目标文件集。
在一些可选的实施方式中,当根据镜像元数据层中的镜像元数据,遍历每一个子数据镜像层时,若子数据镜像层对应的文件为目标替换文件时,还可以执行以下步骤:
步骤d1,从目标替换文件中提取指针路径信息。
其中,指针路径信息为指示存储目标文件的存储位置信息的指针路径。
步骤d2,根据指针路径信息,确定目标文件的存储位置,并从存储位置获取目标文件。
步骤d3,将目标替换文件替换为目标文件。
具体地,镜像拉取节点可以在恢复该子数据镜像层对应的文件后,可以进一步确定该文件是否被替换过,如果是,则确定该文件为目标替换文件,对目标替换文件进行解析,得到指针路径信息,并根据指针路径信息确定出目标文件的存储位置,从确定出的存储位置中获取到原本的目标文件,并将目标替换文件替换为目标文件。
上述确定文件是否被替换过具体可以包括如下步骤:在前述的步骤b5中,可以对替换的文件进行标记,这样,在恢复文件的过程中,可以确定恢复后的文件是否被标记为替换文件,如果是,则确定文件被替换过,如果否,则确定文件没有被替换过。如图6所示,通过对镜像进行解析可以恢复出原先的数据集。
本实施例提供的文件集拉取方法,通过上述方法,可以将目标文件集转换为目标镜像文件。在此基础上,可以实现对目标镜像文件的分块操作,将目标镜像文件的文件分块分发到至少一个候选种子节点上。进一步,可以为镜像拉取节点从候选种子节点种选取目标种子节点。这样,不同的镜像拉取节点从不同的目标种子节点上拉取文件分块。通过将通信压力分布到多个节点,充分利用不同节点的带宽,从而可以降低从单一节点拉取目标镜像文件的压力,进一步可以提高目标镜像文件的下载速度。每一个目标种子节点上又下载有目标镜像文件对应的部分或全部的文件分块,也即每一个镜像拉取节点可以同时从不同的目标种子节点上拉取部分文件分块,同样可以降低单一节点的压力,提高目标文件集的下载速度。在分布式训练任务中,通过上述的方法下载训练数据集,可以及时完成训练数据集的下载,并及时完成训练同步模型参数,可以保证模型参数的一致性。
在一些可选的实施方式中,本发明实施例还提供了一种管理数据集的方式,将镜像文件作为中间层,通过管理镜像文件间接实现对文件集的管理。如图7所示,将下载数据集操作映射为拉取镜像操作,将上传数据集操作映射为推送镜像操作,将删除数据集操作映射为删除镜像操作,将更新数据集操作映射为更新镜像操作。这样,可以提高管理文件集的方便程度。
在本实施例中提供了一种文件集恢复方法,应用于上述的集群,该集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点。本方法可以由镜像拉取节点执行,如图8所示,该流程包括如下步骤:
步骤S801,向镜像文件块分发节点发送镜像文件获取请求。
其中,镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示镜像文件块分发节点根据标识信息,确定存储与标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个候选种子节点中选取目标种子节点,并建立镜像拉取节点和目标种子节点之间的通讯连接。
步骤S801的具体处理可以参考步骤S209的具体处理,此处不再赘述。
步骤S802,从目标种子节点上拉取到目标镜像文件对应的所有文件分块。
其中,目标镜像文件为文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,文件分块为镜像文件块分发节点对目标镜像文件进行分块后分发到一个或多个候选种子节点的。
步骤S803,对目标镜像文件进行解析,得到镜像元数据层和数据镜像层。
步骤S804,根据镜像元数据层和数据镜像层,恢复出目标文件集。
步骤S802到步骤S804的具体处理可以参考步骤S213到步骤S215的具体处理,此处不再赘述。
本实施例提供的文件集恢复方法,每一个镜像拉取节点均可以通过上述方法从目标种子节点上拉取目标镜像文件。这样,对于不同的镜像拉取节点,对应的目标种子节点可以是不同的,也即不同的镜像拉取节点从不同的目标种子节点上拉取文件分块。通过将通信压力分布到多个节点,充分利用不同节点的带宽,从而可以降低从单一节点拉取目标镜像文件的压力,进一步可以提高目标镜像文件的下载速度。每一个目标种子节点上又下载有目标镜像文件对应的部分或全部的文件分块,也即每一个镜像拉取节点可以同时从不同的目标种子节点上拉取部分文件分块,同样可以降低单一节点的压力,提高目标文件集的下载速度。在分布式训练任务中,通过上述的方法下载训练数据集,可以及时完成训练数据集的下载,并及时完成训练同步模型参数,可以保证模型参数的一致性。
在本实施例中提供了一种文件分块分发方法,应用于上述的集群,该集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点。本方法可以由镜像文件块分发节点执行,如图9所示,该流程包括如下步骤:
步骤S901,当监测到镜像文件库中新增目标镜像文件时,从镜像文件库中获取目标镜像文件。
其中,目标镜像文件为文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的。
步骤S902,对目标镜像文件进行分块,得到与目标镜像文件对应的多个文件分块。
步骤S903,从至少一个种子节点选取至少一个候选种子节点。
步骤S904,将多个文件分块分发到至少一个候选种子节点上。
其中,至少一个候选种子节点中的每一个候选种子节点上下载有多个文件分块中的所有文件分块或部分文件分块,以便后续镜像拉取节点从至少一个候选种子节点上拉取目标镜像文件对应的所有文件分块,并恢复出目标文件集。
步骤S901到步骤S904的具体处理可以参考步骤S205到步骤S208的具体处理,此处不再赘述。
本实施例提供的文件分块分发方法,将目标镜像文件的文件分块分发到至少一个候选种子节点上,实现了数据的分布式存储。由于不同候选种子节点分布有重复的文件分块,因此,可以在一定程度上实现冗余存储,避免文件分块丢失导致无法恢复目标文件集的问题。并且,在将文件分块分发到不同候选种子节点的基础上,才能实现后续选择目标种子节点,并保证不同镜像拉取节点可以从不同的目标种子节点上拉取文件分块,从而避免所有镜像拉取节点从单一节点拉取文件分块导致的通信堵塞问题。
在本实施例中提供了一种镜像文件生成方法,应用于上述的集群,该集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点。本方法可以由文件集处理节点执行,如图10所示,该流程包括如下步骤:
步骤S1001,获取目标文件集,对目标文件集进行扫描,获取与目标文件集的文件层级结构信息,并将文件层级结构信息作为镜像元数据层。
步骤S1002,根据文件层级结构信息,对目标文件集进行遍历,得到目标文件集中的每一个文件。
步骤S1003,根据镜像元数据层,对目标文件集中的文件进行层级封装得到数据镜像层,以及,对镜像元数据层进行封装,数据镜像层和封装后的镜像元数据层共同构成目标镜像文件。
步骤S1004,将目标镜像文件存储在镜像文件库中。
步骤S1001到步骤S1004的具体处理可以参考步骤S201到步骤S204的具体处理,此处不再赘述。
本实施例提供的镜像文件生成方法,通过上述方法,可以将目标文件集转换为目标镜像文件。在此基础上,才能实现后续对目标镜像文件进行分块,并且根据分块能够恢复目标文件集的过程。进一步,在对目标镜像文件进行分块的基础上,才能将得到的文件分块分布到不同的候选种子节点上。更进一步,才能实现选择目标种子节点,使得不同镜像拉取节点从不同目标种子节点上获取到文件分块,从而降低不同镜像拉取节点从单一节点拉取文件集导致的通信堵塞问题。
在本实施例中还提供了一种文件集恢复装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种文件集恢复装置,如图11所示,包括:
发送模块1101,用于向镜像文件块分发节点发送镜像文件获取请求,其中,镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示镜像文件块分发节点根据标识信息,确定存储与标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个候选种子节点中选取目标种子节点,并建立镜像拉取节点和目标种子节点之间的通讯连接;
拉取模块1102,用于从目标种子节点上拉取到目标镜像文件对应的所有文件分块,其中,目标镜像文件为文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,文件分块为镜像文件块分发节点对目标镜像文件进行分块后分发到一个或多个候选种子节点的;
解析模块1103,用于对目标镜像文件进行解析,得到镜像元数据层和数据镜像层;
恢复模块1104,用于根据镜像元数据层和数据镜像层,恢复出目标文件集。
在一些可选的实施方式中,恢复模块1104,用于:
对数据镜像层进行解析,得到多个子数据镜像层;
根据镜像元数据层中的镜像元数据,遍历每一个子数据镜像层,将每一个子数据镜像层恢复为与子数据镜像层对应的文件;
根据镜像元数据层,以及与每一个子数据镜像层对应的文件,得到目标文件集。
在一些可选的实施方式中,恢复模块1104,还用于:
当根据镜像元数据层中的镜像元数据,遍历每一个子数据镜像层时,若子数据镜像层对应的文件为目标替换文件时,从目标替换文件中提取指针路径信息,其中,指针路径信息为指示存储目标文件的存储位置信息的指针路径;
根据指针路径信息,确定目标文件的存储位置,并从存储位置获取目标文件;
将目标替换文件替换为目标文件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的文件集恢复装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
在本实施例中还提供了一种文件分块分发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种文件分块分发装置,如图12所示,包括:
获取模块1201,用于当监测到镜像文件库中新增目标镜像文件时,从镜像文件库中获取目标镜像文件,其中,目标镜像文件为文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的;
分块模块1202,用于对目标镜像文件进行分块,得到与目标镜像文件对应的多个文件分块;
选取模块1203,用于从至少一个种子节点选取至少一个候选种子节点;
分发模块1204,用于将多个文件分块分发到至少一个候选种子节点上,其中,至少一个候选种子节点中的每一个候选种子节点上下载有多个文件分块中的所有文件分块或部分文件分块,以便后续镜像拉取节点从至少一个候选种子节点上拉取目标镜像文件对应的所有文件分块,并恢复出目标文件集。
在一些可选的实施方式中,该装置还包括接收模块1205、提取模块1206和确定模块1207;
接收模块1205,用于接收来自镜像拉取节点的镜像文件获取请求;
提取模块1206,用于从镜像文件获取请求中提取待获取的镜像文件的标识信息;
确定模块1207,用于根据标识信息,确定存储与标识信息对应的镜像文件的文件分块的至少一个候选种子节点;
选取模块1203,还用于从至少一个候选种子节点中选取目标种子节点,并建立镜像拉取节点和目标种子节点之间的通讯连接。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的文件分块分发装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
在本实施例中还提供了一种镜像文件生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种镜像文件生成装置,如图13所示,包括:
获取模块1301,用于获取目标文件集,对目标文件集进行扫描,获取与目标文件集的文件层级结构信息,并将文件层级结构信息作为镜像元数据层;
遍历模块1302,用于根据文件层级结构信息,对目标文件集进行遍历,得到目标文件集中的每一个文件;
封装模块1303,用于根据镜像元数据层,对目标文件集中的文件进行层级封装得到数据镜像层,以及,对镜像元数据层进行封装,数据镜像层和封装后的镜像元数据层共同构成目标镜像文件;
存储模块1304,用于将目标镜像文件存储在镜像文件库中。
在一些可选的实施方式中,目标文件集中包括至少一个文件对象,文件对象为文件夹或文件;
遍历模块1302,用于:
将与目标文件集对应的根目录确定为根节点;
以根节点为遍历起点,对目标文件集中包括的每一个文件对象进行遍历,得到与每一个文件对象对应的子节点;
当任一文件对象为文件时,停止对该文件对象的遍历;
或者,当文件对象为文件夹时,继续对文件夹遍历,直至获取目标文件集中的所有文件。
在一些可选的实施方式中,获取模块1301,还用于:
获取与目标文件集中每一个文件对应的内容指标值;
将内容指标值相同的多个文件中的目标文件进行保留;
获取目标文件的存储位置信息;
根据存储位置信息,生成指针路径信息,并将指针路径信息存储到目标替换文件中;
将内容指标值相同的多个文件中除目标文件之外的其他文件均分别替换为目标替换文件,得到更新后的目标文件集。
在一些可选的实施方式中,内容指标值为MD5值。
在一些可选的实施方式中,该装置还包括标记模块1305,用于:
将目标镜像文件标记为数据集类镜像文件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的镜像文件生成装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图11所示的文件集恢复装置,或者,具有上述图12所示的文件分块分发装置,或者,具有上述图13所示的镜像文件生成装置。
请参阅图14,图14是本发明可选实施例提供的一种计算机设备的结构示意图,如图14所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图14中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (16)
1.一种文件集恢复方法,其特征在于,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述镜像拉取节点执行,所述方法包括:
向所述镜像文件块分发节点发送镜像文件获取请求,其中,所述镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示所述镜像文件块分发节点根据所述标识信息,确定存储与所述标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接;
从所述目标种子节点上拉取到目标镜像文件对应的所有文件分块,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,所述文件分块为所述镜像文件块分发节点对所述目标镜像文件进行分块后分发到一个或多个所述候选种子节点的;
对所述目标镜像文件进行解析,得到镜像元数据层和数据镜像层;
根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集,包括:
对所述数据镜像层进行解析,得到多个子数据镜像层;
根据所述镜像元数据层中的镜像元数据,遍历每一个所述子数据镜像层,将每一个所述子数据镜像层恢复为与所述子数据镜像层对应的文件;
根据所述镜像元数据层,以及与每一个所述子数据镜像层对应的文件,得到所述目标文件集。
3.根据权利要求2所述的方法,其特征在于,当根据所述镜像元数据层中的镜像元数据,遍历每一个所述子数据镜像层时,若所述子数据镜像层对应的文件为目标替换文件时,所述方法还包括:
从所述目标替换文件中提取指针路径信息,其中,所述指针路径信息为指示存储目标文件的存储位置信息的指针路径;
根据所述指针路径信息,确定所述目标文件的存储位置,并从所述存储位置获取所述目标文件;
将所述目标替换文件替换为所述目标文件。
4.一种文件分块分发方法,其特征在于,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述镜像文件块分发节点执行,所述方法包括:
当监测到镜像文件库中新增目标镜像文件时,从所述镜像文件库中获取所述目标镜像文件,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在所述镜像文件库中的;
对所述目标镜像文件进行分块,得到与所述目标镜像文件对应的多个文件分块;
从至少一个种子节点选取至少一个候选种子节点;
将多个所述文件分块分发到至少一个所述候选种子节点上,其中,至少一个所述候选种子节点中的每一个所述候选种子节点上下载有多个所述文件分块中的所有文件分块或部分文件分块,以便后续所述镜像拉取节点从至少一个所述候选种子节点上拉取所述目标镜像文件对应的所有文件分块,并恢复出所述目标文件集。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收来自所述镜像拉取节点的镜像文件获取请求;
从所述镜像文件获取请求中提取待获取的镜像文件的标识信息;
根据所述标识信息,确定存储与所述标识信息对应的镜像文件的文件分块的至少一个候选种子节点;
从至少一个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接。
6.一种镜像文件生成方法,其特征在于,所述方法应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述方法由所述文件集处理节点执行,所述方法包括:
获取目标文件集,对所述目标文件集进行扫描,获取与所述目标文件集的文件层级结构信息,并将所述文件层级结构信息作为镜像元数据层;
根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件;
根据所述镜像元数据层,对所述目标文件集中的文件进行层级封装得到数据镜像层,以及,对所述镜像元数据层进行封装,所述数据镜像层和封装后的镜像元数据层共同构成目标镜像文件;
将所述目标镜像文件存储在镜像文件库中。
7.根据权利要求6所述的方法,其特征在于,所述目标文件集中包括至少一个文件对象,所述文件对象为文件夹或文件;
所述根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件,包括:
将与所述目标文件集对应的根目录确定为根节点;
以所述根节点为遍历起点,对所述目标文件集中包括的每一个所述文件对象进行遍历,得到与每一个所述文件对象对应的子节点;
当任一所述文件对象为文件时,停止对该文件对象的遍历;
或者,当所述文件对象为文件夹时,继续对所述文件夹遍历,直至获取所述目标文件集中的所有文件。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
获取与所述目标文件集中每一个文件对应的内容指标值;
将所述内容指标值相同的多个文件中的目标文件进行保留;
获取所述目标文件的存储位置信息;
根据所述存储位置信息,生成指针路径信息,并将所述指针路径信息存储到目标替换文件中;
将所述内容指标值相同的多个文件中除所述目标文件之外的其他文件均分别替换为所述目标替换文件,得到更新后的目标文件集。
9.根据权利要求8所述的方法,其特征在于,所述内容指标值为MD5值。
10.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
将所述目标镜像文件标记为数据集类镜像文件。
11.一种文件集恢复装置,其特征在于,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述镜像拉取节点,所述装置包括:
发送模块,用于向所述镜像文件块分发节点发送镜像文件获取请求,其中,所述镜像文件获取请求中包括待获取的镜像文件的标识信息,用以指示所述镜像文件块分发节点根据所述标识信息,确定存储与所述标识信息对应的目标镜像文件的文件分块的一个或多个候选种子节点,从一个或多个所述候选种子节点中选取目标种子节点,并建立所述镜像拉取节点和所述目标种子节点之间的通讯连接;
拉取模块,用于从所述目标种子节点上拉取到目标镜像文件对应的所有文件分块,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在镜像文件库中的,所述文件分块为所述镜像文件块分发节点对所述目标镜像文件进行分块后分发到一个或多个所述候选种子节点的;
解析模块,用于对所述目标镜像文件进行解析,得到镜像元数据层和数据镜像层;
恢复模块,用于根据所述镜像元数据层和所述数据镜像层,恢复出所述目标文件集。
12.一种文件分块分发装置,其特征在于,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述镜像文件块分发节点,所述装置包括:
获取模块,用于当监测到镜像文件库中新增目标镜像文件时,从所述镜像文件库中获取所述目标镜像文件,其中,所述目标镜像文件为所述文件集处理节点对获取到的目标文件集进行遍历得到,并存储在所述镜像文件库中的;
分块模块,用于对所述目标镜像文件进行分块,得到与所述目标镜像文件对应的多个文件分块;
选取模块,用于从至少一个种子节点选取至少一个候选种子节点;
分发模块,用于将多个所述文件分块分发到至少一个所述候选种子节点上,其中,至少一个所述候选种子节点中的每一个所述候选种子节点上下载有多个所述文件分块中的所有文件分块或部分文件分块,以便后续所述镜像拉取节点从至少一个所述候选种子节点上拉取所述目标镜像文件对应的所有文件分块,并恢复出所述目标文件集。
13.一种镜像文件生成装置,其特征在于,所述装置应用于集群,所述集群中包括文件集处理节点、镜像文件块分发节点、至少一个种子节点和镜像拉取节点,所述装置配置在所述文件集处理节点,所述装置包括:
获取模块,用于获取目标文件集,对所述目标文件集进行扫描,获取与所述目标文件集的文件层级结构信息,并将所述文件层级结构信息作为镜像元数据层;
遍历模块,用于根据所述文件层级结构信息,对所述目标文件集进行遍历,得到所述目标文件集中的每一个文件;
封装模块,用于根据所述镜像元数据层,对所述目标文件集中的文件进行层级封装得到数据镜像层,以及,对所述镜像元数据层进行封装,所述数据镜像层和封装后的镜像元数据层共同构成目标镜像文件;
存储模块,用于将所述目标镜像文件存储在镜像文件库中。
14.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至3中任一项所述的文件集恢复方法,或者,执行权利要求4或5所述的文件分块分发方法,或者,执行权利要求6至10中任一项所述的镜像文件生成方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至3中任一项所述的文件集恢复方法,或者,执行权利要求4或5所述的文件分块分发方法,或者,执行权利要求6至10中任一项所述的镜像文件生成方法。
16.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至3中任一项所述的文件集恢复方法,或者,执行权利要求4或5所述的文件分块分发方法,或者,执行权利要求6至10中任一项所述的镜像文件生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410374356.5A CN117971774B (zh) | 2024-03-29 | 2024-03-29 | 文件集恢复方法、装置、计算机设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410374356.5A CN117971774B (zh) | 2024-03-29 | 2024-03-29 | 文件集恢复方法、装置、计算机设备、介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971774A CN117971774A (zh) | 2024-05-03 |
CN117971774B true CN117971774B (zh) | 2024-06-07 |
Family
ID=90862992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410374356.5A Active CN117971774B (zh) | 2024-03-29 | 2024-03-29 | 文件集恢复方法、装置、计算机设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971774B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386425B1 (en) * | 2010-02-19 | 2013-02-26 | Netapp, Inc. | Out of order delivery for data and metadata mirroring in a cluster storage system |
CN110457163A (zh) * | 2019-07-05 | 2019-11-15 | 苏州元核云技术有限公司 | 一种分布式块存储的数据恢复方法、装置及存储介质 |
CN114238262A (zh) * | 2021-12-17 | 2022-03-25 | 中国电信股份有限公司 | 镜像分发方法、镜像分发装置、电子设备以及存储介质 |
CN117675837A (zh) * | 2023-11-20 | 2024-03-08 | 中国电信股份有限公司 | 镜像分发系统、方法 |
-
2024
- 2024-03-29 CN CN202410374356.5A patent/CN117971774B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386425B1 (en) * | 2010-02-19 | 2013-02-26 | Netapp, Inc. | Out of order delivery for data and metadata mirroring in a cluster storage system |
CN110457163A (zh) * | 2019-07-05 | 2019-11-15 | 苏州元核云技术有限公司 | 一种分布式块存储的数据恢复方法、装置及存储介质 |
CN114238262A (zh) * | 2021-12-17 | 2022-03-25 | 中国电信股份有限公司 | 镜像分发方法、镜像分发装置、电子设备以及存储介质 |
CN117675837A (zh) * | 2023-11-20 | 2024-03-08 | 中国电信股份有限公司 | 镜像分发系统、方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117971774A (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170277556A1 (en) | Distribution system, computer, and arrangement method for virtual machine | |
US20180113700A1 (en) | Caching and analyzing images for faster and simpler cloud application deployment | |
CN112565325B (zh) | 镜像文件管理方法、装置及系统、计算机设备、存储介质 | |
CN107783816A (zh) | 虚拟机的创建方法及装置、大数据集群创建的方法及装置 | |
US10908834B2 (en) | Load balancing for scalable storage system | |
US20160342607A1 (en) | Application bundle management across mixed file system types | |
CN110162334B (zh) | 一种代码管理方法、装置及存储介质 | |
CN104461693A (zh) | 一种桌面云计算环境下的虚拟机更新方法和系统 | |
CN111694791A (zh) | 一种分布式基础框架中的数据存取方法及装置 | |
US10474696B2 (en) | Replication groups for content libraries | |
Deyhim | Best practices for amazon emr | |
Fan et al. | Gear: Enable efficient container storage and deployment with a new image format | |
CN112333003B (zh) | 一种获取专有云容器集群基因信息的方法及装置 | |
CN111552494B (zh) | 一种容器组的管理方法、设备、系统及介质 | |
CN113608838A (zh) | 应用镜像文件的部署方法、装置、计算机设备和存储介质 | |
CN117971774B (zh) | 文件集恢复方法、装置、计算机设备、介质及程序产品 | |
CN103425707A (zh) | 数据分析方法和装置 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN115293365A (zh) | 机器学习模型的管理方法、装置、管理平台和存储介质 | |
US20150347402A1 (en) | System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace | |
CN113965582B (zh) | 一种模式转换方法和系统,及存储介质 | |
JP2020038421A (ja) | ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム | |
CN114996236A (zh) | 融合存储系统的数据处理方法、装置、设备及存储介质 | |
Louati et al. | Gc-cr: a decentralized garbage collector component for checkpointing in clouds | |
US10235262B2 (en) | Recognition of operational elements by fingerprint in an application performance management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |