一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

快照数据的读取方法、装置、系统、设备及存储介质与流程

2022-06-25 12:04:50 来源:中国专利 TAG:


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.图1示出了本技术一实施例所提供的磁盘延迟加载的过程示意图;
27.图2示出了本技术一实施例所提供的云计算的架构示意图;
28.图3示出了本技术一实施例所提供的基于分布式文件系统的日志结构块设备的示意图;
29.图4示出了本技术一实施例所提供的磁盘分段数据的分割示意图;
30.图5示出了本技术一实施例所提供的磁盘分段数据的实现示意图;
31.图6示出了本技术一实施例所提供的一种快照数据的读取方法的流程图;
32.图7示出了本技术一实施例所提供的一种快照数据的读取方法的另一流程示意图;
33.图8示出了本技术一实施例所提供的向磁盘导入数据的示意图;
34.图9示出了本技术一实施例所提供的快照批量克隆中的缓存和多副本管理的示意图;
35.图10示出了本技术一实施例所提供的一种快照数据的读取装置的结构示意图;
36.图11示出了本技术一实施例所提供的一种电子设备的结构示意图;
37.图12示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
38.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
39.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
40.下面结合附图来描述根据本技术实施例提出的一种快照数据的读取方法、装置、系统、设备及存储介质。
41.本技术实施例提供了一种快照数据的读取方法,该方法旨在提高磁盘在延迟加载期间的读性能。图1示出了磁盘延迟加载的过程,如图1所示,镜像中心中存储有磁盘的镜像文件,依据该镜像文件克隆一个磁盘,此时该磁盘中未存储数据,是一个空的磁盘。在生成空的磁盘的同时通过快照服务创建一个本地快照。快照服务从镜像中心下载该镜像文件到本地快照中。当该镜像文件的所有数据均下载完成后,采用硬链接技术将本地快照中的数据导入到空的磁盘中。从创建出空的磁盘,到将本地快照中的数据导入到空的磁盘,这一期间称为数据延迟加载期间。
42.在数据延迟加载期间内计算节点可能会请求读取该磁盘的数据,计算节点可以包括容器、该磁盘对应的已经完成启动的虚拟机或其他设备等。本技术实施例以虚拟机为例进行说明,实际应用中在数据延迟加载期间请求读取磁盘数据的设备也可以为其他设备。
43.虚拟机在数据延迟加载期间请求读取磁盘数据,此时块服务接收到虚拟机读取磁盘数据的请求,在相关技术中对于数据延迟加载期间读取磁盘数据的请求,块服务会向快照服务请求磁盘数据,快照服务从镜像中心获取对应的磁盘数据并返回给块服务,块服务再将该磁盘数据发送给虚拟机。
44.由于相关技术是从镜像中心获取磁盘数据,因此在批量克隆磁盘的应用场景中,可能存在大量虚拟机在数据延迟加载期间请求读取同一数据。尤其对于云游戏这类数据量很大的用户数据盘,其容量远远大于系统盘,且在云盘克隆完成以后的数据延迟加载期间就会出现大流量的读取数据的需求。在这些情况下,从镜像中心获取数据,导致镜像中心的并发处理压力很大,使得读盘请求无法被及时响应,因此相关技术中数据延迟加载期间的磁盘读性能不佳。
45.基于此,本技术实施例提供的快照数据的读取方法,在延迟加载期间,通过快照服务在块设备存储集群中分布式缓存磁盘快照的所有磁盘分段数据。分布式缓存利用快照服务所在存储节点的内存来缓存磁盘分段数据。对于数据延迟加载期间的读盘请求可以优先
从分布式缓存中获取数据进行响应,分布式缓存可以使用块设备存储集群中所有存储节点的网络流量,使得数据延迟加载期间的读盘请求能够及时获得响应,实现了磁盘克隆之后即可立即提供正常的读盘性能。
46.图2示出了本技术实施例提供的方法所基于的云计算架构,在该云计算架构中存储与计算分离,计算集群中提供计算资源,图2中示意性地画出了两个计算节点,每个计算节点中包括vm1至vm n共n个虚拟机。块设备存储集群(ebs,elastic block sevice)负责提供磁盘的存储资源。图2中示意性地画出了两个存储节点,每个存储节点中包括disk1至disk n共n个磁盘。镜像中心也包括多个存储节点,用于存储磁盘的镜像文件,图2中示意性地画出了两个存储节点,每个存储节点中包括disk1至disk m共m个磁盘的镜像文件。上述计算集群、块设备存储集群及镜像中心之间通过交换机通信连接。
47.计算集群主要负责提供计算资源,虚拟机可运行在计算集群中的计算节点上。计算节点是具有一定计算能力的设备,可以包括处理器、内存和以太网控制器等组件。计算节点可以包括个人计算机、台式计算机、服务器等。计算集群中的计算节点可以由同类型设备实现,也可以由不同类型设备实现。
48.块设备存储集群包括多个存储节点。存储节点是具有一定存储能力的设备,可以包括处理器、系统总线以及硬盘、内存等至少一块物理存储介质。存储节点可以包括服务器、台式计算机、个人计算机、手机、平板电脑、数据库等。服务器可以是常规服务器、云服务器、云主机、虚拟中心等。存储集群中的存储节点可以是相同类型的设备,也可以是不同类型的设备。
49.块设备存储集群中的每个存储节点中都可以部署有块服务(block server)和快照服务(snapshot server),块服务用于处理磁盘分段数据,快照服务用于处理磁盘分段数据。块设备存储集群中还可以部署块管理服务(blockmaster),块管理服务用于管理lsbd(log structured block device,日志结构块设备)metadata(元数据),即对块设备存储集群中所有块服务的运行逻辑进行管理。该块管理服务可以部署在独立于各存储节点之外的存储管理设备上,也可以部署在某个或某些存储节点上。
50.块设备存储集群主要负责向计算集群中的计算节点提供存储资源,如为各虚拟机提供磁盘。即运行于计算集群中的虚拟机所需的磁盘位于块设备存储集群中,从而实现存储与计算分离的云计算架构。
51.镜像中心主要负责存储磁盘对应的镜像文件,该镜像文件即为磁盘对应的磁盘快照。镜像中心可以部署存储代价较低的对象存储服务(oss,object storage service),采用对象存储服务来存储磁盘快照。
52.在本技术实施例中,图2只作为一种示例,实际应用中计算集群、块设备存储集群和镜像中心均可以为一个或多个,且计算集群中的计算节点的数目、块设备存储集群中的存储节点的数目以及镜像中心中的存储节点的数目可以根据实际需求进行部署。
53.上述块设备存储集群中的磁盘是lsbd(log structured block device,日志结构块设备)采用log file(日志文件)来构建的。log file是只能追加写,不能覆盖写的一种的分布式系统文件。磁盘都是基于log file构造的。
54.图3示出了基于分布式文件系统的日志结构块设备,磁盘是基于分布式文件系统的log file实现的。分布式文件系统通过多个数据副本的方式来保证数据的安全性和可用
性。在本技术实施例中,一个或多个磁盘可以和磁盘快照通过硬链接(hardlink)技术共享同一个log file。
55.在本技术实施例中磁盘快照在云计算系统中是以磁盘分段数据为单位进行存储、传输和处理的。图4示出了磁盘分段数据的分割示意图,如图4所示,云盘地址空间被切分成多个分段组,如分段组0、分段组1、分段组2,
……
。每个分段组被划分为多个条带,每个条带的大小相同,条带的大小的取值区间可以为64kb-2m。如图4中分段组0被划分为编号依次为0、1、2、3
……
的多个条带。从第一个条带开始遍历分段组包括的所有条带,选取出依次间隔预设数目个条带的多个条带,将选取出的多个条带组成一个磁盘分段数据。如图4中选取依次间隔3个条带的多个条带来组成磁盘分段数据,即选取出编号为0、4、8、
……
的条带组成磁盘分段数据0,选取出编号为1、5、9、
……
的条带组成磁盘分段数据1,选取出编号为2、6、10、
……
的条带组成磁盘分段数据2,选取出编号为3、7、11、
……
的条带组成磁盘分段数据3,等等。图4中分割出的每个磁盘分段数据的大小均为32gb,实际应用中磁盘分段数据的大小也可以为其他大小。
56.在本技术实施例中,每个磁盘分段数据分别由一个块服务负责处理,块管理服务负责分配每个块服务分别负责处理哪个磁盘分段数据,若某个块服务出现故障,则由块管理服务重新分配一个块服务来处理该磁盘分段数据,如此可以使得对磁盘分段数据的处理更加条理有序,使lsbd系统容易达到负载均衡。
57.图5示出了磁盘分段数据的实现示意图,如图5所示,磁盘分段数据由index file(索引文件)、data file(数据文件)和txn file(日志文件)组成。这些文件都是分布式文件系统中的log file,只能追加写,不能覆盖写。其中,index file负责记录磁盘逻辑地址区间和data file的物理地址区间的对应关系。data file负责存储磁盘分段数据,txn file用于记录修改磁盘分段数据的处理日志(transaction log)。在接收到对磁盘分段数据的写请求时,在data file中写入数据,在txn file中写入处理日志,以及更新index map中的地址对应关系。
58.上文介绍云计算架构、分布式文件系统的日志结构块设备、磁盘分段数据的分割及实现之后,更有助于理解本技术实施例提供的快照数据的读取方法。参见图6,该方法具体包括以下步骤:
59.步骤101:接收在目标磁盘的延迟加载期间发起的读盘请求,该读盘请求用于读取目标磁盘对应的磁盘快照中的磁盘分段数据。
60.在基于镜像中心中的磁盘快照克隆磁盘的过程中,首先克隆出一个空的磁盘,此时尚未将磁盘快照导入该空的磁盘。本技术实施例将创建出空的磁盘到将磁盘快照导入该空的磁盘这一期间称为数据延迟加载期间。
61.在数据延迟加载期间,若计算节点需要读取磁盘中的数据,则发起读盘请求,该读盘请求用于读取目标磁盘对应的磁盘快照中的磁盘分段数据。该目标磁盘即为计算节点(如虚拟机)对应的磁盘。
62.计算节点发起该读盘请求后,块设备存储集群中的块管理服务接收该读盘请求,块管理服务确定该读盘请求需要读取的磁盘分段数据,进而确定负责处理该磁盘分段数据的块服务,然后将该读盘请求转发给负责处理该磁盘分段数据的块服务。该块服务接收该读盘请求。
63.在批量克隆磁盘的应用场景中,短时间内可能会基于同一份磁盘快照克隆出多个磁盘。在这种情况下,可能会出现多个计算节点在数据延迟加载期间发起针对同一磁盘的读盘请求。同样地,块设备存储集群中的块管理服务接收到每个计算节点发起的读盘请求,根据每个读盘请求需要读取的磁盘分段数据,将这多个读盘请求分别发送给对应的块服务。
64.步骤102:从块设备存储集群中选择快照缓存节点。
65.对于数据延迟加载期间有读盘请求的磁盘快照,本技术实施例在处理这些读盘请求的过程中,在块设备存储集群中为磁盘快照构建分布式缓存,利用块设备存储集群中存储节点的内存来缓存磁盘快照。并通过块管理服务记录磁盘快照对应的分布式缓存节点集合,该分布式缓存节点集合用于记录存储有该磁盘快照的每个快照缓存节点的设备标识,该设备标识可以为快照缓存节点的ip地址、mac地址、设备序列号等。快照缓存节点即为块设备存储集群中缓存有该磁盘快照的存储节点。
66.本技术实施例只缓存数据延迟加载期间有读盘请求的磁盘快照,对于数据延迟加载期间没有读盘请求的磁盘快照不进行缓存,从而节省缓存空间。缓存有读盘请求的磁盘快照之后,若再次接收到该磁盘快照的读盘请求,则可以直接从缓存中获取磁盘快照进行响应,提高响应速度。
67.步骤101中块管理服务在数据延迟加载期间接收到对目标磁盘的读盘请求后,从块设备存储集群中选择快照缓存节点。
68.首先块管理服务判断是否记录有需要读取的磁盘快照对应的分布式缓存节点集合。如果是,则表明在当前的读盘请求之前已经处理过针对该磁盘快照的读盘请求,并且已经在块设备服务集群中为该磁盘快照建立了分布式缓存。因此直接从该分布式缓存节点集合中选择快照缓存节点。
69.在一种实现方式中,块管理服务可以从该分布式缓存节点集合中随机选择一个设备标识,将选择的设备标识作为选择的快照缓存节点的设备标识。
70.在另一种实现方式中,块管理服务也可以按照轮询的方式从该分布式缓存节点集合中选择快照缓存节点的设备标识。
71.若块管理服务判断出当前尚未记录该读盘请求需要读取的磁盘快照对应的分布式缓存节点集合,则表明在当前的读盘请求之前未处理过针对该磁盘快照的读盘请求,因此块设备服务集群中尚未缓存该磁盘快照。在此情况下,块管理服务从块设备存储集群中选择快照缓存节点。
72.在一些实施例中,块管理服务可以从块设备存储集群包括的所有存储节点中随机选取一个存储节点作为所选的快照缓存节点。
73.在另一些实施例中,块管理服务也可以从块设备存储集群包括的所有存储节点中选取剩余内存空间最大的存储节点作为所选的快照缓存节点。或者,在一些实现方式中块管理服务还可以先从块设备存储集群包括的所有存储节点中筛选出剩余内存空间大于设定阈值的存储节点,然后从筛选出的多个存储节点中随机选择一个存储节点作为所选的快照缓存节点。
74.在批量克隆磁盘的应用场景中,可能会出现多个计算节点在数据延迟加载期间发起针对同一目标磁盘的读盘请求。因此步骤101中可能接收到多个读盘请求。此时若块管理
服务判断出未记录有磁盘快照对应的分布式缓存节点集合,则从块设备存储集群中分别为每个读盘请求选择快照缓存节点。若块管理服务判断出记录有磁盘快照对应的分布式缓存节点集合,则可以从该分布式缓存节点集合中为每个读盘请求选择快照缓存节点。
75.在另一些实施例中,考虑到批量克隆磁盘的场景下,短时间内请求读取目标磁盘的请求流量可能会很大,分布式缓存节点集合中每个快照缓存节点都存在一定的负荷上限,当分布式节点集合中的所有快照缓存节点均达到负荷上限之后,更多的读盘请求将无法得到及时响应。基于此,本技术实施例可以根据读盘请求的数目自动扩充分布式缓存节点集合包括的快照缓存节点的数目,使得分布式缓存节点集合能够适应更大流量的读盘请求。
76.具体地,在数据延迟加载期间接收到多个读盘请求,且已记录需要读取的磁盘快照对应的分布式缓存节点集合,此时先确定这多个读盘请求的数目是否小于或等于分布式缓存节点集合对应的负载上限值,该负载上限值可以为分布式缓存节点集合中每个快照缓存节点的负荷上限之和。快照缓存节点的负荷上限可以是依据快照缓存节点的网络流量确定的。
77.若读盘请求的数目小于或等于分布式缓存节点集合对应的负载上限值,则从分布式缓存节点集合中分别为每个读盘请求选择快照缓存节点。可以每个读盘请求均分配不同的快照缓存节点,也可以少数几个读盘请求分配相同的快照缓存节点,快照缓存节点对应的读盘请求数目小于或等于该快照缓存节点的负荷上限。
78.若读盘请求的数目大于分布式缓存节点集合对应的负载上限值,则将这多个读盘请求划分为两部分,一部分为分布式缓存节点集合对应的负载上限值个读盘请求,另一部分为这多个读盘请求的数目与该负载上限值的差数个读盘请求。具体每个读盘请求划分到哪一部分可以随机确定。从分布式缓存节点集合中分别为该负载上限值个读盘请求选择快照缓存节点,为这些读盘请求选择的快照缓存节点中存储有磁盘快照的磁盘分段数据。从块设备存储集群中除分布式缓存节点集合包括的节点外的其他存储节点中,为剩余的读盘请求选择快照缓存节点,为这些读盘请求选择的快照缓存节点中没有存储该磁盘快照的磁盘分段数据,后续依据这些读盘请求对应的快照缓存节点处理这些读盘请求后将对应的磁盘分段数据存储在这些快照缓存节点中,从而实现对该磁盘快照对应的分布式缓存节点集合的自动扩充。
79.在本技术的另一些实施例中,考虑到快照缓存节点的数目与读盘请求的数目成正比,读盘请求的数目越多则需要越多的快照缓存节点。因此可以预先配置一个快照缓存节点与读盘请求之间的预设数目比值,若当前快照缓存节点的数目与读盘请求的数目之间的比值大于或等于该预设数目比值,则直接从分布式缓存节点集合中为每个读盘请求选择快照缓存节点。若当前快照缓存节点的数目与读盘请求的数目之间的比值小于该预设数目比值,则根据当前快照缓存节点的数目和该预设数目比值,计算当前分布式缓存节点集合能够承受的读盘请求的数目,从该分布式缓存节点集合中为该数目的读盘请求选择快照缓存节点。从块设备存储集群中除分布式缓存节点集合包括的节点外的其他存储节点中,为剩余的读盘请求选择快照缓存节点。
80.其中,在为剩余的读盘请求选择快照缓存节点时,可以每个剩余的读盘请求分别选择一个不同的快照缓存节点。也可以为剩余的多个读盘请求选择相同的快照缓存节点。
选择出的快照缓存节点对应的读盘请求的数目小于或等于该快照缓存节点的负荷上限。且为剩余的读盘请求选择的快照缓存节点的数目与当前分布式缓存节点集合中的快照缓存节点的数目之和,该和值与当前的读盘请求的数目之间的比值需大于或等于预设数目比值。
81.例如,假设预先配置的快照缓存节点与读盘请求之间的预设数目比值为1/1000,磁盘快照对应的当前分布式缓存节点集合中包括的快照缓存节点的数目为100,当前接收到100500个读盘请求对该磁盘快照的读盘请求。则当前快照缓存节点的数目与读盘请求的数目之间的比值为1/1005,小于预设数目比值为1/1000。根据当前快照缓存节点的数目100与预设数目比值为1/1000计算出当前分布式缓存节点集合能够承受的读盘请求的数目为100000,因此从当前分布式缓存节点集合中为100000个读盘请求选择快照缓存节点。对于剩余的500个读盘请求,则从块设备存储集群中除100个当前快照缓存节点外的其他存储节点中为这500个读盘请求选择快照缓存节点。如为剩余的500个读盘请求共选择了50个快照缓存节点,则后续该磁盘快照的分布式缓存节点集合包括的快照缓存节点的数目将被扩充至150,扩充之后快照缓存节点的数目与读盘请求的数目之间的比值为1/670。
82.依据读盘请求的数目对分布式缓存节点集合中包括的快照缓存节点的数目进行扩充,最多可以将集合中包括的快照缓存节点的数目扩充至与块设备存储集群中的存储节点的数目相等。即最多可以将块设备存储集群中的所有存储节点均作为快照缓存节点,同一个磁盘分段数据可以在所有的存储节点中均进行缓存,如此可以利用整个块设备存储集群的所有存储节点来支撑数据延迟加载期间的读盘需求,因此磁盘克隆以后就可以立即提供正常的读性能。
83.通过上述任一实施方式为读盘请求选择快照缓存节点之后,块管理服务将该读盘请求的读盘请求以及选择的快照缓存节点的设备标识发送给负责处理该读盘请求对应的磁盘分段数据的块服务。
84.块服务接收到该读盘请求以及快照缓存节点的设备标识之后,向该设备标识对应的快照缓存节点发送获取该读盘请求对应的磁盘分段数据的获取请求。该快照缓存节点接收到该获取请求后查询自身是否缓存有该磁盘分段数据,若缓存有该磁盘分段数据,则按照步骤103的操作继续执行。若该快照缓存节点未缓存该磁盘分段数据,则按照步骤104的操作继续执行。
85.步骤103:若所选的快照缓存节点中存储有该磁盘分段数据,则从该快照缓存节点中获取该磁盘分段数据。
86.若所选的快照缓存节点存储有该磁盘分段数据,则该快照缓存节点将该磁盘分段数据传输给块服务,块服务再将该磁盘分段数据返回给发起该读盘请求的计算节点。
87.需要说明的是,块服务所在的存储节点与所选的快照缓存节点可以是相同的物理节点,也可以是不同的物理节点。
88.本技术实施例在块设备存储集群中为磁盘快照构建分布式缓存,后续再接收到该磁盘快照对应的读盘请求时,可以直接从分布式缓存中获取磁盘分段数据进行响应,提高了响应速度。使后续基于相同的磁盘快照克隆的磁盘克隆完成后即可实现正常的读盘功能。
89.步骤104:若所选的快照缓存节点中未存储该磁盘分段数据,则从镜像中心获取该
磁盘分段数据;以及,将该磁盘分段数据存储在所选的快照缓存节点中。
90.若所选的快照缓存节点确定自身未存储该磁盘分段数据,则该快照缓存节点向负责处理该磁盘分段数据的快照服务发送获取该磁盘分段数据的获取请求。该快照服务接收到该获取请求后,从镜像中心下载该磁盘分段数据,将该磁盘分段数据传输给该快照缓存节点,该快照缓存节点将该磁盘分段数据返回给块服务,块服务再将该磁盘分段数据返回给发起该读盘请求的计算节点。快照缓存节点从快照服务获取到该磁盘分段数据之后,还将该磁盘分段数据缓存在本地缓存中。
91.快照缓存节点在缓存该磁盘分段数据的过程中,首先确定该快照缓存节点中的剩余缓存空间是否大于或等于该磁盘分段数据的数据量,如果是,则直接将该磁盘分段数据存储在该快照缓存节点的剩余缓存空间中。如果否,则利用lru(least recently used,最近最少使用)算法来淘汰部分已缓存的磁盘分段数据。具体地,快照缓存节点可以删除已缓存的数据中最长时间未被读取的数据,使得删除操作后剩余缓存空间大于或等于当前该磁盘分段数据的数据量。然后将该磁盘分段数据存储在删除操作后该快照缓存节点的剩余缓存空间中。
92.通过上述方式将长时间未被读取的数据淘汰掉,节省出更多的缓存空间用于存储读取量更大的磁盘快照。实现依据计算节点读取磁盘快照的实际情况,动态调整块设备存储集群中缓存的磁盘快照,确保能够缓存具有高流量读取需求的磁盘快照,使得基于该磁盘快照批量克隆的磁盘克隆完成后能够立即提供正常的读性能。
93.需要说明的是,在本步骤中块服务所在的存储节点与所选的快照缓存节点可以是相同的物理节点,也可以是不同的物理节点。所选的快照缓存节点与上述快照服务所在的存储节点可以是相同的物理节点,也可以是不同的物理节点。
94.上述快照缓存节点从快照服务处获得磁盘分段数据,并存储在本地缓存之后,块管理服务还将该快照缓存节点的设备标识添加到该磁盘快照对应的分布式缓存节点集合中,以便后续再次接收到该磁盘快照的读盘请求时,可以直接从该快照缓存节点中获取磁盘分段数据来响应读盘请求。
95.在另一些实施例中,目标磁盘可能是加密磁盘,因此在步骤103和104中获取到该读盘请求对应的磁盘分段数据,将该磁盘分段数据返回给虚拟机之前还需要对该磁盘分段数据进行加密。具体地,获取到该磁盘分段数据之后,获取该目标磁盘对应的密钥,采用该密钥对该磁盘分段数据加密,得到磁盘分段密文,将该磁盘分段密文返回给发起读盘请求的计算节点。
96.为了便于理解上述步骤101-104的读取过程,下面结合附图进行说明。如图7所示,计算集群a中包括计算节点1和2,计算节点1中包括虚拟机vm1和vm2,计算节点2中包括虚拟机vm3和vm4。镜像中心b中包括磁盘快照1和2,磁盘快照1中包括磁盘分段数据segment1和2,磁盘快照2中包括磁盘分段数据segment3和4。块设备存储集群c中包括多个存储节点,图7中未画出存储节点,而是示出了块服务1、2、3和4,快照服务1和2,以及快照缓存1和2。其中,块服务和快照服务均是部署在存储节点上的,一个存储节点上可以有至少一个块服务和至少一个快照服务。快照缓存也是部署在存储节点上的,利用存储节点的内存来缓存磁盘快照的数据。
97.如图7所示,虚拟机vm1发起了针对磁盘分段数据1的读取请求,块服务1接收vm1的
读取请求,向快照缓存1发起延迟加载读请求(lazy load read),快照缓存1中若缓存有磁盘分段数据1,则直接通过块服务1将磁盘分段数据1返回给虚拟机vm1。若快照缓存1中没有缓存磁盘分段数据1,则快照缓存1向快照服务1发送获取请求,快照服务1从镜像中心b中获取磁盘分段数据1并返回给快照缓存1。快照缓存1通过块服务1将磁盘分段数据1返回给虚拟机vm1,同时快照缓存1还存储该磁盘分段数据1。图7中对于虚拟机vm2、vm3和vm4发起的读盘请求的处理过程与虚拟机vm1的读盘请求的处理过程相似,在此不再一一详述。
98.在基于镜像中心的磁盘快照克隆磁盘时,创建一个空的磁盘,同时快照服务还创建一个本地快照,快照服务从镜像中心下载该磁盘快照的数据并存储在该本地快照中。当快照服务将磁盘快照的所有磁盘分段数据全部下载至本地快照之后,采用硬链接技术将磁盘快照的所有磁盘分段数据导入到该空的磁盘中。至此数据延迟加载期间结束。
99.其中,快照服务从镜像中心下载磁盘快照时,是以快照分段数据为单位进行下载的,快照分段数据的大小小于磁盘的条带格式中磁盘分段数据的大小。每个快照服务分别负责下载不同的快照分段数据,通过多个快照服务并行下载数据量更小的快照分段数据,下载完成后再导入到磁盘中,能够加快磁盘快照的并行下载速度,缩短下载时长,从而有助于更快地结束磁盘的数据延迟加载期间。
100.如图8所示,快照服务从镜像中心下载磁盘快照,该磁盘快照划分为快照分段0、1、2和3共4个快照分段数据。将这4个快照分段数据并行下载下来,并存储在本地快照。从图8中可以看出磁盘1和2中仅划分了磁盘分段0和1两个分段,而快照服务是以4个更小的分段进行下载的,下载速度很快。采用硬链接技术将本地快照中的快照分段数据导入磁盘中,多个快照分段数据导入到一个磁盘分段中。图8中是将快照分段数据0和1导入到磁盘1和2的磁盘分段0中,将快照分段数据2和3导入到磁盘1和2的磁盘分段1中。
101.采用硬链接技术将本地快照中的数据导入磁盘时,是使磁盘通过硬链接与本地快照共享快照分段数据中的data file,没有数据拷贝过程,只需修改磁盘中磁盘分段数据的index file中逻辑地址与快照分段数据中的data file的物理地址的对应关系,以及在txn file中记录处理日志。
102.通过硬链接技术进行数据共享,实现了仅需从镜像中心下载一份磁盘快照即可,依据该磁盘快照克隆的所有磁盘,都可以通过硬链接共享一份数据,大大节省了块设备存储集群的存储资源,避免了很多数据拷贝的处理过程,加快了批量克隆磁盘的效率。
103.将本地快照中的数据导入到目标磁盘中之后,数据延迟加载期间结束,之后计算节点可以直接从该目标磁盘中读取磁盘分段数据,无需再通过步骤101-104的操作来获取磁盘分段数据。
104.在本技术的一些实施例中,考虑到批量克隆磁盘的应用场景中,需要克隆的磁盘的条带格式可能有很多种,且与镜像中心中存储的磁盘快照的条带格式不同。例如,镜像中心中存储的磁盘快照的条带格式为2mb
×
4,而基于该磁盘快照克隆的磁盘的条带格式可能为1mb
×
4、64kb
×
4等。为了加快不同条带格式的磁盘的批量克隆效率,本技术实施例还基于块设备存储集群中缓存的磁盘快照创建不同条带格式的快照副本,以便于基于这些快照副本来快速地批量克隆不同条带格式的磁盘。
105.若块管理服务记录了磁盘快照对应的分布式缓存节点集合,则表明块设备存储集群中已缓存了该磁盘快照,则根据该分布式缓存节点集合中缓存的磁盘快照,创建该磁盘
快照对应的不同条带格式的快照副本。具体地,从分布式缓存节点集合中复制缓存的磁盘快照的每个磁盘分段数据,按照第一条带格式对复制的每个磁盘分段数据重新划分快照分段,得到该磁盘快照对应的第一条带格式的快照副本。其中,第一条带格式为与缓存的磁盘快照的条带格式不同的任意条带格式。
106.对于其他任意条带格式,都可以按照上述方式分别创建其他条带格式的快照副本。
107.创建出不同条带格式的快照副本之后,即可基于不同条带格式的快照副本,批量克隆不同条带格式的磁盘。首先创建至少一个第二条带格式的空的磁盘,第二条带格式为已创建的多个快照副本对应的不同条带格式中的任一条带格式。采用硬链接技术将第二条带格式的快照副本中的所有磁盘分段数据导入第二条带格式的磁盘中。
108.通过上述创建不同条带格式的快照副本的方式,提高了不同条带格式的磁盘的克隆速度。实现镜像中心中仅存储一份固定条带格式的磁盘快照,快照服务下载一份该固定格式的磁盘快照,基于下载的这份磁盘快照创建不同条带格式的快照副本,即可批量克隆不同条带格式的磁盘,大大提高了磁盘克隆的效率及灵活性。
109.在本技术的另一些实施例中,考虑到实际应用场景中存在克隆加密磁盘的需求,不同的加密磁盘的密钥不同,为了提高批量克隆加密磁盘的效率。本技术实施例还可以基于块设备存储集群中缓存的磁盘快照,生成不同密钥对应的加密快照副本,以便于基于这些加密快照副本来快速地批量克隆不同密钥对应的加密磁盘。
110.若块管理服务记录了该磁盘快照对应的分布式缓存节点集合,则表明块设备存储集群中已缓存了该磁盘快照,根据分布式缓存节点集合中缓存的该磁盘快照,创建该磁盘快照对应的多个加密快照副本,该多个加密快照副本是采用不同密钥加密得到的。具体地,从该分布式缓存节点集合中复制缓存的磁盘快照的每个磁盘分段数据。采用第一密钥对复制的每个磁盘分段数据进行加密,得到第一密钥对应的加密快照副本。
111.对于其他任意密钥,都可以按照上述方式分别创建其他密钥对应的加密快照副本。
112.创建出不同密钥对应的加密快照副本之后,即可基于创建的多个加密快照副本,批量克隆加密磁盘。以第一密钥对应的加密快照副本为例进行说明,首先创建至少一个空的磁盘,然后采用硬链接技术将第一密钥对应的加密快照副本中的所有数据导入到创建的空的磁盘中,得到至少一个第一密钥对应的加密磁盘。
113.通过上述创建不同密钥对应的加密快照副本的方式,提高了不同密钥的加密磁盘的克隆速度。实现镜像中心中仅存储一份非加密的磁盘快照,快照服务下载一份该非加密的磁盘快照,基于下载的这份磁盘快照创建不同密钥对应的加密快照副本,即可批量克隆不同密钥对应的加密磁盘,大大提高了加密磁盘克隆的效率及灵活性。
114.为了便于理解步骤101-104的读取过程、上述创建不同条带格式的快照副本以及创建不同密钥对应的加密快照副本,下面结合附图进行说明。如图9所示,镜像中心中存储有磁盘快照1。快照服务ss5从镜像中心中下载磁盘快照1的磁盘分段seg1,快照服务ss6下载磁盘分段seg2。将磁盘分段seg1和seg2存储在缓存中。基于磁盘快照1克隆了非加密磁盘和加密磁盘,虚拟机读取非加密磁盘中的磁盘分段seg1和seg2时,块服务bs1从缓存中获取seg1,块服务bs2从缓存中获取seg2。虚拟机读取加密磁盘中的磁盘分段seg1和2时,块服务
bs3将加密磁盘的密钥给磁盘分段seg1的缓存,缓存利用该密钥对磁盘分段seg1加密得到密文1,将该密文1返回给块服务bs3。同样地,块服务bs4将加密磁盘的密钥给磁盘分段seg2的缓存,缓存利用该密钥对磁盘分段seg2加密得到密文2,将该密文2返回给块服务bs4。
115.如图9所示,将磁盘分段数据1和2划分为更小条带格式的快照副本。以及利用密钥对磁盘分段数据1和2加密,得到密钥对应的加密快照副本。基于更小条带格式的快照副本克隆了更小条带格式的磁盘1和2。以及根据加密快照副本克隆了该密钥对应的加密磁盘1。
116.上述不同条带格式的快照副本以及加密快照副本的创建,以及基于这些副本克隆磁盘的工作均在后台完成,不会影响数据延迟加载期间的读盘处理。在将快照副本的数据导入到克隆的磁盘之前,由分布式缓存节点集合中缓存的磁盘快照来支撑所有克隆磁盘的读盘请求。
117.在本技术实施例中,对于数据延迟加载期间出现读取需求的磁盘快照,在块设备存储集群中建立了该磁盘快照对应的分布式缓存,每个磁盘分段数据可以缓存在多个存储节点上,充分利用块设备存储集群中存储节点的内存和网络流量,利用块设备存储集群中的存储节点来支持数据延迟加载期间的读盘请求,使得磁盘克隆后就能立即提供正常的读性能。还基于缓存的磁盘快照创建了不同条带格式的快照副本以及不同密钥对应的加密快照副本,副本创建完成后可以直接通过副本批量克隆不同条带格式的磁盘或不同密钥的加密磁盘,提高批量克隆磁盘的效率和灵活性。
118.本技术实施例还提供一种快照数据的读取装置,该装置用于执行上述任一实施例提供的快照数据的读取方法。如图10所示,该装置包括:
119.接收模块201,用于接收在目标磁盘的延迟加载期间发起的读盘请求,读盘请求用于读取目标磁盘对应的磁盘快照中的磁盘分段数据;
120.选择模块202,用于从块设备存储集群中选择快照缓存节点;
121.获取模块203,用于若所选的快照缓存节点中存储有磁盘分段数据,则从快照缓存节点中获取磁盘分段数据;若所选的快照缓存节点中未存储磁盘分段数据,则从镜像中心获取磁盘分段数据;以及,将磁盘分段数据存储在所选的快照缓存节点中。
122.选择模块202,具体用于若块管理服务记录有磁盘快照对应的分布式缓存节点集合,则从分布式缓存节点集合中选择快照缓存节点;若块管理服务未记录磁盘快照对应的分布式缓存节点集合,则从块设备存储集群中选择快照缓存节点。
123.接收模块201,用于接收到多个读盘请求;相应地,选择模块202,还用于若块管理服务记录有磁盘快照对应的分布式缓存节点集合,则确定多个读盘请求的数目是否小于或等于分布式缓存节点集合对应的负载上限值;若读盘请求的数目小于或等于负载上限值,则执行从分布式缓存节点集合中为读盘请求选择快照缓存节点的操作;若读盘请求的数目大于负载上限值,则从分布式缓存节点集合中分别为负载上限值的读盘请求选择快照缓存节点;从块设备存储集群中除分布式缓存节点集合包括的节点外的其他存储节点中,为剩余的读盘请求选择快照缓存节点。
124.上述获取模块203还包括存储单元,用于将磁盘分段数据存储在所选的快照缓存节点中。
125.该存储单元,具体用于若确定快照缓存节点中的剩余缓存空间大于或等于磁盘分段数据的数据量,则将磁盘分段数据存储在快照缓存节点中;若确定快照缓存节点中的剩
余缓存空间小于磁盘分段数据的数据量,则删除快照缓存节点中最长时间未被读取的数据;将磁盘分段数据存储在快照缓存节点中。
126.该装置还包括:添加模块,用于将快照缓存节点的设备标识添加到磁盘快照对应的分布式缓存节点集合中;其中,分布式缓存节点集合用于记录存储有磁盘快照的所有快照缓存节点的设备标识。
127.该装置还包括:副本创建模块,用于若块管理服务记录有磁盘快照对应的分布式缓存节点集合,根据分布式缓存节点集合中缓存的磁盘快照,创建磁盘快照对应的不同条带格式的快照副本;基于不同条带格式的快照副本,批量克隆不同条带格式的磁盘。
128.副本创建模块,用于从分布式缓存节点集合中复制缓存的磁盘快照的每个磁盘分段数据;按照第一条带格式对复制的每个磁盘分段数据重新划分快照分段,得到磁盘快照对应的第一条带格式的快照副本;第一条带格式为与缓存的磁盘快照的条带格式不同的任意条带格式。
129.副本创建模块,用于创建至少一个第二条带格式的空的磁盘,第二条带格式为不同条带格式中的任一条带格式;采用硬链接技术将第二条带格式的快照副本中的所有磁盘分段数据导入第二条带格式的磁盘中。
130.副本创建模块,还用于若块管理服务记录有磁盘快照对应的分布式缓存节点集合,根据分布式缓存节点集合中缓存的磁盘快照,创建磁盘快照对应的多个加密快照副本,多个加密快照副本是采用不同密钥加密得到的;基于多个加密快照副本,批量克隆加密磁盘。
131.副本创建模块,用于从分布式缓存节点集合中复制缓存的磁盘快照的每个磁盘分段数据;采用第一密钥对复制的每个磁盘分段数据进行加密,得到第一密钥对应的加密快照副本;创建至少一个空的磁盘;采用硬链接技术将第一密钥对应的加密快照副本中的所有数据导入到创建的磁盘中,得到至少一个第一密钥对应的加密磁盘。
132.本技术的上述实施例提供的快照数据的读取装置与本技术实施例提供的快照数据的读取方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
133.本技术实施方式还提供一种快照数据的读取系统,如图2或7所示,该系统包括块设备存储集群、计算集群及镜像中心;
134.镜像中心,用于存储磁盘的镜像文件;
135.计算集群,用于在目标磁盘的延迟加载期间发起读盘请求,该读盘请求用于读取目标磁盘对应的磁盘快照中的磁盘分段数据;
136.块设备存储集群,用于接收读盘请求,选择快照缓存节点;若所选的快照缓存节点中存储有磁盘分段数据,则从快照缓存节点中获取磁盘分段数据;若所选的快照缓存节点中未存储磁盘分段数据,则从镜像中心获取磁盘分段数据,将获取的磁盘分段数据存储在所选的快照缓存节点中。
137.本技术的上述实施例提供的快照数据的读取系统与本技术实施例提供的快照数据的读取方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
138.本技术实施方式还提供一种电子设备,以执行上述快照数据的读取方法。请参考
图11,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图11所示,电子设备4包括:处理器400,存储器401,总线402和通信接口403,所述处理器400、通信接口403和存储器401通过总线402连接;所述存储器401中存储有可在所述处理器400上运行的计算机程序,所述处理器400运行所述计算机程序时执行本技术前述任一实施方式所提供的快照数据的读取方法。
139.其中,存储器401可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口403(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
140.总线402可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器401用于存储程序,所述处理器400在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述快照数据的读取方法可以应用于处理器400中,或者由处理器400实现。
141.处理器400可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器400中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器400可以是通用处理器,包括处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器400读取存储器401中的信息,结合其硬件完成上述方法的步骤。
142.本技术实施例提供的电子设备与本技术实施例提供的快照数据的读取方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
143.本技术实施方式还提供一种与前述实施方式所提供的快照数据的读取方法对应的计算机可读存储介质,请参考图12,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的快照数据的读取方法。
144.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
145.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的快照数据的读取方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
146.需要说明的是:
147.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施
例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
148.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
149.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
150.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献