CN110955720B - 一种数据加载方法、装置及系统 - Google Patents
一种数据加载方法、装置及系统 Download PDFInfo
- Publication number
- CN110955720B CN110955720B CN201811134003.9A CN201811134003A CN110955720B CN 110955720 B CN110955720 B CN 110955720B CN 201811134003 A CN201811134003 A CN 201811134003A CN 110955720 B CN110955720 B CN 110955720B
- Authority
- CN
- China
- Prior art keywords
- data
- loading
- storage
- target
- node
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 380
- 238000003860 storage Methods 0.000 claims abstract description 979
- 238000009826 distribution Methods 0.000 claims abstract description 252
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000007726 management method Methods 0.000 claims description 84
- 238000010367 cloning Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 abstract description 21
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- PMHURSZHKKJGBM-UHFFFAOYSA-N isoxaben Chemical compound O1N=C(C(C)(CC)CC)C=C1NC(=O)C1=C(OC)C=CC=C1OC PMHURSZHKKJGBM-UHFFFAOYSA-N 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据加载方法、装置及系统,该方法包括:获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据加载方法、装置及系统。
背景技术
目前,随着云服务技术的快速发展,云服务器(Elastic Compute Service,ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,能够帮助客户快速构建更稳定、安全的应用,从而实现提升运维效率、降低IT成本。
当前,针对云盘快照的跨集群加载过程,首先,在源存储集群接收到云盘快照创建请求后,由该源存储集群创建目标云盘的云盘快照,然后,源存储集群将该云盘快照备份上传至快照中心,在目的存储集群接收到云盘克隆请求后,由该目的存储集群从快照中心处延迟加载该云盘快照,进而基于该云盘快照克隆得到新云盘。
由此可知,现有技术中云盘快照由源存储集群加载到目的存储集群的过程中,需要快照中心作为云盘快照传输的中介,存在数据加载速度慢、耗时时间长的问题。
发明内容
本申请实施例的目的是提供一种数据加载方法、装置及系统,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
为解决上述技术问题,本申请实施例是这样实现的:
本申请实施例提供了一种数据加载方法,包括:
获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
本申请实施例提供了一种数据加载方法,包括:
将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
本申请实施例提供了一种数据加载装置,包括:
分布信息获取模块,用于获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
加载请求发送模块,用于基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
数据块加载模块,用于根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
本申请实施例提供了一种数据加载装置,包括:
数据块分配模块,用于将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
分布信息确定模块,用于根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
分布信息发送模块,用于将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
获取请求接收模块,用于接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
数据块传输模块,用于响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
本申请实施例提供了一种数据加载系统,包括:源存储集群和目的存储集群,所述源存储集群与所述目的存储集群通信连接;
所述源存储集群包括:源管控节点和多个源存储节点,所述目的存储集群包括:目的管控节点和多个目的存储节点;
所述目的存储集群包括:包含分布信息获取模块、加载请求发送模块和数据块加载模块的加载装置,所述源存储集群包括:包含数据块分配模块、分布信息确定模块、分布信息发送模块、获取请求接收模块和数据块传输模块的加载装置。
本申请实施例提供了一种数据加载设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
本申请实施例提供了一种数据加载设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
本申请实施例中的数据加载方法、装置及系统,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的数据加载系统的第一种应用场景示意图;
图1b为本申请实施例提供的数据加载系统的第二种应用场景示意图;
图2为本申请实施例提供的应用于目的存储集群的数据加载方法的第一种流程示意图;
图3为本申请实施例提供的数据加载方法中源存储集群与目的存储集群之间的第一种信息交互示意图;
图4为本申请实施例提供的应用于目的存储集群的数据加载方法的第二种流程示意图;
图5为本申请实施例提供的应用于目的存储集群的数据加载方法的第三种流程示意图;
图6为本申请实施例提供的数据加载方法中源存储集群与目的存储集群之间的第二种信息交互示意图;
图7为本申请实施例提供的数据加载方法中源存储集群与目的存储集群之间的第三种信息交互示意图;
图8为本申请实施例提供的数据加载方法的实现原理示意图;
图9为本申请实施例提供的应用于源存储集群的数据加载方法的流程示意图;
图10为本申请实施例提供的数据加载装置的第一种模块组成示意图;
图11为本申请实施例提供的数据加载装置的第二种模块组成示意图;
图12为本申请实施例提供的数据加载设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供了一种数据加载方法、装置及系统,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
图1a和图1b为本申请实施例提供的数据加载系统的应用场景示意图,如图1a所示,该数据加载系统包括:源存储集群和目的存储集群,其中,该源存储集群包括:源管控节点和多个源存储节点,该目的存储集群包括:目的管控节点和多个目的存储节点;
具体的,针对将目标云盘的云盘快照由一个存储集群拷贝到另一个存储集群的情况,在源存储集群中创建目标云盘的云盘快照,在该云盘快照从源存储集群中删除之前,可以通过采用本申请实施例提供的数据加载方法,实现将该云盘快照由源存储集群快速传输至目的存储集群,以使该云盘快照在目的存储集群秒级可用,在具体实施时,首先,源存储集群对该云盘快照进行切片处理,得到多个切片数据块,即得到多个快照数据块,并将多个切片数据块分配给源存储集群中的多个源存储节点,该多个源存储节点可以是源管控节点根据实际情况从源存储集群中选取出的,由选取出的多个源存储节点分别负责分配给各自的切片数据块,并且源管控节点生成用于表征多个切片数据块存储位置的分布信息,以及目的管控节点直接或间接从源管控节点处获取该分布信息;
其中,目的存储集群中的目的管控节点可以通过如下两种方式获取分布信息,具体为:
方式一,针对目的管控节点从源管控节点直接获取分布信息的情况,目的管控节点向源管控节点发送分布信息获取请求,以及接收源管控节点响应于该分布信息获取请求并传输的分布信息,或者,目的管控节点直接接收源管控节点主动发送的分布信息;
方式二,针对目的管控节点从源管控节点间接获取分布信息的情况,即目的管控节点从调度节点处获取源管控节点处上传的分布信息,如图1b所示,上述数据加载系统包括:调取节点;具体的,源管控节点生成分布信息后,将该分布信息上传至调度节点,以便调度节点向目的存储集群中的目的管控节点发送携带有该分布信息的数据加载请求,以使目的管控节点基于该数据加载请求获取分布信息;
然后,目的管控节点在获取到分布信息后,目的管控节点将分布信息对应的云盘快照加载任务划分为多个子任务,并向目的存储集群中的多个目的存储节点分别发送点对点加载请求,即将多个子任务分配给目的存储集群中的多个目的存储节点,该多个目的存储节点可以是目的管控节点根据实际情况从目的存储集群中选取出的,由选取出的多个目的存储节点从多个源存储节点处点对点加载对应的切片数据块;
其中,在云盘快照跨集群拷贝过程中,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
图2为本申请实施例提供的数据加载方法的第一种流程示意图,图2中的方法能够由图1a或图1b中的目的存储集群执行,如图2所示,该方法至少包括以下步骤:
S201,获取表征多个切片数据块存储位置的分布信息,其中,该多个切片数据块分别存储于源存储集群中的多个源存储节点中;
其中,上述切片数据块可以是基于逻辑区块地址(Logical Block Address,LBA)按照预设地址大小间隔对目标云盘的云盘快照切割得到的快照数据块,该目标云盘是为用户提供的具有块设备磁盘同等存储功能的虚拟磁盘,通过目标云盘实现块存储,该块存储是为云服务器ECS提供的低时延、持久性、高可靠的数据块级随机存储,可以对挂载到云服务器ECS实例上的块存储做分区、创建文件系统等操作,并对数据持久化存储;
其中,上述分布信息可以是包含多条数据记录,每条数据记录是针对一个切片数据块的存储信息,该数据记录可以包括:切片数据块的数据标识、数据属性信息、以及所在源存储节点的节点标识。
S202,基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,其中,该点对点加载请求中携带有表征数据块加载任务的指示信息;
S203,根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载切片数据块;
其中,目的存储节点接收到目的存储集群中的目的管控节点发送的点对点加载请求后,基于该点对点加载请求,确定存储待加载的切片数据块的源存储节点,即基于点对点加载请求确定负责该待加载的切片数据块的源存储节点,其中,该切片数据块可以是由云盘快照切割得到的快照数据块;以及从确定出的源存储节点处加载切片数据块,即直接由目的存储节点向负责待加载的切片数据块的源存储节点进行点对点读取,具体的,目的存储节点向确定出的源存储节点发送数据获取请求,以接收源存储节点传输的切片数据块。
具体的,目的管控节点获取到分布信息后,将该分布信息对应的云盘快照的加载任务划分为多个子任务,将多个子任务分配给目的存储集群中的多个目的存储节点,目的存储节点直接从对应的源存储节点处加载切片数据块,以便目的存储集群从源存储集群处获取由源数据切分得到的所有切片数据块,针对源数据可以是目标云盘的云盘快照的情况,不仅避开快照中心直接从源存储集群获取云盘快照,还能够充分借用存储集群中存储节点的处理性能,目的存储集群获取到由云盘快照切分得到的所有快照数据块后,可以基于该快照数据块克隆得到与目标云盘相同的新云盘,即在目的存储集群中进行云盘快照备份。
其中,步骤S201和S202的执行主体为目的存储集群中的目的管控节点,步骤S203的执行主体为目的存储集群中的目的存储节点。
本申请实施例中,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
其中,上述分布信息可以是源存储集群发送至调度节点的,再由调度节点将该分布信息传输至目的存储集群中,上述分布信息还可以是目的存储集群直接从源存储集群中获取的,即目的存储集群中的目的管控节点直接从源存储集群中的源管控节点处获取分布信息,具体的,上述S201获取表征多个切片数据块存储位置的分布信息,具体包括:
从源存储集群中的源管控节点处获取表征多个切片数据块存储位置的分布信息;或者,
响应于调度节点发送的数据加载请求,获取表征多个切片数据块存储位置的分布信息;
具体的,针对目的管控节点从调度节点处获取分布信息的情况,调度节点在中心管控节点的控制下,向目的存储集群发送数据加载请求,其中,该数据加载请求中携带有用于表征多个切片数据块存储位置的分布信息;
对应的,针对目的管控节点从源管控节点处获取分布信息的情况,目的管控节点向源管控节点发送分布信息获取请求,以及接收源管控节点响应于该分布信息获取请求并传输的分布信息,或者,目的管控节点直接接收源管控节点主动发送的分布信息。
如图3所示,针对目的管控节点从源管控节点处直接获取分布信息的情况,给出了源存储集群与目的存储集群之间的信息交互示意图,具体为:
S301,源管控节点对在源存储集群创建的目标云盘的云盘快照进行切片得到的多个切片数据块;
S302,源管控节点将多个切片数据块分配给在源存储集群中选取出的多个源存储节点;
S303,源管控节点根据多个切片数据块的分配结果生成表征多个切片数据块存储位置的分布信息;
S304,目的管控节点从源管控节点处获取表征多个切片数据块存储位置的分布信息;
S305,目的管控节点接收到云盘克隆请求后,基于获取到的分布信息,向在目的存储集群中选取出的多个目的存储节点分别发送点对点加载请求;
S306,目的存储节点基于接收到的点对点加载请求,确定存储待加载的切片数据块的源存储节点;
S307,目的存储节点向确定出的源存储节点发送数据获取请求;
S308,源存储节点接收到数据获取请求后,向目的存储节点发送与该数据获取请求对应的切片数据块;
S309,目的存储节点接收源存储节点传输的切片数据块,以使目的管控节点基于多个目的存储节点获取到的多个切片数据块得到目标云盘的云盘快照,并在目的存储集群中克隆得到目标云盘的克隆云盘,以实现目的存储集群直接从源存储节点处加载云盘快照并秒级可用。
其中,上述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块,对应的,如图4所示,在上述S203根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载切片数据块之后,还包括:
S204,基于多个目的存储节点分别加载到的多个快照数据块,生成目标云盘的克隆云盘,其中,步骤S204的执行主体为目的存储集群中的目的管控节点。
具体的,上述S204基于多个目的存储节点分别加载到的多个快照数据块,生成目标云盘的克隆云盘,具体包括:
在目的存储集群中,确定用于克隆目标云盘的数据存储空间;
将加载到的多个切片数据块添加至对应的数据存储空间,生成目标云盘的云盘快照。
其中,该目标云盘设置于源存储集群中,源存储集群在调度节点调度下,创建目标云盘的云盘快照,以及目的存储集群在调度节点调度下,基于加载到的云盘拍照克隆得到新云盘;
例如,从目的存储集群中选取4个目的存储节点作为用于克隆目标云盘的数据存储空间,目的管控节点触发这4个目的存储节点共用完成云盘克隆,即将加载到的快照数据块添加至该4个目的存储节点对应的数据存储空间,得到目标云盘的克隆云盘,该克隆云盘挂载于某一计算集群上的云服务器,以为该云服务器提供存储资源。
其中,如图5所示,针对目的管控节点向目的存储节点下发点对点加载请求的过程,上述S202基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,具体包括:
S2021,基于获取到的分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务;
S2022,将携带有数据加载任务的点对点加载请求分别下发给对应的目的存储节点;
对应的,针对目的存储节点从源存储节点处加载切片数据块的过程,上述S203根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载切片数据块,具体包括:
S2031,根据接收到的点对点加载请求,确定目的存储集群中的目的管控节点分配的数据加载任务,其中,该数据加载任务是目的管控节点基于表征多个切片数据块存储位置的分布信息生成的多个数据加载任务中的一个;
S2032,根据确定出的数据加载任务,确定存储待加载的切片数据块的源存储节点;
S2033,从确定出的源存储节点处加载对应的切片数据块。
在一个具体实施例中,针对多个切片数据块为对目标云盘的云盘快照进行切片得到的多个快照数据块,上述分布信息中的每条数据记录是针对一个快照数据块的存储信息,每条数据记录可以包括表1中的多个数据项,具体为:
表1
对应的,用于表征多个快照数据块存储位置的分布信息,针对目的管控节点直接从源管控节点处获取分布信息的情况,可以由源管控节点根据各快照数据对应的数据记录维护一个数据库表作为分布信息;或者针对目的管控节点从调度节点处获取分布信息的情况,可以由调度节点根据源管控节点上传的各快照数据对应的数据记录维护一个数据库表作为分布信息,如表2所示,具体为:
表2
基于表2中,可以查询到由云盘快照切分得到的各快照数据块的属性信息及各快照数据块所在源存储节点的存储位置信息。
进一步的,可以采用分配数据块的属性信息或分配分布信息中的数据记录,来触发目的存储节点加载对应的快照数据块,在具体实施时,针对数据加载任务的分配过程,可以采用如下两种方式,第一种分配方式为:采用分配逻辑地址区间触发目的存储节点加载对应的快照数据块的方式,即将云盘快照的逻辑地址按照预设间隔划分为多个子逻辑地址区间,每个子逻辑地址区间表征云盘快照中快照数据块的属性信息,每个子逻辑地址区间对应于一个数据加载任务分配给一个目的存储节点;第二种分配方式为:采用分配分布信息中的数据记录触发目的存储节点加载对应的快照数据块的方式,即将获取到的分布信息中的多条数据记录划分为多个数据记录集合,每个数据记录集合对应于一个数据加载任务分配给一个目的存储节点。
其中,针对采用分配逻辑地址区间触发快照数据块加载的情况,上述S2021基于获取到的分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,具体包括:
步骤一,确定获取到的分布信息中待加载的切片数据块的属性信息;
具体的,针对切片数据块为快照数据块的情况,切片数据块的属性信息可以是快照数据块的逻辑地址区间;
步骤二,根据确定出的切片数据块的属性信息,生成用于指示加载符合指定属性信息的切片数据块的数据加载任务,其中,该数据加载任务的数量等于在目的存储集群中选取的目的存储节点的数量,即需要为每个选取的目的存储节点配置一个数据加载任务;
具体的,仍以快照数据块为例,快照数据块的逻辑地址区间是连续的,根据各快照数据块的逻辑地址区间,确定云盘快照的逻辑地址区间,将云盘快照的逻辑地址区间按照预设间隔划分为多个子逻辑地址区间,每个子逻辑地址区间表征云盘快照中快照数据块的属性信息,每个子逻辑地址区间对应于一个数据加载任务分配给一个目的存储节点;
例如,以预设间隔为固定值为例,若云盘快照的逻辑地址区间为0db到64db,预设间隔为8db,此时,划分的多个子逻辑地址区间的地址长度均为8db,数据加载任务1对应的指定属性信息为0-8db,数据加载任务2对应的指定属性信息为9-16db,依次类推,将多个包含指定属性信息的数据加载任务分配给在目的存储集群中选取的多个目的存储节点,获取到数据加载任务1的目的存储节点,需要从源存储节点处加载属性信息为0-8db的至少一个快照数据块,若云盘快照切片得到的每个快照数据块的地址长度为4db,则该目的存储节点需要分别从存储有0-4db的快照数据块的源存储节点处加载该快照数据块,以及从存储有5-8db的快照数据块的源存储节点处加载该快照数据块。
其中,考虑到分配任务中只携带切片数据块的属性信息的情况,还需要将分布信息发送给目的存储节点,对应的,上述S2022将携带有数据加载任务的点对点加载请求分别下发给对应的目的存储节点,具体包括:
将携带有分布信息和数据加载任务点对点加载请求下发给对应的目的存储节点,以使该目的存储节点根据该分布信息和该数据加载任务从源存储节点处加载切片数据块。
其中,针对采用分配数据块的属性信息来触发目的存储节点加载对应的快照数据块的情况,上述数据加载任务用于指示加载符合指定属性信息的切片数据块;上述方法还包括:
获取目的存储集群中的目的管控节点下发的分布信息,具体的,目的存储节点从接收到的点对点加载请求中提取数据加载任务的同时提取表征多个切片数据块存储位置的分布信息;
对应的,上述S2032根据确定出的数据加载任务,确定存储待加载的切片数据块的源存储节点,具体包括:
步骤一,在获取到的分布信息中,查找符合指定属性信息的切片数据块的存储位置信息;
步骤二,将查找出的存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
在本申请实施例中,采用分配逻辑地址区间触发快照数据块加载的方式,在向目的存储节点发送数据加载任务的同时发送一份分布信息,以便目的存储节点查找到对应的数据记录,这样当分布信息需要更新时,直接将更新后的分布信息发送给目的存储节点,即可触发目的存储节点准确地从源存储节点中获取所需的切片数据块。
具体的,针对目的存储节点确定存储待加载的切片数据块的源存储节点的过程,基于数据加载任务指示的指定属性信息,在接收到的分布信息中,查找与该指定属性信息对应的切片数据块所在的数据记录,再从查找到的数据记录中得到源存储节点的标识;
例如,某一目的存储节点的数据加载任务是加载指定属性信息为0-8db的快照数据块,在上述表2中,查找包含0-4db的数据记录或者起始地址为0db且逻辑地址长度为4db的数据记录,以及查找包含5-8db的数据记录或者起始地址为5db且逻辑地址长度为4db的数据记录,再从查找到的两条数据记录中得到源存储节点的标识为源节点01和源节点02,即属性信息为0-4db或者起始地址为0db且逻辑地址长度为4db的快照数据块存储于源节点01中,属性信息为5-8db或者起始地址为5db且逻辑地址长度为4db的快照数据块存储于源节点01中,此时,目的存储节点直接从源节点01处加载属性信息为0-4db的快照数据块,以及从源节点02处加载属性信息为5-8db的快照数据块即可。
具体的,可以在目的管控节点处定义一个数据结构:
tyepdef struct snapshot_lba_location{
int64_t lba_offset;
int64_t lba_length;
string location;
}
以及,在确定存储待加载切片数据块的源存储节点的处理过程,实现一个处理处理函数:
int DoSnapshotDataLazyload(const string&snapshot_id,const std::vector<snapshot_lba_location>&locations,int64_t data_offset,int64_t data_length);
具体的,通过上述处理函数查找data_offset和data_length对应的location信息,再向与location信息对应的至少一个源存储节点发送数据获取请求,以从该源存储节点处加载对应的切片数据块。
如图6所示,给出了源存储集群与目的存储集群之间的信息交互示意图,具体为:
S301,源管控节点对在源存储集群创建的目标云盘的云盘快照进行切片得到的多个切片数据块;
S302,源管控节点将多个切片数据块分配给在源存储集群中选取出的多个源存储节点;
S303,源管控节点根据多个切片数据块的分配结果生成表征多个切片数据块存储位置的分布信息;
S304,目的管控节点从源管控节点处获取表征多个切片数据块存储位置的分布信息;
S3051,目的管控节点接收到云盘克隆请求后,确定获取到的分布信息中待加载的切片数据块的属性信息;
S3052,目的管控节点根据确定出的切片数据块的属性信息,生成用于指示加载符合指定属性信息的切片数据块的数据加载任务;
S3053,目的管控节点将获取到的分布信息和确定出的数据加载任务下发给对应的目的存储节点;
S3061,目的存储节点在接收到的分布信息中,查找符合指定属性信息的切片数据块的存储位置信息;
S3062,目的存储节点将查找出的存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点;
S307,目的存储节点向确定出的源存储节点发送数据获取请求;
S308,源存储节点接收到数据获取请求后,向目的存储节点发送与该数据获取请求对应的切片数据块;
S309,目的存储节点接收源存储节点传输的切片数据块,以实现目的存储集群直接从源存储节点处加载云盘快照并秒级可用。
其中,针对采用分配分布信息中的数据记录触发快照数据块加载的情况,上述S2021基于获取到的分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,具体包括:
步骤一,将获取到的分布信息中多条数据记录划分为指定数量的数据记录集合,其中,该指定数量等于在目的存储集群中选取的目的存储节点的数量;
其中,每个数据记录集合包含分布信息中的至少一条数据记录,具体的,可以充分借用存储集群中的存储节点的处理性能,多个目的存储节点同时从源存储节点处加载切片数据块,可以有效缩短数据加载时间,在目的存储集群中选取的目的存储节点的数量可以大于第一阈值,其中,该第一阈值可以根据各目的存储节点的负载情况和待加载的云盘快照的大小来确定。
步骤二,针对每个数据记录集合,生成用于指示加载该数据记录集合中至少一条数据记录对应的切片数据块的数据加载任务,其中,由于数据记录集合的数量等于在目的存储集群中选取的目的存储节点的数量,因此,生成的数据加载任务的数量等于在目的存储集群中选取的目的存储节点的数量,即需要为每个选取的目的存储节点配置一个数据加载任务;
具体的,每条数据记录如上述表2所示,例如,若将表2中的第一条数据记录和第二条数据记录分为一个数据记录集合,基于该数据记录集合生成的数据加载任务为加载属性信息为0-4db的快照数据块和加载属性信息为5-8db的快照数据块。
其中,针对采用分配分布信息中的数据记录来触发目的存储节点加载对应的快照数据块的情况,上述数据加载任务用于指示加载分布信息中至少一条数据记录对应的切片数据块;
对应的,上述S2032根据确定出的数据加载任务,确定存储待加载的切片数据块的源存储节点,具体包括:
步骤一,确定数据记录集合中至少一条数据记录所记载的切片数据块的存储位置信息;
步骤二,将确定出的存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
具体的,针对目的存储节点确定存储待加载的切片数据块的源存储节点的过程,例如,数据记录集合中包含表2中的第一条数据记录和第二条数据记录,则基于这两条数据记录可知,存储待加载的快照数据块的源存储节点为源节点01和源节点02,此时,目的存储节点直接从源节点01处加载属性信息为0-4db的快照数据块,以及从源节点02处加载属性信息为5-8db的快照数据块即可。
如图7所示,给出了源存储集群与目的存储集群之间的信息交互示意图,具体为:
S301,源管控节点对在源存储集群创建的目标云盘的云盘快照进行切片得到的多个切片数据块;
S302,源管控节点将多个切片数据块分配给在源存储集群中选取出的多个源存储节点;
S303,源管控节点根据多个切片数据块的分配结果生成表征多个切片数据块存储位置的分布信息;
S304,目的管控节点从源管控节点处获取表征多个切片数据块存储位置的分布信息;
S3054,目的管控节点接收到云盘克隆请求后,将获取到的分布信息中多条数据记录划分为指定数量的数据记录集合;
S3055,目的管控节点针对每个数据记录集合,生成用于指示加载该数据记录集合中至少一条数据记录对应的切片数据块的数据加载任务;
S3056,目的管控节点将生成的数据加载任务下发给对应的目的存储节点;
S3063,目的存储节点确定数据记录集合中至少一条数据记录所记载的切片数据块的存储位置信息;
S3064,目的存储节点将确定出的存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点
S307,目的存储节点向确定出的源存储节点发送数据获取请求;
S308,源存储节点接收到数据获取请求后,向目的存储节点发送与该数据获取请求对应的切片数据块;
S309,目的存储节点接收源存储节点传输的切片数据块,以实现目的存储集群直接从源存储节点处加载云盘快照并秒级可用。
进一步的,在分配加载任务之前,需要先在目的存储集群中选取指定数量的目的存储节点,由选取的该指定数量的目的存储节点负责与存储有切片数据块的源存储节点之间进行点对点加载,基于此,在上述S202基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请之前,还包括:
确定任务下发决策因素,其中,该任务下发决策因素包括:目的存储集群中目的存储节点的可用数量、负载状态、处理能力、以及云盘快照的属性信息中至少一种;
根据确定出的任务下发决策因素,在目的存储集群中选取指定数量个目的存储节点。
其中,在目的存储集群中选取指定数量的存储节点的过程可以是随机的,也可以是基于任务下发决策因素选取的,具体的,针对基于任务下发决策因素选取的多个目的存储节点的过程,具体为:
(1)当任务下发决策因素的种类包括一项的情况,基于该任务下发决策因素对目的存储集群中的各目的存储节点的使用优先级由高到低的顺序进行排序,根据排序结果选择排序靠前的指定数量的目的存储节点负责从源存储节点处加载切片数据块。
(2)当任务下发决策因素的种类包括两项以上的情况,可以预先设定各任务下发决策因素的权重系数,分别针对每个目的存储节点,确定该目的存储节点在各任务下发决策因素下分别对应的使用优先级,再根据各任务下发决策因素的权重系数和使用优先级,确定该目的存储节点的最终优先级,其中,最终优先级的计算公式为:R=b1x1+b2xn+...bnxn,其中,R表示目的存储节点的最终优先级,bn表示序号为n的任务下发决策因素的权重系数,xn表示序号为n的任务下发决策因素对应的使用优先级;
在确定出各目的存储节点的最终优先级后,选择排序靠前的指定数量的目的存储节点负责从源存储节点处加载切片数据块。
其中,在目的存储节点确定出存储其自身需要待加载的切片数据块的源存储节点后,需要从该源存储节点处获取对应的切片数据块,具体的,上述S2033从确定出的源存储节点处加载对应的切片数据块,具体包括:
向确定出的源存储节点发送数据获取请求;
接收源存储节点响应于数据获取请求而提供的切片数据块。
其中,为了提高切片数据块的获取准确度,上述数据获取请求携带有待加载的切片数据块的指定属性信息;
对应的,上述接收源存储节点响应于数据获取请求而提供的切片数据块,具体包括:
接收源存储节点响应于数据获取请求而提供的符合指定属性信息的切片数据块;
具体的,源存储节点接收到数据获取请求后,判断本地是否存在与指定属性信息匹配的切片数据块,若是,则向目的存储节点返回对应的切片数据块,若否,则向目的存储节点返回错误提示信息。
在一个具体实施例中,如图8所示,基于存储与计算分离的云计算架构,在源存储集群与目的存储集群间实现云盘快照的克隆过程,具体包括:
首先,由中心管控节点通过调度节点触发源存储集群执行云盘快照创建操作,具体为:
中心管控节点在用户触发下,向调度节点发送快照创建指示,该快照创建指示中携带有源存储集群的标识;
调度节点接收到中心管控节点发送的快照创建指示后,向源存储集群发送快照创建请求,其中,该快照创建请求携带有目标云盘的标识;
在目标云盘所在的源存储集群中,在源管控节点控制下创建目标云盘的云盘快照,其中,目标云盘属于源存储集群,该目标云盘挂载于第一计算集群上的云服务器,以为该云服务器提供存储资源,该云盘快照的创建过程可以由作为目标云盘提供存储服务的多个源存储节点共同完成,该第一计算集群用于负责提供虚拟机VM资源,源存储集群用于负责提供磁盘块设备的存储资源;
源存储集群中的源管控节点,对创建得到的云盘快照进行切分得到多个快照数据块,其中,每个快照数据块对应于一个分配任务;
源管控节点将多个快照数据块分配给在源存储集群中选取出的多个源存储节点,以及生成表征多个快照数据块存储位置的分布信息,并且直接或间接地将该分布信息传输至目的管控节点;
调度节点接收到源管控节点发送的快照创建完成信息后,向中心管控节点发送该快照创建完成信息。
接下来,由中心管控节点通过调度节点触发目的存储集群执行云盘克隆操作,具体为:
为了实现创建的云盘快照能够在目的存储集群中快速可用,因此,需要缩短目的存储集群加载得到云盘快照所需时间,中心管控节点在接收到调度节点返回的快照创建完成信息后,在用户触发下向调度节点发送云盘克隆指示,该云盘克隆指示中携带有需要克隆目标云盘的目的存储集群的标识;
调度节点接收到中心管控节点发送的云盘克隆指示后,向对应的目的存储集群发送云盘克隆请求,其中,针对目的管控节点从调度节点处获取分布信息的情况,此时,调度节点需要在接收到的源管控节点发送的分布信息中,查找与该目的存储集群的标识对应的表征多个快照数据块存储位置的分布信息,对应的,该云盘克隆请求可以是上述数据加载请求,即该云盘克隆请求中携带有该分布信息;
目的存储集群中的目的管控节点在接收到云盘克隆请求后,获取表征多个快照数据块的分布信息,并基于该分布信息向目的存储节点发送点对点加载请求,以触发在目的存储集群中选取出的多个目的存储节点分别从多个源存储节点处加载快照数据块;
目的存储集群中的目的存储节点接收目的管控节点发送的点对点加载请求;
目的存储节点基于接收到的点对点加载请求,确定存储待加载的快照数据块的源存储节点,并从该源存储节点处加载对应的切片数据块;
在需要克隆目标云盘的目的存储集群中,在目的管控节点控制下基于加载的多个快照数据块,克隆目标云盘的克隆云盘,其中,克隆云盘属于目的存储集群,将该克隆云盘挂载到第二计算集群上的云服务器,以为该云服务器提供存储资源,该目标云盘的克隆过程可以由作为克隆云盘提供存储服务的多个目的存储节点共同完成,该第二计算集群用于负责提供虚拟机VM资源,目的存储集群用于负责提供磁盘块设备的存储资源;
目的管控节点快照克隆完成后,触发调度节点向中心管控节点发送云盘克隆完成信息。
其中,云盘快照切分为多个快照数据块的过程采用的切分规则,与分配数据加载任务的过程采用的分配规则可能不同,例如,由云盘快照切分得到的每个快照数据块的逻辑地址长度为4db,而分配给目的存储节点的数据加载任务为指示的待加载的快照数据块的逻辑地址长度为8db,又如,由云盘快照切分得到的每个快照数据块的逻辑地址长度为8db,而分配给目的存储节点的数据加载任务为指示的待加载的快照数据块的逻辑地址长度为4db;因此,将存在目的存储节点与源存储节点之间多对多加载数据块的情况,例如,某一目的存储节点需要加载的快照数据块存储于多个源存储节点中,如图8中的目的存储节点2分别从源存储节点2和源存储节点3处加载快照数据块,又如,某一源存储节点中存储有多个目的存储节点需要加载的快照数据块,如图8中的源存储节点1中存储有目的存储节点1和目的存储节点3需要加载的快照数据块。
本申请实施例中的数据加载方法,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
对应上述图2至图8描述的数据加载方法,基于相同的技术构思,本申请实施例还提供了一种数据加载方法,图9为本申请实施例提供的数据加载方法的流程示意图,图9中的方法能够由图1a或图1b中的源存储集群执行,如图9所示,该方法至少包括以下步骤:
S901,将多个切片数据块分配给在源存储集群中选取的多个源存储节点;其中,该多个切片数据块可以是对目标云盘的云盘快照进行切片得到的多个快照数据块,该多个源存储节点也可以是基于数据分配决策因素在源存储集群中选取出的,具体过程可参照上述在目的存储集群中选取多个目的存储节点的过程,在此不再赘述。
具体的,可以充分借用存储集群中的存储节点的处理性能,多个源存储节点同时响应目的存储节点的切片数据块加载操作,可以有效缩短数据加载时间,在源存储集群中选取的源存储节点的数量可以大于第二阈值,其中,该第二阈值也可以根据各源存储节点的负载情况和待加载的云盘快照的大小来确定。
S902,根据多个切片数据块的分配结果,确定表征多个切片数据块存储位置的分布信息,该分布信息的具体内容参见上述表2所示数据记录;
S903,将确定出的分布信息提供给目的存储集群中的目的管控节点,以使目的管控节点基于该分布信息向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,其中,源管控节点可以直接或间接地将该分布信息传输至目的管控节点;
S904,接收目的存储节点发送的数据获取请求,其中,该数据获取请求是目的存储节点基于各自接收到的点对点加载请求发送的;
具体的,上述数据获取请求为目的存储集群的中的目的存储节点基于接收到的点对点加载请求确定存储待加载的切片数据块的源存储节点而发送的;
具体的,在源存储节点处创建一个请求获取接口,int OnSnapshotDataCopy(const string&snapshot_id,int64_t lba_offset,int64_lba_length,void*data),通过该请求获取接口接收目的存储节点的数据获取请求,该数据获取请求的类型可以是SNAPSHOT_DATA_COPY;
S905,响应于接收到的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点。
其中,步骤S901至S903的执行主体为源存储集群中的源管控节点,步骤S904和S905的执行主体为源存储集群中的源存储节点。
本申请实施例中,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
其中,上述S903将确定出的分布信息提供给目的存储集群中的目的管控节点,具体包括:
接收目的存储集群中的目的管控节点发送的分布信息获取请求,将该分布信息传输至目的管控节点;或者,
按照预设触发条件将确定出的分布信息直接发送给目的管控节点;或者,
将确定出的分布信息上传至调度节点,以使调度节点将该分布信息下发给目的存储集群中的目的管控节点。
其中,在上述S904接收目的存储节点发送的数据获取请求之前,还包括:
接收源存储集群中的源管控节点分配的至少一个切片数据块,其中,该切片数据块是所述源管控节点对云盘快照进行切片得到的。
其中,为了提高切片数据块的获取准确度,上述数据获取请求携带有待加载的切片数据块的指定属性信息;
对应的,上述S905响应于接收到的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点,具体包括:
判断本地是否存在符合数据获取请求中的指定属性信息的切片数据块;
若存在,则将符合指定属性信息的切片数据块发送给目的存储节点;
具体的,可以通过上述请求获取接口对接收到的数据获取请求进行验证,验证获取请求的有效性,即验证源存储节点是否负责请求的切片数据块,若确定存在,则源存储节点读取出对应的切片数据块,并将该切片数据块传输给目的存储节点。
本申请实施例中的数据加载方法,将多个切片数据块分配给在源存储集群中选取的多个源存储节点;根据多个切片数据块的分配结果,确定表征多个切片数据块存储位置的分布信息;将该分布信息提供给目的存储集群中的目的管控节点;以及响应于接收到的目的存储节点发送的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
需要说明的是,本申请应用于源存储集群的实施例与本申请应用于目的存储集群的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述数据加载方法的实施,重复之处不再赘述。
对应上述图2至图8描述的数据加载方法,基于相同的技术构思,本申请实施例还提供了一种数据加载装置,图10为本申请实施例提供的数据加载装置的模块组成示意图,该装置设置于目的存储集群中,该装置用于执行图2至图8描述的数据加载方法,如图10所示,该装置包括:分布信息获取模块1001、加载请求发送模块1002和数据块加载模块1003,其中,该分布信息获取模块1001、加载请求发送模块1002设置于目的存储集群中的目的管控节点中,该数据块加载模块1003设置于目的存储集群中的目的存储节点中。
分布信息获取模块1001,用于获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
加载请求发送模块1002,用于基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
数据块加载模块1003,用于根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
本申请实施例中的数据加载装置,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
其中,上述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块;
上述方法还包括:云盘克隆模块,其中,该云盘克隆模块,用于:
在从所述源存储集群中的至少一个源存储节点处加载所述切片数据块之后,基于加载到的多个所述快照数据块,生成所述目标云盘的克隆云盘。
其中,上述加载请求发送模块1002,具体用于:
基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务;
将携带有所述数据加载任务的点对点加载请求分别下发给对应的所述目的存储节点。
其中,上述数据块加载模块1003,具体用于:
根据接收到的所述点对点加载请求,确定目的存储集群中的目的管控节点分配的数据加载任务;
根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点;
从确定出的所述源存储节点处加载所述切片数据块。
其中,上述加载请求发送模块1002,进一步具体用于:
确定所述分布信息中待加载的切片数据块的属性信息;
根据所述切片数据块的所述属性信息,生成用于指示加载符合指定属性信息的切片数据块的数据加载任务,其中,所述数据加载任务的数量等于在目的存储集群中选取的目的存储节点的数量。
其中,上述加载请求发送模块1002,还进一步具体用于:
将携带有所述分布信息和所述数据加载任务的点对点加载请求下发给对应的所述目的存储节点。
其中,所述数据加载任务用于指示加载符合指定属性信息的切片数据块;
对应的,上述数据块加载模块1003,进一步具体用于:
在获取到的所述分布信息中,查找符合所述指定属性信息的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
其中,上述加载请求发送模块1002,进一步具体用于:
将所述分布信息中多条数据记录划分为指定数量的数据记录集合,其中,所述指定数量等于在目的存储集群中选取的目的存储节点的数量;
针对每个所述数据记录集合,生成用于指示加载该数据记录集合中至少一条数据记录对应的切片数据块的数据加载任务。
其中,所述数据加载任务用于指示加载所述分布信息中至少一条数据记录对应的切片数据块;
对应的,上述数据块加载模块1003,进一步具体用于:
确定所述至少一条数据记录所记载的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
其中,上述数据块加载模块1003,还进一步具体用于:
向确定出的所述源存储节点发送数据获取请求;
接收所述源存储节点响应于所述数据获取请求而提供的切片数据块。
其中,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
对应的,上述数据块加载模块1003,更进一步具体用于:
接收所述源存储节点响应于所述数据获取请求而提供的符合所述指定属性信息的切片数据块。
其中,上述装置还包括节点选取模块,其中,该节点选取模块,用于:
在基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求之前,确定任务下发决策因素,其中,所述任务下发决策因素包括:目的存储集群中目的存储节点的可用数量、负载状态、处理能力、以及云盘快照的属性信息中至少一种;
根据所述任务下发决策因素,在目的存储集群中选取指定数量的目的存储节点。
其中,上述分布信息获取模块1001,具体用于:
从所述源存储集群中的源管控节点处获取表征多个切片数据块存储位置的分布信息;或者,
响应于调度节点发送的数据加载请求,获取表征多个切片数据块存储位置的分布信息。
其中,上述云盘克隆模块,具体用于:
在所述目的存储集群中,确定用于克隆所述目标云盘的数据存储空间;
将加载到的多个所述快照数据块添加至所述数据存储空间,生成所述目标云盘的克隆云盘。
本申请实施例中的数据加载装置,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
需要说明的是,本申请提供的设置于目的存储集群中的数据加载装置的实施例与上述应用于目的存储集群的数据加载方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据加载方法的实施,重复之处不再赘述。
对应上述图2至图8描述的数据加载方法,基于相同的技术构思,本申请实施例还提供了一种数据加载装置,图11为本申请实施例提供的数据加载装置的模块组成示意图,该装置设置于源存储集群中,该装置用于执行图2至图8描述的数据加载方法,如图11所示,该装置包括:数据块分配模块1101、分布信息确定模块1102、分布信息发送模块1103、获取请求接收模块1104和数据块传输模块1105,其中,该数据块分配模块1101、分布信息确定模块1102、分布信息发送模块1103设置于源存储集群中的源管控节点中,该获取请求接收模块1104和数据块传输模块1105设置于源存储集群中的源存储节点中。
数据块分配模块1101,用于将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
分布信息确定模块1102,用于根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
分布信息发送模块1103,用于将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
获取请求接收模块1104,用于接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
数据块传输模块1105,用于响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
本申请实施例中的数据加载装置,通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
其中,所述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块。
其中,上述分布信息发送模块1103,具体用于:
接收目的存储集群中的目的管控节点发送的分布信息获取请求,将所述分布信息传输至所述目的管控节点;或者,
按照预设触发条件将所述分布信息直接发送给所述目的管控节点;或者,
将所述分布信息上传至调度节点,以使所述调度节点将所述分布信息下发给目的存储集群中的目的管控节点。
其中,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
对应的,上述数据块传输模块1105,具体用于:
判断本地是否存在符合所述指定属性信息的切片数据块;
若存在,则将符合所述指定属性信息的所述切片数据块发送给所述目的存储节点。
其中,上述装置还包括数据块接收模块,其中,该数据块接收模块,用于:
在接收所述目的存储节点发送的数据获取请求之前,接收源存储集群中的源管控节点分配的至少一个切片数据块。
本申请实施例中的数据加载装置,将多个切片数据块分配给在源存储集群中选取的多个源存储节点;根据多个切片数据块的分配结果,确定表征多个切片数据块存储位置的分布信息;将该分布信息提供给目的存储集群中的目的管控节点;以及响应于接收到的目的存储节点发送的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
需要说明的是,本申请提供的设置于源存储集群中的数据加载装置的实施例与上述应用于源存储集群的数据加载方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据加载方法的实施,重复之处不再赘述。
对应上述图2至图8描述的数据加载方法,基于相同的技术构思,本申请实施例还提供了一种数据加载系统,该系统包括:源存储集群和目的存储集群,源存储集群与所述目的存储集群通信连接;
上述源存储集群包括:源管控节点和多个源存储节点,上述目的存储集群包括:目的管控节点和多个目的存储节点;
上述目的存储集群包括如图10所述的装置,上述源存储集群包括如图11所述的装置。
具体的,源存储集群中的源管控节点将多个切片数据块分配给在源存储集群中选取的多个源存储节点,其中,该多个切片数据块可以是对目标云盘的云盘快照进行切片得到的多个快照数据块;
上述源管控节点根据多个切片数据块的分配结果,确定表征多个切片数据块存储位置的分布信息;
上述源管控节点将确定出的分布信息提供给目的存储集群中的目的管控节点,以使目的管控节点基于该分布信息向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
目的存储集群中的目的管控节点获取表征多个切片数据块存储位置的分布信息,其中,该多个切片数据块分别存储于源存储集群中的多个源存储节点中;
上述目的管控节点基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,其中,该点对点加载请求中携带有表征数据块加载任务的指示信息;
目的存储集群中的目的存储节点根据接收到的点对点加载请求,向源存储集群中的至少一个源存储节点发送数据获取请求;
源存储集群中的源存储节点接收目的存储节点发送的数据获取请求,其中,该数据获取请求是目的存储节点基于各自接收到的点对点加载请求发送的;
上述源存储节点响应于接收到的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点,以使目的管控节点基于多个目的存储节点直接从多个源存储节点处点对点加载到的多个切片数据块,得到目标云盘的云盘快照,并在目的存储集群中基于该云盘快照克隆得到目标云盘的克隆云盘,以实现目的存储集群直接从源存储节点处加载云盘快照并秒级可用。
本申请实施例中的数据加载系统,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
需要说明的是,本申请提供的数据加载系统的实施例与本申请提供的数据加载方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述数据加载方法的实施,重复之处不再赘述。
进一步地,对应上述图2至图8所示的方法,基于相同的技术构思,本申请实施例还提供了一种数据加载设备,该设备用于执行上述的数据加载方法,如图12所示。
数据加载设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器1201和存储器1202,存储器1202中可以存储有一个或一个以上存储应用程序或数据。其中,存储器1202可以是短暂存储或持久存储。存储在存储器1202的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据加载设备中的一系列计算机可执行指令。更进一步地,处理器1201可以设置为与存储器1202通信,在数据加载设备上执行存储器1202中的一系列计算机可执行指令。数据加载设备还可以包括一个或一个以上电源1203,一个或一个以上有线或无线网络接口1204,一个或一个以上输入输出接口1205,一个或一个以上键盘1206等。
在一个具体的实施例中,数据加载设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据加载设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
可选地,计算机可执行指令在被执行时,所述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块;
在根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块之后,还包括:
基于加载到的多个所述快照数据块,生成所述目标云盘的克隆云盘。
可选地,计算机可执行指令在被执行时,所述基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,包括:
基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务;
将携带有所述数据加载任务的点对点加载请求分别下发给对应的所述目的存储节点。
可选地,计算机可执行指令在被执行时,所述根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块,包括:
根据接收到的所述点对点加载请求,确定目的存储集群中的目的管控节点分配的数据加载任务;
根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点;
从确定出的所述源存储节点处加载所述切片数据块。
可选地,计算机可执行指令在被执行时,所述基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,包括:
确定所述分布信息中待加载的切片数据块的属性信息;
根据所述切片数据块的所述属性信息,生成用于指示加载符合指定属性信息的切片数据块的数据加载任务,其中,所述数据加载任务的数量等于在目的存储集群中选取的目的存储节点的数量。
可选地,计算机可执行指令在被执行时,所述将携带有所述数据加载任务的点对点加载请求分别下发给对应的所述目的存储节点,包括:
将携带有所述分布信息和所述数据加载任务的点对点加载请求下发给对应的所述目的存储节点。
可选地,计算机可执行指令在被执行时,所述数据加载任务用于指示加载符合指定属性信息的切片数据块;所述方法还包括:
获取目的存储集群中的目的管控节点下发的所述分布信息;
所述根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点,包括:
在获取到的所述分布信息中,查找符合所述指定属性信息的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
可选地,计算机可执行指令在被执行时,所述基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,包括:
将所述分布信息中多条数据记录划分为指定数量的数据记录集合,其中,所述指定数量等于在目的存储集群中选取的目的存储节点的数量;
针对每个所述数据记录集合,生成用于指示加载该数据记录集合中至少一条数据记录对应的切片数据块的数据加载任务。
可选地,计算机可执行指令在被执行时,所述数据加载任务用于指示加载所述分布信息中至少一条数据记录对应的切片数据块;
所述根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点,包括:
确定所述至少一条数据记录所记载的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
可选地,计算机可执行指令在被执行时,所述从确定出的所述源存储节点处加载所述切片数据块,包括:
向确定出的所述源存储节点发送数据获取请求;
接收所述源存储节点响应于所述数据获取请求而提供的切片数据块。
可选地,计算机可执行指令在被执行时,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
所述接收所述源存储节点响应于所述数据获取请求而提供的切片数据块,包括:
接收所述源存储节点响应于所述数据获取请求而提供的符合所述指定属性信息的切片数据块。
可选地,计算机可执行指令在被执行时,在基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求之前,还包括:
确定任务下发决策因素,其中,所述任务下发决策因素包括:目的存储集群中目的存储节点的可用数量、负载状态、处理能力、以及云盘快照的属性信息中至少一种;
根据所述任务下发决策因素,在目的存储集群中选取指定数量的目的存储节点。
可选地,计算机可执行指令在被执行时,所述获取表征多个切片数据块存储位置的分布信息,包括:
从所述源存储集群中的源管控节点处获取表征多个切片数据块存储位置的分布信息;或者,
响应于调度节点发送的数据加载请求,获取表征多个切片数据块存储位置的分布信息。
可选地,计算机可执行指令在被执行时,所述基于加载到的多个所述快照数据块,生成所述目标云盘的克隆云盘,包括:
在所述目的存储集群中,确定用于克隆所述目标云盘的数据存储空间;
将加载到的多个所述快照数据块添加至所述数据存储空间,生成所述目标云盘的克隆云盘。
本申请实施例中的数据加载设备,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
在另一个具体的实施例中,数据加载设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据加载设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
可选地,计算机可执行指令在被执行时,所述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块。
可选地,计算机可执行指令在被执行时,所述将所述分布信息提供给目的存储集群中的目的管控节点,包括:
接收目的存储集群中的目的管控节点发送的分布信息获取请求,将所述分布信息传输至所述目的管控节点;或者,
按照预设触发条件将所述分布信息直接发送给所述目的管控节点;或者,
将所述分布信息上传至调度节点,以使所述调度节点将所述分布信息下发给目的存储集群中的目的管控节点。
可选地,计算机可执行指令在被执行时,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
所述响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点,包括:
判断本地是否存在符合所述指定属性信息的切片数据块;
若存在,则将符合所述指定属性信息的所述切片数据块发送给所述目的存储节点。
可选地,计算机可执行指令在被执行时,在接收所述目的存储节点发送的数据获取请求之前,还包括:
接收源存储集群中的源管控节点分配的至少一个切片数据块。
本申请实施例中的数据加载设备,将多个切片数据块分配给在源存储集群中选取的多个源存储节点;根据多个切片数据块的分配结果,确定表征多个切片数据块存储位置的分布信息;将该分布信息提供给目的存储集群中的目的管控节点;以及响应于接收到的目的存储节点发送的数据获取请求,将该数据获取请求对应的切片数据块发送给目的存储节点。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
进一步地,对应上述图2至图8所示的方法,基于相同的技术构思,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现如上述数据加载方法所述的步骤。
本申请实施例中的存储介质存储的计算机可执行指令在被处理器执行时,获取表征多个切片数据块存储位置的分布信息;基于获取到的分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;以使目的存储节点根据接收到的点对点加载请求,从源存储集群中的至少一个源存储节点处加载相应的切片数据块。通过触发目的存储集群中的存储节点直接从源存储集群中的存储节点处获取切片数据块,实现目的存储集群与源存储集群之间的点对点数据加载,同时目的存储集群中的多个存储节点并发执行切片数据块加载,这样能够缩短由多个切片数据块构成的云盘快照的跨集群加载时间,进而针对两个存储集群之间能够实现云盘快照秒级可用。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (26)
1.一种数据加载方法,包括:
获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
2.根据权利要求1所述的方法,其中,所述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块;
在根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块之后,还包括:
基于加载到的多个所述快照数据块,生成所述目标云盘的克隆云盘。
3.根据权利要求2所述的方法,其中,所述基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求,包括:
基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务;
将携带有所述数据加载任务的点对点加载请求分别下发给对应的所述目的存储节点。
4.根据权利要求2所述的方法,其中,所述根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块,包括:
根据接收到的所述点对点加载请求,确定目的存储集群中的目的管控节点分配的数据加载任务;
根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点;
从确定出的所述源存储节点处加载所述切片数据块。
5.根据权利要求3所述的方法,其中,所述基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,包括:
确定所述分布信息中待加载的切片数据块的属性信息;
根据所述切片数据块的所述属性信息,生成用于指示加载符合指定属性信息的切片数据块的数据加载任务,其中,所述数据加载任务的数量等于在目的存储集群中选取的目的存储节点的数量。
6.根据权利要求5所述的方法,其中,所述将携带有所述数据加载任务的点对点加载请求分别下发给对应的所述目的存储节点,包括:
将携带有所述分布信息和所述数据加载任务的点对点加载请求下发给对应的所述目的存储节点。
7.根据权利要求4所述的方法,其中,所述数据加载任务用于指示加载符合指定属性信息的切片数据块;所述方法还包括:
获取目的存储集群中的目的管控节点下发的所述分布信息;
所述根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点,包括:
在获取到的所述分布信息中,查找符合所述指定属性信息的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
8.根据权利要求3所述的方法,其中,所述基于所述分布信息,确定在目的存储集群中选取的多个目的存储节点分别对应的数据加载任务,包括:
将所述分布信息中多条数据记录划分为指定数量的数据记录集合,其中,所述指定数量等于在目的存储集群中选取的目的存储节点的数量;
针对每个所述数据记录集合,生成用于指示加载该数据记录集合中至少一条数据记录对应的切片数据块的数据加载任务。
9.根据权利要求4所述的方法,其中,所述数据加载任务用于指示加载所述分布信息中至少一条数据记录对应的切片数据块;
所述根据所述数据加载任务,确定存储待加载的切片数据块的源存储节点,包括:
确定所述至少一条数据记录所记载的切片数据块的存储位置信息;
将所述存储位置信息所对应的源存储节点,确定为存储待加载的切片数据块的源存储节点。
10.根据权利要求4所述的方法,其中,所述从确定出的所述源存储节点处加载所述切片数据块,包括:
向确定出的所述源存储节点发送数据获取请求;
接收所述源存储节点响应于所述数据获取请求而提供的切片数据块。
11.根据权利要求10所述的方法,其中,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
所述接收所述源存储节点响应于所述数据获取请求而提供的切片数据块,包括:
接收所述源存储节点响应于所述数据获取请求而提供的符合所述指定属性信息的切片数据块。
12.根据权利要求1所述的方法,其中,在基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求之前,还包括:
确定任务下发决策因素,其中,所述任务下发决策因素包括:目的存储集群中目的存储节点的可用数量、负载状态、处理能力、以及云盘快照的属性信息中至少一种;
根据所述任务下发决策因素,在目的存储集群中选取指定数量的目的存储节点。
13.根据权利要求1所述的方法,其中,所述获取表征多个切片数据块存储位置的分布信息,包括:
从所述源存储集群中的源管控节点处获取表征多个切片数据块存储位置的分布信息;或者,
响应于调度节点发送的数据加载请求,获取表征多个切片数据块存储位置的分布信息。
14.根据权利要求2所述的方法,其中,所述基于加载到的多个所述快照数据块,生成所述目标云盘的克隆云盘,包括:
在所述目的存储集群中,确定用于克隆所述目标云盘的数据存储空间;
将加载到的多个所述快照数据块添加至所述数据存储空间,生成所述目标云盘的克隆云盘。
15.一种数据加载方法,包括:
将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
16.根据权利要求15所述的方法,其中,所述多个切片数据块是对目标云盘的云盘快照进行切片得到的多个快照数据块。
17.根据权利要求15所述的方法,其中,所述将所述分布信息提供给目的存储集群中的目的管控节点,包括:
接收目的存储集群中的目的管控节点发送的分布信息获取请求,将所述分布信息传输至所述目的管控节点;或者,
按照预设触发条件将所述分布信息直接发送给所述目的管控节点;或者,
将所述分布信息上传至调度节点,以使所述调度节点将所述分布信息下发给目的存储集群中的目的管控节点。
18.根据权利要求15所述的方法,其中,所述数据获取请求携带有待加载的切片数据块的指定属性信息;
所述响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点,包括:
判断本地是否存在符合所述指定属性信息的切片数据块;
若存在,则将符合所述指定属性信息的所述切片数据块发送给所述目的存储节点。
19.根据权利要求16所述的方法,其中,在接收所述目的存储节点发送的数据获取请求之前,还包括:
接收源存储集群中的源管控节点分配的至少一个切片数据块。
20.一种数据加载装置,包括:
分布信息获取模块,用于获取表征多个切片数据块存储位置的分布信息,其中,所述多个切片数据块分别存储于源存储集群中的多个源存储节点中;
加载请求发送模块,用于基于所述分布信息,向在目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
数据块加载模块,用于根据接收到的所述点对点加载请求,从所述源存储集群中的至少一个源存储节点处加载所述切片数据块。
21.一种数据加载装置,包括:
数据块分配模块,用于将多个切片数据块分配给在源存储集群中选取的多个源存储节点;
分布信息确定模块,用于根据所述多个切片数据块的分配结果,确定表征所述多个切片数据块存储位置的分布信息;
分布信息发送模块,用于将所述分布信息提供给目的存储集群中的目的管控节点,以使所述目的管控节点基于所述分布信息向在所述目的存储集群中选取的多个目的存储节点分别发送点对点加载请求;
获取请求接收模块,用于接收所述目的存储节点发送的数据获取请求,其中,所述数据获取请求是所述目的存储节点基于各自接收到的所述点对点加载请求发送的;
数据块传输模块,用于响应于所述数据获取请求,将所述数据获取请求对应的切片数据块发送给所述目的存储节点。
22.一种数据加载系统,包括:源存储集群和目的存储集群,所述源存储集群与所述目的存储集群通信连接;
所述源存储集群包括:源管控节点和多个源存储节点,所述目的存储集群包括:目的管控节点和多个目的存储节点;
所述目的存储集群包括如权利要求20所述的装置,所述源存储集群包括如权利要求21所述的装置。
23.一种数据加载设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至14任一项所述的方法。
24.一种数据加载设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求15至19任一项所述的方法。
25.一种存储介质,用于存储计算机可执行指令,其中,所述可执行指令在被执行时实现如权利要求1至14任一项所述的方法。
26.一种存储介质,用于存储计算机可执行指令,其中,所述可执行指令在被执行时实现如权利要求15至19任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811134003.9A CN110955720B (zh) | 2018-09-27 | 2018-09-27 | 一种数据加载方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811134003.9A CN110955720B (zh) | 2018-09-27 | 2018-09-27 | 一种数据加载方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955720A CN110955720A (zh) | 2020-04-03 |
CN110955720B true CN110955720B (zh) | 2023-04-07 |
Family
ID=69975147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811134003.9A Active CN110955720B (zh) | 2018-09-27 | 2018-09-27 | 一种数据加载方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955720B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466003B (zh) * | 2022-03-21 | 2023-12-05 | 北京有竹居网络技术有限公司 | 一种通信方法及其相关设备 |
CN116301593B (zh) * | 2023-02-09 | 2024-02-02 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
CN116055493B (zh) * | 2023-03-31 | 2023-06-23 | 北京比格大数据有限公司 | 一种跨架构的数据获取方法、网关节点及跨架构平台 |
CN116932555B (zh) * | 2023-08-14 | 2024-04-30 | 合芯科技有限公司 | 一种目标对象切片位置确定方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389300B1 (en) * | 2005-05-27 | 2008-06-17 | Symantec Operating Corporation | System and method for multi-staged in-memory checkpoint replication with relaxed consistency |
US8219769B1 (en) * | 2010-05-04 | 2012-07-10 | Symantec Corporation | Discovering cluster resources to efficiently perform cluster backups and restores |
CN104239493A (zh) * | 2014-09-09 | 2014-12-24 | 北京京东尚科信息技术有限公司 | 跨集群数据迁移方法和系统 |
CN104536988A (zh) * | 2014-12-10 | 2015-04-22 | 杭州斯凯网络科技有限公司 | MonetDB分布式计算存储方法 |
CN105518641A (zh) * | 2014-05-05 | 2016-04-20 | 华为技术有限公司 | 点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统 |
CN108268542A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团河北有限公司 | 用于数据库集群数据迁移的方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US9483542B2 (en) * | 2011-09-23 | 2016-11-01 | Hybrid Logic Ltd | System for live-migration and automated recovery of applications in a distributed system |
US9912748B2 (en) * | 2015-01-12 | 2018-03-06 | Strato Scale Ltd. | Synchronization of snapshots in a distributed storage system |
-
2018
- 2018-09-27 CN CN201811134003.9A patent/CN110955720B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389300B1 (en) * | 2005-05-27 | 2008-06-17 | Symantec Operating Corporation | System and method for multi-staged in-memory checkpoint replication with relaxed consistency |
US8219769B1 (en) * | 2010-05-04 | 2012-07-10 | Symantec Corporation | Discovering cluster resources to efficiently perform cluster backups and restores |
CN105518641A (zh) * | 2014-05-05 | 2016-04-20 | 华为技术有限公司 | 点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统 |
CN104239493A (zh) * | 2014-09-09 | 2014-12-24 | 北京京东尚科信息技术有限公司 | 跨集群数据迁移方法和系统 |
CN104536988A (zh) * | 2014-12-10 | 2015-04-22 | 杭州斯凯网络科技有限公司 | MonetDB分布式计算存储方法 |
CN108268542A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团河北有限公司 | 用于数据库集群数据迁移的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110955720A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955720B (zh) | 一种数据加载方法、装置及系统 | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
US10606881B2 (en) | Sharing container images between mulitple hosts through container orchestration | |
CN109344348B (zh) | 一种资源更新方法及装置 | |
TWI694700B (zh) | 資料處理方法和裝置、用戶端 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
CN109002357B (zh) | 资源分配方法、装置及物联网系统 | |
TWI690187B (zh) | 服務更新方法及裝置、系統 | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
CN111552945A (zh) | 一种资源处理方法、装置及设备 | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
US20170371540A1 (en) | Fileset-based data locality enablement in distributed file systems | |
CN113126884B (zh) | 数据迁移方法、装置、电子设备及计算机存储介质 | |
CN110764690B (zh) | 分布式存储系统及其领导节点选举方法和装置 | |
CN117081931B (zh) | 一种异构分布式存储系统在线扩容方法及装置 | |
US10721181B1 (en) | Network locality-based throttling for automated resource migration | |
CN117555697B (zh) | 一种面向分布式训练的缓存加载系统、方法、装置及设备 | |
KR102024846B1 (ko) | 파일 시스템 프로그램 및 이를 이용한 데이터 센터 제어 방법 | |
CN110851416B (zh) | 数据存储性能分析方法和装置、宿主机确定方法和装置 | |
US11121981B1 (en) | Optimistically granting permission to host computing resources | |
Chum et al. | SLA-Aware Adaptive Mapping Scheme in Bigdata Distributed Storage Systems | |
CN117749813A (zh) | 基于云计算技术的数据迁移方法及云管理平台 | |
CN115033447A (zh) | 一种Kubernetes容器水平弹性伸缩能力提升方法和装置 | |
CN116126464A (zh) | 虚拟机管理方法、装置及系统 |
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 | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231208 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |