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

一种通过镜像创建云主机的方法、装置、设备及可读介质与流程

2022-02-23 00:42:57 来源:中国专利 TAG:


1.本发明涉及云计算平台技术领域,尤其涉及一种通过镜像创建云主机的方法、装置、设备及可读介质。


背景技术:

2.目前,计算模块本身不支持由多个已知可使用的集群块存储(ceph rbd)后端的部署。如果只有一个,计算模块和镜像模块将合作实现快速、轻便的从镜像到云主机的克隆行为;如果不止一个,计算模块通常不能很好地处理这种情况,在最坏的情况下会导致云主机的创建由于镜像数据读取的缓慢且耗时而创建失败。
3.在多数情况下,需要在单个云平台(如openstack)资源池中拥有多个独立的集群存储后端。最常见的是多站点或边缘部署,其中集群在物理上靠近它所服务的计算节点是很重要的。且当前云平台镜像模块已经支持多存储后端配置,用户或者开发者可以选择将使用的镜像存储在对应的集群块存储后端上。
4.现有技术中当镜像模块和计算模块在集群的后端部署上协作时,用户镜像由操作员或者用户上传时由镜像模块存储在集群块存储的后端上。当计算模块开始启动一个实例时,会要求集群制作这个镜像的写复制(copy-on-write)克隆,这非常快速和高效,不仅减少了启动时间,并降低了网络流量。
5.然而如果有两组及以上的计算节点,每组都有自己的集群部署,则当必须确保存储在一个集群中的镜像不会再分配给另一个集群的计算节点上启动。镜像模块可以在逻辑上将单个镜像存储在其中一个或者两个集群中,计算模块在云主机启动期间会查看这一点。但是如果镜像不在云主机启动的集群中,就会从镜像模块下载镜像,然后在每次启动该镜像中的云主机时将其作为原始平面镜像上传到云主机所在云平台资源池的本地集群,由于每个集群都需要存储相同的镜像文件,所以磁盘使用量是只使用一个集群存储的若干倍,这会导致比预期更多的网络流量和磁盘使用量。
6.以镜像模块配置了集群块存储a和集群块存储b两个存储后端为例,现有技术中,镜像文件image2存储在存储b上,在存储a上存在镜像文件image2的逻辑映射,即通知云平台镜像文件image2在存储a上也存在,通过镜像模块使用镜像文件image2创建云主机可以在存储a上启动。此时,由于计算模块不支持配置存储b,如果在存储a上的云主机想要使用镜像文件image2启动,那么它需要通过镜像模块将数据读取到计算模块进行缓存,然后通过libvirt rbd将数据写入到存储a上,循环多次完成计算模块到存储a之间的数据拷贝即可启动云主机,此时至少需要执行两次数据拷贝,耗时较长。


技术实现要素:

7.有鉴于此,本发明实施例的目的在于提出一种通过镜像创建云主机的方法、装置、设备及可读介质,基于对存储多后端的支持,开发跨存储镜像文件拷贝机制,以实现启动云主机之间镜像文件的预拷贝,并基于预拷贝的镜像文件通过快速克隆的方式启动云主机,
无需将镜像上传多分,提升数据传输效率,降低对网络流量和磁盘空间的占用,有效提升云平台资源的可维护性和可操作性。
8.基于上述目的,本发明实施例的一方面提供了一种通过镜像创建云主机的方法,包括以下步骤:响应于接收到创建云主机请求,则判断所述创建云主机请求中的目标镜像是否存储在本地集群块存储中;若是所述创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找所述目标镜像所在的目标集群块存储;通过底层数据拷贝机制将所述目标集群块存储中的所述目标镜像拷贝至所述本地集群块存储中;以及响应于在所述本地集群块存储中检测到所述目标镜像,则通过所述目标镜像启动云主机。
9.在一些实施方式中,响应于接收到创建云主机请求,则判断所述创建云主机请求中的目标镜像是否存储在本地集群块存储中包括:响应于接收到创建云主机请求,则基于所述创建云主机请求调度符合规格的主机节点,并将所述符合规格的主机节点设置为本地节点;判断所述创建云主机请求中的目标镜像是否存储在所述本地节点的本地集群块存储中。
10.在一些实施方式中,查找所述目标镜像所在的目标集群块存储包括:基于所述目标镜像获取在所述本地集群块存储中的逻辑映射,并基于所述逻辑映射查找所述目标镜像所在的目标集群块存储。
11.在一些实施方式中,方法还包括:通过镜像属性参数监控拷贝状态;轮询所述镜像属性参数,并基于所述镜像属性参数判断拷贝是否成功。
12.在一些实施方式中,方法还包括:响应于基于所述镜像属性参数判断拷贝成功,则判断在所述本地集群块存储中是否检测到所述目标镜像。
13.在一些实施方式中,方法还包括:响应于基于所述镜像属性参数判断拷贝失败,则将云主机状态设置为错误,并发送创建失败告警。
14.在一些实施方式中,方法还包括:若是所述创建云主机请求中的目标镜像存储在本地集群块存储中,则从所述本地集群块存储中获取所述目标镜像,并通过所述目标镜像启动云主机。
15.本发明实施例的另一方面,还提供了一种通过镜像创建云主机的装置,包括:第一模块,配置用于响应于接收到创建云主机请求,则判断所述创建云主机请求中的目标镜像是否存储在本地集群块存储中;第二模块,配置用于若是所述创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找所述目标镜像所在的目标集群块存储;第三模块,配置用于通过底层数据拷贝机制将所述目标集群块存储中的所述目标镜像拷贝至所述本地集群块存储中;以及第四模块,配置用于响应于在所述本地集群块存储中检测到所述目标镜像,则通过所述目标镜像启动云主机。
16.在一些实施方式中,所述第一模块进一步配置用于:响应于接收到创建云主机请求,则基于所述创建云主机请求调度符合规格的主机节点,并将所述符合规格的主机节点设置为本地节点;判断所述创建云主机请求中的目标镜像是否存储在所述本地节点的本地集群块存储中。
17.在一些实施方式中,所述第二模块进一步配置用于:基于所述目标镜像获取在所述本地集群块存储中的逻辑映射,并基于所述逻辑映射查找所述目标镜像所在的目标集群块存储。
18.在一些实施方式中,所述第三模块进一步配置用于:通过镜像属性参数监控拷贝状态;轮询所述镜像属性参数,并基于所述镜像属性参数判断拷贝是否成功。
19.在一些实施方式中,所述第三模块进一步配置用于:响应于基于所述镜像属性参数判断拷贝成功,则判断在所述本地集群块存储中是否检测到所述目标镜像。
20.在一些实施方式中,所述第三模块进一步配置用于:响应于基于所述镜像属性参数判断拷贝失败,则将云主机状态设置为错误,并发送创建失败告警。
21.在一些实施方式中,所述第四模块进一步配置用于:若是所述创建云主机请求中的目标镜像存储在本地集群块存储中,则从所述本地集群块存储中获取所述目标镜像,并通过所述目标镜像启动云主机。
22.本发明实施例的再一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现方法的步骤包括:响应于接收到创建云主机请求,则判断所述创建云主机请求中的目标镜像是否存储在本地集群块存储中;若是所述创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找所述目标镜像所在的目标集群块存储;通过底层数据拷贝机制将所述目标集群块存储中的所述目标镜像拷贝至所述本地集群块存储中;以及响应于在所述本地集群块存储中检测到所述目标镜像,则通过所述目标镜像启动云主机。
23.在一些实施方式中,响应于接收到创建云主机请求,则判断所述创建云主机请求中的目标镜像是否存储在本地集群块存储中包括:响应于接收到创建云主机请求,则基于所述创建云主机请求调度符合规格的主机节点,并将所述符合规格的主机节点设置为本地节点;判断所述创建云主机请求中的目标镜像是否存储在所述本地节点的本地集群块存储中。
24.在一些实施方式中,查找所述目标镜像所在的目标集群块存储包括:基于所述目标镜像获取在所述本地集群块存储中的逻辑映射,并基于所述逻辑映射查找所述目标镜像所在的目标集群块存储。
25.在一些实施方式中,步骤还包括:通过镜像属性参数监控拷贝状态;轮询所述镜像属性参数,并基于所述镜像属性参数判断拷贝是否成功。
26.在一些实施方式中,步骤还包括:响应于基于所述镜像属性参数判断拷贝成功,则判断在所述本地集群块存储中是否检测到所述目标镜像。
27.在一些实施方式中,步骤还包括:响应于基于所述镜像属性参数判断拷贝失败,则将云主机状态设置为错误,并发送创建失败告警。
28.在一些实施方式中,步骤还包括:若是所述创建云主机请求中的目标镜像存储在本地集群块存储中,则从所述本地集群块存储中获取所述目标镜像,并通过所述目标镜像启动云主机。
29.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
30.本发明至少具有以下有益技术效果:基于对存储多后端的支持,开发跨存储镜像文件拷贝机制,以实现启动云主机之间镜像文件的预拷贝,并基于预拷贝的镜像文件通过快速克隆的方式启动云主机,无需将镜像上传多份,提升数据传输效率,降低对网络流量和磁盘空间的占用,有效提升云平台资源的可维护性和可操作性。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
32.图1为本发明提供的通过镜像创建云主机的方法的实施例的示意图;
33.图2为本发明提供的通过镜像创建云主机的方法的实施例的架构图;
34.图3本发明提供的通过镜像创建云主机的装置的实施例的示意图;
35.图4为本发明提供的计算机设备的实施例的示意图;
36.图5为本发明提供的计算机可读存储介质的实施例的示意图。
具体实施方式
37.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
38.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
39.基于上述目的,本发明实施例的第一个方面,提出了通过镜像创建云主机的方法的实施例。图1示出的是本发明提供的通过镜像创建云主机的方法的实施例的示意图。如图1所示,本发明实施例的通过镜像创建云主机的方法包括如下步骤:
40.001、响应于接收到创建云主机请求,则判断创建云主机请求中的目标镜像是否存储在本地集群块存储中;
41.002、若是创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找目标镜像所在的目标集群块存储;
42.003、通过底层数据拷贝机制将目标集群块存储中的目标镜像拷贝至本地集群块存储中;以及
43.004、响应于在本地集群块存储中检测到目标镜像,则通过目标镜像启动云主机。
44.在本发明的一些实施例中,响应于接收到创建云主机请求,则判断创建云主机请求中的目标镜像是否存储在本地集群块存储中包括:响应于接收到创建云主机请求,则基于创建云主机请求调度符合规格的主机节点,并将符合规格的主机节点设置为本地节点;判断创建云主机请求中的目标镜像是否存储在本地节点的本地集群块存储中。
45.在本发明的一些实施例中,查找目标镜像所在的目标集群块存储包括:基于目标镜像获取在本地集群块存储中的逻辑映射,并基于逻辑映射查找目标镜像所在的目标集群块存储。
46.在本发明的一些实施例中,方法还包括:通过镜像属性参数监控拷贝状态;轮询镜像属性参数,并基于镜像属性参数判断拷贝是否成功。
47.在本发明的一些实施例中,方法还包括:响应于基于镜像属性参数判断拷贝成功,则判断在本地集群块存储中是否检测到目标镜像。
48.在本发明的一些实施例中,方法还包括:响应于基于镜像属性参数判断拷贝失败,
则将云主机状态设置为错误,并发送创建失败告警。
49.在本发明的一些实施例中,方法还包括:若是创建云主机请求中的目标镜像存储在本地集群块存储中,则从本地集群块存储中获取目标镜像,并通过目标镜像启动云主机。
50.下面根据具体实施例进一步阐述本发明的具体实施方式。图2示出的是本发明提供的通过镜像创建云主机的方法的实施例的架构图。如图2所示,存储模块管理管理多种存储后端,rbd存储a和rbd存储b被存储模块管理所管理;镜像模块和计算模块分别配置了多个ceph rbd存储后端,通过在计算模块配置的镜像存储后端的名称区分不同的后端存储池。在请求通过镜像启动云主机时,首先调度满足云主机请求规格的主机节点,然后在此节点上基于libvirt/qemu执行云主机的创建。
51.修改libvirt rbd镜像后端的实现逻辑,使libvirt rbd在请求对应的镜像时能够通过存储底层数据拷贝机制,将镜像文件同步到当前rbd存储后端上。例如通过image2创建云主机,在执行到libvirt brd驱动,向镜像模块请求请求image2的镜像文件时发现在存储a上没有image2,但是在rbd存储b上存在该文件,此时调用存储拷贝机制实现rbd存储b中image2镜像文件向rbd存储a的拷贝。
52.计算模块通过image_importing_to_stores的属性监控镜像的拷贝情况,此时计算模块需要轮询此属性,一旦检测到image2镜像数据从rbd存储b向rbd存储a拷贝完成,则在rbd存储a上通过image2拷贝过来的镜像启动云主机,云主机基于该镜像通过copy-on-write克隆,可以很快启动云主机。
53.如果计算模块检测到image2从rbd存储b向rbd存储a拷贝失败,则通过image_failed_import属性通知计算模块和镜像模块,将云主机状态置为错误,即云主机创建失败。
54.需要特别指出的是,上述通过镜像创建云主机的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于通过镜像创建云主机的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
55.基于上述目的,本发明实施例的第二个方面,提出了一种通过镜像创建云主机的装置。图3示出的是本发明提供的通过镜像创建云主机的装置的实施例的示意图。如图3所示,本发明实施例的通过镜像创建云主机的装置包括如下模块:第一模块011,配置用于响应于接收到创建云主机请求,则判断创建云主机请求中的目标镜像是否存储在本地集群块存储中;第二模块012,配置用于若是创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找目标镜像所在的目标集群块存储;第三模块013,配置用于通过底层数据拷贝机制将目标集群块存储中的目标镜像拷贝至本地集群块存储中;以及第四模块014,配置用于响应于在本地集群块存储中检测到目标镜像,则通过目标镜像启动云主机。
56.在本发明的一些实施例中,第一模块011进一步配置用于:响应于接收到创建云主机请求,则基于创建云主机请求调度符合规格的主机节点,并将符合规格的主机节点设置为本地节点;判断创建云主机请求中的目标镜像是否存储在本地节点的本地集群块存储中。
57.在本发明的一些实施例中,第二模块012进一步配置用于:基于目标镜像获取在本地集群块存储中的逻辑映射,并基于逻辑映射查找目标镜像所在的目标集群块存储。
58.在本发明的一些实施例中,第三模块013进一步配置用于:通过镜像属性参数监控拷贝状态;轮询镜像属性参数,并基于镜像属性参数判断拷贝是否成功。
59.在本发明的一些实施例中,第三模块013进一步配置用于:响应于基于镜像属性参数判断拷贝成功,则判断在本地集群块存储中是否检测到目标镜像。
60.在本发明的一些实施例中,第三模块013进一步配置用于:响应于基于镜像属性参数判断拷贝失败,则将云主机状态设置为错误,并发送创建失败告警。
61.在本发明的一些实施例中,第四模块014进一步配置用于:若是创建云主机请求中的目标镜像存储在本地集群块存储中,则从本地集群块存储中获取目标镜像,并通过目标镜像启动云主机。
62.基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图4示出的是本发明提供的计算机设备的实施例的示意图。如图4所示,本发明实施例的计算机设备包括如下装置:至少一个处理器021;以及存储器022,存储器022存储有可在处理器上运行的计算机指令023,指令由处理器执行时实现方法的步骤包括:响应于接收到创建云主机请求,则判断创建云主机请求中的目标镜像是否存储在本地集群块存储中;若是创建云主机请求中的目标镜像没有存储在本地集群块存储中,则查找目标镜像所在的目标集群块存储;通过底层数据拷贝机制将目标集群块存储中的目标镜像拷贝至本地集群块存储中;以及响应于在本地集群块存储中检测到目标镜像,则通过目标镜像启动云主机。
63.在本发明的一些实施例中,响应于接收到创建云主机请求,则判断创建云主机请求中的目标镜像是否存储在本地集群块存储中包括:响应于接收到创建云主机请求,则基于创建云主机请求调度符合规格的主机节点,并将符合规格的主机节点设置为本地节点;判断创建云主机请求中的目标镜像是否存储在本地节点的本地集群块存储中。
64.在本发明的一些实施例中,查找目标镜像所在的目标集群块存储包括:基于目标镜像获取在本地集群块存储中的逻辑映射,并基于逻辑映射查找目标镜像所在的目标集群块存储。
65.在本发明的一些实施例中,步骤还包括:通过镜像属性参数监控拷贝状态;轮询镜像属性参数,并基于镜像属性参数判断拷贝是否成功。
66.在本发明的一些实施例中,步骤还包括:响应于基于镜像属性参数判断拷贝成功,则判断在本地集群块存储中是否检测到目标镜像。
67.在本发明的一些实施例中,步骤还包括:响应于基于镜像属性参数判断拷贝失败,则将云主机状态设置为错误,并发送创建失败告警。
68.在本发明的一些实施例中,步骤还包括:若是创建云主机请求中的目标镜像存储在本地集群块存储中,则从本地集群块存储中获取目标镜像,并通过目标镜像启动云主机。
69.本发明还提供了一种计算机可读存储介质。图5示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图5所示,计算机可读存储介质031存储有被处理器执行时执行如上方法的计算机程序032。
70.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,通过镜像创建云主机的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体
(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
71.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
72.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
73.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
74.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(d0l)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、d0l或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
75.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
76.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
77.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
78.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
79.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非
旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献