CN111209090B - 一种云平台中虚拟机的创建方法、组件及服务器 - Google Patents

一种云平台中虚拟机的创建方法、组件及服务器 Download PDF

Info

Publication number
CN111209090B
CN111209090B CN202010302928.0A CN202010302928A CN111209090B CN 111209090 B CN111209090 B CN 111209090B CN 202010302928 A CN202010302928 A CN 202010302928A CN 111209090 B CN111209090 B CN 111209090B
Authority
CN
China
Prior art keywords
target
image data
virtual machine
storage
mirror image
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
Application number
CN202010302928.0A
Other languages
English (en)
Other versions
CN111209090A (zh
Inventor
葛凯凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010302928.0A priority Critical patent/CN111209090B/zh
Publication of CN111209090A publication Critical patent/CN111209090A/zh
Application granted granted Critical
Publication of CN111209090B publication Critical patent/CN111209090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种云平台中虚拟机的创建方法、组件及服务器,涉及云技术领域,该方法包括:镜像组件调用块存储组件,通过块存储组件将目标镜像数据分别保存在多个存储集群中,目标镜像数据对应多个位置信息。块存储组件在创建虚拟机时,根据虚拟机的属性信息,从多个存储集群中确定用于创建虚拟机的目标存储集群。然后从目标镜像数据的多个位置信息中,确定与目标存储集群匹配的目标位置信息。再根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机。由于将目标镜像数据保存在每个存储集群中,故创建虚拟机的存储集群中都会保存一份目标镜像数据,而不需要从其他存储集群中下载,从而提高创建虚拟机的效率。

Description

一种云平台中虚拟机的创建方法、组件及服务器
技术领域
本申请实施例涉及云技术领域,尤其涉及一种云平台中虚拟机的创建方法、组件及服务器。
背景技术
在基于Openstack的云平台中,基本上所有的数据都存放在存储集群中。随着云平台运行之后,虚拟机的数量会越来越多,随之带来存储的数据量也越来越多,这样就需要对存储集群扩容。为了便于云平台维护,通常会选择使用多个存储集群来进行存储的扩容。Openstack中块存储组件(Cinder组件)可以用来对接多个存储集群,采用Cinder组件构建虚拟机时,可以在多个存储集群中选择一个存储集群创建虚拟机的系统盘。而虚拟机的创建一般需要镜像,镜像的存储位置由Openstack的镜像组件(Glance组件)单独配置,这样使得创建虚拟机的存储集群与镜像所在的存储集群往往不是一个存储集群,需要Cinder组件下载镜像并将镜像上传至创建虚拟机的存储集群,从而导致虚拟机的创建时间过长。
发明内容
本申请实施例提供了一种云平台中虚拟机的创建方法、组件及服务器,用于减少创建虚拟机的过长。
一方面,本申请实施例提供了一种云平台中虚拟机的创建方法,应用在云平台中的块存储组件,包括:
接收虚拟机创建请求,所述虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识;
根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群;
根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置;
从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息;
根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机。
一方面,本申请实施例提供了一种云平台中虚拟机的创建方法,应用在云平台中的镜像组件,包括:
接收块存储组件发送的位置信息获取指令,所述位置信息获取指令中包括虚拟机对应的目标镜像数据的标识,所述目标镜像数据的标识是所述块存储组件在接收到虚拟机创建请求后,从所述虚拟机创建请求中获取的;
将保存所述目标镜像数据的多个位置信息发送至所述块存储组件,以使所述块存储组件从所述多个位置信息中,确定与目标存储集群匹配的目标位置信息,根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,所述目标存储集群是所述块存储组件根据所述虚拟机创建请求中携带的虚拟机的属性信息从多个存储集群中确定的,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置。
一方面,本申请实施例提供了一种块存储组件,包括:
第一接收模块,用于接收虚拟机创建请求,所述虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识;
选择模块,用于根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群;
匹配模块,用于根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置;
所述匹配模块,还用于从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息;
创建模块,用于根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机。
可选地,所述匹配模块具体用于:
接收镜像组件发送的调用指令;
响应所述调用指令,将终端通过所述镜像组件上传的所述目标镜像数据,保存至所述多个存储集群中,并获得保存所述目标镜像数据的多个位置信息。
可选地,所述匹配模块具体用于:
接收终端通过所述镜像组件上传的所述目标镜像数据;
在多个卷类型中确定与所述目标镜像数据匹配的目标卷类型,每个卷类型对应一个存储集群;
在所述目标卷类型对应的第一存储集群中创建逻辑卷,并将所述目标镜像数据写入所述第一存储集群的逻辑卷中,所述第一存储集群中的逻辑卷的卷类型为所述目标卷类型;
在除所述第一存储集群之外的每个其他存储集群中创建逻辑卷,从所述第一存储集群中下载所述目标镜像数据并写入所述每个其他存储集群的逻辑卷中;
将保存所述目标镜像数据的逻辑卷的卷类型和卷标识,作为所述目标镜像数据的位置信息。
可选地,所述匹配模块具体用于:
在多个卷类型中确定与所述目标镜像数据匹配的父级卷类型;
根据所述父级卷类型与所述父级卷类型下各个子级卷类型的对应关系,从各个子级卷类型中确定与所述目标镜像数据匹配的子级卷类型,所述各个子级卷类型中每个子级卷类型对应一个存储集群;
将与所述目标镜像数据匹配的子级卷类型确定为目标卷类型。
可选地,所述匹配模块还用于:
将所述目标镜像数据的标识和所述目标镜像数据的多个位置信息对应保存在所述镜像组件中。
可选地,所述匹配模块具体用于:
调用所述镜像组件,根据所述目标镜像数据的标识,从所述镜像组件中获取所述目标镜像数据的多个位置信息。
可选地,所述匹配模块具体用于:
将所述多个位置信息中,卷类型与所述目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。
可选地,所述创建模块具体用于:
根据所述目标位置信息,从所述目标存储集群中确定保存所述目标镜像数据的逻辑卷;
基于保存所述目标镜像数据的逻辑卷创建所述虚拟机的逻辑卷;
在所述虚拟机的逻辑卷中创建所述虚拟机。
可选地,所述选择模块具体用于:
根据所述虚拟机的属性信息,确定所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量;
根据所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量,对所述多个存储集群中进行过滤;
确定过滤后保留的各存储集群的权重,并根据所述权重从各存储集群中确定用于创建所述虚拟机的目标存储集群。
一方面,本申请实施例提供了一种镜像组件,包括:
第二接收模块,用于接收块存储组件发送的位置信息获取指令,所述位置信息获取指令中包括虚拟机对应的目标镜像数据的标识,所述目标镜像数据的标识是所述块存储组件在接收到虚拟机创建请求后,从所述虚拟机创建请求中获取的;
处理模块,用于将保存所述目标镜像数据的多个位置信息发送至所述块存储组件,以使所述块存储组件从所述多个位置信息中,确定与目标存储集群匹配的目标位置信息,根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,所述目标存储集群是所述块存储组件根据所述虚拟机创建请求中携带的虚拟机的属性信息从多个存储集群中确定的,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置。
可选地,所述处理模块具体用于:
接收终端上传的所述目标镜像数据;
调用所述块存储组件,通过所述块存储组件将所述目标镜像数据,分别保存在所述多个存储集群中;
接收所述块存储组件发送的保存所述目标镜像数据的多个位置信息。
一方面,本申请实施例提供了一种服务器,包括:上述块存储组件和/或上述镜像组件。
一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现云平台中虚拟机的创建方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行云平台中虚拟机的创建方法。
由于预先将目标镜像数据分别保存在多个存储集群中,故在创建虚拟机时,可以直接从保存目标镜像数据的多个位置信息中,确定与目标存储集群匹配的目标位置信息。然后根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机,而不需要从目标存储集群之外的其他存储集群中下载镜像数据,从而一方面减少了虚拟机的构建时间,另一方面降低了管理网络的流量,进而提高Openstack的服务质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中创建虚拟机的过程的示意图;
图2为现有技术中块存储组件和镜像组件下载并上传镜像数据的过程的示意图;
图3为本申请实施例提供的一种云平台的系统架构的结构示意图;
图4为本申请实施例提供的一种云平台中虚拟机的创建方法的流程示意图;
图5为本申请实施例提供的一种选择目标存储集群的方法的流程示意图;
图6为本申请实施例提供的一种保存目标镜像数据的方法的流程示意图;
图7为本申请实施例提供的一种保存目标镜像数据的方法的流程示意图;
图8为本申请实施例提供的一种保存目标镜像数据的方法的流程示意图;
图9为本申请实施例提供的一种目标镜像数据的位置信息的示意图;
图10a为本申请实施例提供的一种块存储组件调度的示意图;
图10b为本申请实施例提供的一种块存储组件调度的示意图;
图11为本申请实施例提供的一种云平台中虚拟机的创建方法的流程示意图;
图12为本申请实施例提供的一种保存目标镜像数据的方法的流程示意图;
图13为本申请实施例提供的一种块存储组件的结构示意图;
图14为本申请实施例提供的一种镜像组件的结构示意图;
图15为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了方便理解,下面对本申请实施例中涉及的名词进行解释。
云技术(Cloud technology):基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储(cloud storage):在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统通过创建逻辑卷来存储数据,比如本申请实施例中在每个存储集群中创建逻辑卷来保存目标镜像数据。在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity) 等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。比如本申请实施例中基于目标镜像数据的位置信息从目标存储集群中获得目标镜像数据。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
OpenStack:一个开源的云计算管理平台项目,是一系列软件开源项目的组合。
Cinder:Openstack中提供块存储的组件,主要给虚拟机做磁盘用。
Glance:Openstack中虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式,有创建上传镜像、删除镜像、编辑镜像基本信息的功能。
Ceph:开源的分布式存储系统,能同时提供对象、块、文件存储服务。
Ipsan:以网际互连协议(IP,Internet Protocol)网络构建存储网络,主要提供块存储服务。
Fcsan:以光纤通道构建存储网络。
目前,在基于Openstack的云平台中,基本上所有的数据都存放在存储集群中。随着云平台运行之后,虚拟机的数量会越来越多,随之带来存储的数据量也越来越多,这样就需要对存储集群扩容。一般采用以下两种扩容方式,第一种是对单存储集群扩容,第二种是使用多个存储集群进行扩容。若采用单存储集群扩容的方式,随着云平台越来越复杂,将在单个存储集群容量很大的时候,对存储集群的运维比较困难。为了便于云平台维护,通常会选择使用多个存储集群来进行存储的扩容。Openstack中块存储组件可以用来对接多个存储集群,采用块存储组件构建虚拟机时,可以在多个存储集群中选择一个存储集群创建虚拟机的系统盘。而虚拟机的创建一般需要镜像数据,镜像数据的存储位置由Openstack的镜像组件单独配置,镜像组件一般只选择一个存储集群保存镜像数据。示例性地,如图1所示,镜像组件选择将镜像数据保存在存储集群3中,管理组件(Nova组件)通过调用块存储组件创建虚拟机的系统盘,块存储组件可以选择在存储集群1、存储集群2以及存储集群3中的任意一个存储集群中创建虚拟机的系统盘。当块存储组件选择在存储集群1或存储集群2中创建虚拟机的系统盘时,会出现创建虚拟机的存储集群与镜像数据所在的存储集群不是一个存储集群的情况。此时需要块存储组件从其他存储集群中下载镜像数据并将镜像数据上传至创建虚拟机的存储集群,从而导致虚拟机的创建时间过长。示例性地,如图2所示,块存储组件位于云服务器A,镜像组件位于云服务器B,块存储组件在存储集群1创建虚拟机的系统盘,而镜像组件将虚拟机的镜像数据保存在存储集群3。此时,云服务器A中的块存储组件根据镜像数据身份标识号(ID,Identity document)调用云服务器B中的镜像组件。镜像组件基于镜像数据ID,通过存储网络从存储集群3中下载镜像数据,然后通过管理网络将镜像数据发送至云服务器A。云服务器A中的块存储组件通过管理网络接收镜像数据,然后通过存储网络将镜像数据上传至存储集群1,之后再采用镜像数据在存储集群1中创建虚拟机。块存储组件和镜像组件下载并上传镜像数据的过程存在数据拷贝,这样导致虚拟机的构建时间过长。其次,镜像组件下载镜像数据的时候会导致管理网络流量比较大,而Openstack中其他组件也需要使用管理网络,从而影响Openstack的服务质量。
考虑到块存储组件可以用来对接多个存储集群,若镜像组件通过块存储组件对接多个存储集群,将镜像数据分别保存在多个存储集群中,这样在创建虚拟机的任意一个存储集群中都会保存一份镜像数据,而不需要从其他存储集群中下载。鉴于此,本申请实施例中镜像组件调用块存储组件,通过块存储组件将目标镜像数据,分别保存在多个存储集群中,目标镜像数据的每个位置信息对应目标镜像数据在其中一个存储集群中的保存位置。在创建虚拟机时,块存储组件接收虚拟机创建请求,虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识。然后根据虚拟机的属性信息,从多个存储集群中确定用于创建虚拟机的目标存储集群。块存储组件调用镜像组件,根据目标镜像数据的标识,从镜像组件中获取保存目标镜像数据的多个位置信息,然后从多个位置信息中确定与目标存储集群匹配的目标位置信息。之后再根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机。
由于预先将目标镜像数据分别保存在多个存储集群中,故在创建虚拟机时,可以直接从保存目标镜像数据的多个位置信息中,确定与目标存储集群匹配的目标位置信息。然后根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机,而不需要从目标存储集群之外的其他存储集群中下载镜像数据,从而一方面减少了虚拟机的构建时间,另一方面降低了管理网络的流量,进而提高Openstack的服务质量。
图3示例性示出了本申请实施例中的云平台的系统架构,如图3所示,该系统架构包括业务层301、网关层302、控制层303以及存储层304。
业务层301与终端对接,为各类用户提供可操作的界面,具体包括自助平台、运维平台、监控平台等。自助平台给用户提供一个申请资源的界面,监控平台用于监控整个平台的全部资源使用情况,运维平台给管理员提供一个可操作的运维界面。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等,但并不局限于此。
网关层302包括平台资源接口、IP系统和基于角色的访问控制(RBAC,Role-BasedAccess Control)等,其中,IP系统用于管理ip等网络资源,RBAC用来鉴权。
控制层303包括Openstack提供Iaas服务的组件,比如管理组件、镜像组件、块存储组件等,其中,管理组件用来管理虚拟机的生命周期,镜像组件用来管理镜像的生命周期,块存储组件用来管理逻辑卷的生命周期。Openstack提供Iaas服务的各个组件可以都位于一个服务器,也可以位于不同的服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
存储层304包括多个存储集群,存储集群的类型可以是Ceph、Ipsan、Fcsan等。
基于图3所示云平台的系统架构,本申请实施例提供了一种云平台中虚拟机的创建方法的流程,如图4所示,该方法的流程可以由图3中的块存储组件执行,该方法包括以下步骤:
步骤S401,块存储组件接收虚拟机创建请求。
具体地,Nova组件发送虚拟机创建请求至块存储组件,通过调用块存储组件创建虚拟机。虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识,虚拟机的属性信息包括卷类型(volume_type)的标识、所需创建系统盘的大小等。虚拟机对应的目标镜像数据为虚拟机的操作系统信息,目标镜像数据的标识为目标镜像数据的ID或描述信息或其他可以标识目标镜像数据的参数。
步骤S402,块存储组件根据虚拟机的属性信息,从多个存储集群中确定用于创建虚拟机的目标存储集群。
具体地,通过调度算法选择最合适的存储集群创建虚拟机,主要基于存储集群的属性和资源使用情况进行选择。
步骤S403,块存储组件根据目标镜像数据的标识,获取保存目标镜像数据的多个位置信息。
目标镜像数据被分别保存在多个存储集群中,每个位置信息对应目标镜像数据在其中一个存储集群中的保存位置。目标镜像数据的标识与目标镜像的多个位置信息对应保存,在创建虚拟机时,可以直接基于目标镜像的标识查询获得目标镜像的多个位置信息。
步骤S404,块存储组件从多个位置信息中确定与目标存储集群匹配的目标位置信息。
具体地,与目标存储集群匹配的目标位置信息为存储在目标存储集群中的目标镜像数据的位置信息。
步骤S405,块存储组件根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机。
由于预先将目标镜像数据分别保存在多个存储集群中,故在创建虚拟机时,可以直接从保存目标镜像数据的多个位置信息中,确定与目标存储集群匹配的目标位置信息。然后根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机,而不需要从目标存储集群之外的其他存储集群中下载镜像数据,从而一方面减少了虚拟机的创建时间,另一方面降低了管理网络的流量,进而提高Openstack的服务质量。其次,由于创建虚拟机的存储集群和保存镜像数据的存储集群为同一存储集群,故可以在同一存储集群中基于保存的镜像数据创建虚拟机,从而实现虚拟机秒级创建。
可选地,在上述步骤S402中,块存储组件根据虚拟机的属性信息,从多个存储集群中确定用于创建虚拟机的目标存储集群,具体包括以下步骤,如图5所示:
步骤S501,块存储组件根据虚拟机的属性信息,确定虚拟机对应的卷类型以及创建虚拟机所需的容量。
具体地,虚拟机的属性信息包括虚拟机对应的卷类型以及所需创建系统盘的大小,根据所需创建系统盘的大小确定创建虚拟机所需的容量。
步骤S502,块存储组件根据虚拟机对应的卷类型以及创建虚拟机所需的容量,对多个存储集群中进行过滤。
具体地,将多个存储集群中,卷类型不是虚拟机对应的卷类型的存储集群过滤掉,然后进一步将存储空间不大于创建虚拟机所需的容量的存储集群过滤掉。可选地,为了提高容灾性和提供隔离服务,可以预先将多个存储集群划分为可用存储集群和不可用存储集群,在过滤存储集群中,可以增加将不可用存储集群过滤掉的步骤。
步骤S503,块存储组件确定过滤后保留的各存储集群的权重,并根据权重从各存储集群中确定用于创建虚拟机的目标存储集群。
具体地,基于保留的各存储集群的空闲容量计算权重值,一般来说,空闲容量越大,权重值越大。对各存储集群的权重值进行排序,将权重值最大的存储集群作为目标存储集群。根据存储集群的资源使用情况从多个存储集群中选择空闲容量最大的存储集群来创建虚拟机,从而提高了各存储集群中资源的利用率。
可选地,在上述步骤S403中,镜像组件通过块存储组件与多个存储集群对接,然后将目标镜像数据保存至多个存储集群中。具体地,块存储组件接收镜像组件发送的调用指令。块存储组件响应调用指令,将终端通过镜像组件上传的目标镜像数据,保存至多个存储集群中,并获得保存目标镜像数据的多个位置信息。示例性地,如图6所示,块存储组件分别与存储集群1、存储集群2以及存储集群3对接。镜像组件调用块存储组件,将目标镜像数据发送至块存储组件,块存储组件将目标镜像数据分别上传至存储集群1、存储集群2以及存储集群3,然后获得保存目标镜像数据的3个位置信息。由于镜像组件通过块存储组件与多个存储集群对接,实现将目标镜像数据保存至多个存储集群中,故创建虚拟机的任意一个存储集群中都会保存一份镜像数据,而不需要从其他存储集群中下载,从而提高创建虚拟机的效率。
一种可能的实施方式中,块存储组件将目标镜像数据保存在多个存储集群中创建的逻辑卷中,如图7,具体包括以下步骤:
步骤S701,块存储组件接收终端通过镜像组件上传的目标镜像数据。
具体地,终端使用命令行或者RESTful api(其中,REST为RepresentationalState Transfer的缩写 ,翻译为表征性状态转移接口,REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful)调用glance-api(镜像组件接口)上传目标镜像数据,其中,RESTful api是一种面向资源的,用于唯一标识和定位资源的网络请求协议接口。glance-api再调用块存储组件上传镜像数据。
步骤S702,块存储组件在多个卷类型中确定与目标镜像数据匹配的目标卷类型。
具体地,每个卷类型对应一个存储集群,可以采用一级卷类型调度确定与目标镜像数据匹配的目标卷类型,也可以采用多级卷类型调度确定与目标镜像数据匹配的目标卷类型。比如采用父级卷类型和子级卷类型两级卷类型调度确定与目标镜像数据匹配的目标卷类型,具体为:首先在多个卷类型中确定与目标镜像数据匹配的父级卷类型,然后根据父级卷类型与父级卷类型下各个子级卷类型的对应关系,从各个子级卷类型中确定与目标镜像数据匹配的子级卷类型,各个子级卷类型中每个子级卷类型对应一个存储集群,父级卷类型不对应存储集群。之后再将与目标镜像数据匹配的子级卷类型确定为目标卷类型。
步骤S703,块存储组件在目标卷类型对应的第一存储集群中创建逻辑卷,并将目标镜像数据写入第一存储集群的逻辑卷中。
具体地,第一存储集群中的逻辑卷的卷类型为目标卷类型,在创建逻辑卷时,为逻辑卷分配物理存储空间,该物理存储空间可能是存储集群中某个存储设备或者某几个存储设备的磁盘组成。
步骤S704,块存储组件在除第一存储集群之外的每个其他存储集群中创建逻辑卷,从第一存储集群中下载目标镜像数据并写入每个其他存储集群的逻辑卷中。
步骤S705,块存储组件将保存目标镜像数据的逻辑卷的卷类型和卷标识,作为目标镜像数据的位置信息。
块存储组件将目标镜像数据保存至存储集群后,对目标镜像数据添加位置信息,位置信息中的卷类型即为保存目标镜像数据的存储集群对应的卷类型,由于每个卷类型对应一个存储集群,故位置信息中的卷类型也可以采用存储集群的标识代替。由于目标镜像数据保存在多个存储集群中,故目标镜像数据对应多个位置信息,而目标镜像数据的标识只有一个,即业务层向用户展示的目标镜像数据为一份,用户可以直接通过目标镜像数据的标识从云平台中获取目标镜像数据并使用目标镜像数据创建虚拟机。
示例性地,如图8所示,设定卷类型包括父级卷类型、子级卷类型1、子级卷类型2以及子级卷类型3,其中子级卷类型1与存储集群1对接,子级卷类型2与存储集群2对接,子级卷类型3与存储集群3对接。终端使用命令行或者restful api调用glance-api上传目标镜像数据M,glance-api调用glance-registry(镜像注册)在数据库中注册一条目标镜像数据M的信息条目。glance-api再调用块存储组件上传目标镜像数据M。块存储组件首先为目标镜像数据M匹配了父级卷类型,然后根据父级卷类型与子级卷类型1、子级卷类型2以及子级卷类型3的对应关系,从子级卷类型1、子级卷类型2以及子级卷类型3中确定与目标镜像数据M匹配的子级卷类型为子级卷类型1。块存储组件在子级卷类型1对接的存储集群1中创建逻辑卷A,然后将目标镜像数据M保存在逻辑卷A中。进一步地,块存储组件在子级卷类型2对接的存储集群2中创建逻辑卷B,在子级卷类型3对接的存储集群3中创建逻辑卷C。从存储集群1的逻辑卷A中下载目标镜像数据M,然后将目标镜像数据M分别保存在逻辑卷B和逻辑卷C中。最终目标镜像数据M分别保存在存储集群1、存储集群2以及存储集群3,目标镜像数据M包括3个位置信息,具体如图9所示。目标镜像数据M的位置信息1为:cinder://存储集群1中的卷A,目标镜像数据M的位置信息2为:cinder://存储集群2中的卷B,目标镜像数据M的位置信息3为:cinder://存储集群3中的卷C。目标镜像数据M的标识为M,用户可以通过标识M获取目标镜像数据创建虚拟机。镜像组件通过块存储组件与多个存储集群对接,实现将目标镜像数据保存至多个存储集群中,故创建虚拟机时,不需要从其他存储集群中下载,从而提高创建虚拟机的效率。
可选地,块存储组件在获得保存目标镜像数据的多个位置信息后,将目标镜像数据的标识和目标镜像数据的多个位置信息对应保存在镜像组件中。后续创建虚拟机时,块存储组件调用镜像组件,根据目标镜像数据的标识,从镜像组件中获取目标镜像数据的多个位置信息。
进一步地,由于创建虚拟机的存储集群可以是多个存储集群中的任意一个存储集群,而目标镜像数据分别保存在多个存储集群中,故在确定创建虚拟机的目标存储集群后,需要通过调度,选择目标存储集群中的目标镜像数据,否则也会出现创建虚拟机的存储集群与保存镜像数据的存储集群不是同一个存储集群的情况。示例性地,如图10a所示,管理组件通过调用块存储组件创建虚拟机,块存储组件选择存储集群1作为创建虚拟机的目标存储集群,块存储组件调用镜像组件选择存储集群2中保存的目标镜像数据来创建虚拟机。这样块存储组件在创建虚拟机时,需要通过镜像组件从存储集群2中下载目标镜像数据,并将目标镜像数据上传至存储集群1,然后在存储集群1中采用目标镜像数据创建虚拟机,从而导致虚拟机的构建时间过长。
为此,本申请实施例中块存储组件将多个位置信息中,卷类型与目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建虚拟机。
具体实施中,块存储组件将每个位置信息中的卷类型与目标存储集群对应的卷类型进行匹配,将多个位置信息中,卷类型与目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。示例性地,如图10b所示,管理组件通过调用块存储组件创建虚拟机,块存储组件将卷类型1对应的存储集群1作为创建虚拟机的目标存储集群。块存储组件调用镜像组件,获取目标镜像数据的多个位置信息,然后将多个位置信息中卷类型为卷类型1的位置信息作为目标位置信息,之后再根据目标位置信息从存储集群1获得目标镜像数据,采用目标镜像数据创建虚拟机。通过卷类型匹配的方法从多个存储集群保存的目标镜像数据中,选择目标存储集群中的目标镜像数据来创建虚拟机,从而避免创建虚拟机的存储集群与保存镜像数据的存储集群不是同一个存储集群的情况,实现虚拟机的秒级创建。
可选地,在基于目标镜像数据创建虚拟机时,本申请实施例至少提供以下两种实施方式:
在一种可能的实施方式中,块存储组件根据目标位置信息,从目标存储集群中确定保存目标镜像数据的逻辑卷,基于保存目标镜像数据的逻辑卷创建虚拟机的逻辑卷,在虚拟机的逻辑卷中创建虚拟机。
具体地,对于同一个存储集群中,依赖已有的目标镜像数据的逻辑卷创建一个新的虚拟机的逻辑卷时,可以使用存储集群内部的快速创建方法。比如Ceph存储集群中,可以通过给逻辑卷创建一个快照,然后对这个快照在进行克隆,获得一个新逻辑卷,这两个操作是秒级的,不需要数据的拷贝,从而实现秒级创建虚拟机。
在另一种可能的实施方式中,块存储组件在目标存储集群中创建虚拟机的逻辑卷,然后从目标镜像数据的逻辑卷中获得目标镜像数据,采用目标镜像数据在虚拟机的逻辑卷中创建虚拟机。通过预先将目标镜像数据分别保存在多个存储集群中,故在创建虚拟机时,可以直接从目标存储集群中获取目标镜像数据,而不需要从其他存储集群中下载,从而一方面减少了虚拟机的构建时间,另一方面降低了管理网络的流量,进而提高Openstack的服务质量。
为了更好的解释本申请实施例,下面结合具体的实施场景描述本申请实施例提供的一种云平台中虚拟机的创建方法,该方法由镜像组件与块存储组件交互执行,如图11所示,具体包括以下步骤:
步骤S1101,块存储组件接收虚拟机创建请求。
块存储组件通过块存储组件接口(cinder-api)接收虚拟机创建请求,虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识,虚拟机的属性信息包括虚拟机对应的卷类型以及所需创建系统盘的大小。
步骤S1102,块存储组件根据虚拟机对应的卷类型以及创建虚拟机所需的容量,对多个存储集群进行过滤。
具体地,cinder-api将虚拟机创建请求发送至块存储组件中的块存储组件的调度模块(cinder-schdule),块存储组件采用cinder-schdule对多个存储集群中进行过滤,cinder-schdule先过滤掉多个存储集群中的不可用存储集群,然后过滤掉卷类型不是虚拟机对应的卷类型的存储集群,之后再过滤掉存储空间不大于创建虚拟机所需的容量的存储集群。
步骤S1103,块存储组件确定过滤后保留的各存储集群的权重,并根据权重从各存储集群中确定用于创建虚拟机的目标存储集群。
具体地,cinder-schdule基于保留的各存储集群的空闲容量计算权重值,将权重值最大的存储集群作为目标存储集群。
步骤S1104,块存储组件发送位置信息获取指令至镜像组件。
具体地,cinder-schdule将虚拟机创建请求以及确定的目标存储集群的标识发送至块存储组件中的块存储组件的管理模块(cinder-volume),cinder-volume发送位置信息获取指令至镜像组件,位置信息获取指令中包括目标镜像数据的标识。
步骤S1105,镜像组件根据目标镜像数据的标识,获取保存目标镜像数据的多个位置信息。
具体地,目标镜像数据预先被分别保存在多个存储集群的逻辑卷中,每个位置信息对应目标镜像数据在其中一个存储集群中的保存位置,位置信息包括保存目标镜像数据的逻辑卷的卷类型和卷标识。
步骤S1106,镜像组件将保存目标镜像数据的多个位置信息发送至块存储组件。
步骤S1107,块存储组件将多个位置信息中,卷类型与目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。
步骤S1108,块存储组件根据目标位置信息,从目标存储集群中确定保存目标镜像数据的逻辑卷。
步骤S1109,块存储组件基于保存目标镜像数据的逻辑卷创建虚拟机的逻辑卷,并在虚拟机的逻辑卷中创建虚拟机。
在上述步骤S1105中,目标镜像数据是镜像组件通过调用块存储组件保存在多个存储集群中的,具体如图12所示,包括以下步骤:
步骤S1201,镜像组件接收终端上传的目标镜像数据。
终端使用命令行或者restful api调用glance-api上传目标镜像数据。
步骤S1202,镜像组件调用块存储组件,将目标镜像数据发送至块存储组件。
步骤S1203,块存储组件在多个卷类型中确定与目标镜像数据匹配的父级卷类型。
步骤S1204,块存储组件根据父级卷类型与父级卷类型下各个子级卷类型的对应关系,从各个子级卷类型中确定与目标镜像数据匹配的子级卷类型。
各个子级卷类型中每个子级卷类型对应一个存储集群。
步骤S1205,块存储组件将与目标镜像数据匹配的子级卷类型确定为目标卷类型。
步骤S1206,块存储组件在目标卷类型对应的第一存储集群中创建逻辑卷,并将目标镜像数据写入第一存储集群的逻辑卷中。
步骤S1207,块存储组件在除第一存储集群之外的每个其他存储集群中创建逻辑卷,从第一存储集群中下载目标镜像数据并写入每个其他存储集群的逻辑卷中。
步骤S1208,块存储组件将保存目标镜像数据的逻辑卷的卷类型和卷标识,作为目标镜像数据的位置信息。
步骤S1209,块存储组件将目标镜像数据的标识和目标镜像数据的多个位置信息发送至镜像组件。
由于预先将目标镜像数据分别保存在多个存储集群中,故在创建虚拟机时,可以直接从保存目标镜像数据的多个位置信息中,确定与用于创建虚拟机的目标存储集群匹配的目标位置信息。然后根据目标位置信息,从目标存储集群中获取目标镜像数据,并采用目标镜像数据创建所述虚拟机,而不需要从目标存储集群之外的其他存储集群中下载镜像数据,从而一方面减少了虚拟机的构建时间,另一方面降低了管理网络的流量,进而提高Openstack的服务质量。
基于相同的技术构思,本申请实施例提供了一种块存储组件,如图13所示,该块存储组件1300包括:
第一接收模块1301,用于接收虚拟机创建请求,所述虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识;
选择模块1302,用于根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群;
匹配模块1303,用于根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置;
所述匹配模块1303,还用于从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息;
创建模块1304,用于根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机。
可选地,所述匹配模块1303具体用于:
接收镜像组件发送的调用指令;
响应所述调用指令,将终端通过所述镜像组件上传的所述目标镜像数据,保存至所述多个存储集群中,并获得保存所述目标镜像数据的多个位置信息。
可选地,所述匹配模块1303具体用于:
接收终端通过所述镜像组件上传的所述目标镜像数据;
在多个卷类型中确定与所述目标镜像数据匹配的目标卷类型,每个卷类型对应一个存储集群;
在所述目标卷类型对应的第一存储集群中创建逻辑卷,并将所述目标镜像数据写入所述第一存储集群的逻辑卷中,所述第一存储集群中的逻辑卷的卷类型为所述目标卷类型;
在除所述第一存储集群之外的每个其他存储集群中创建逻辑卷,从所述第一存储集群中下载所述目标镜像数据并写入所述每个其他存储集群的逻辑卷中;
将保存所述目标镜像数据的逻辑卷的卷类型和卷标识,作为所述目标镜像数据的位置信息。
可选地,所述匹配模块1303具体用于:
在多个卷类型中确定与所述目标镜像数据匹配的父级卷类型;
根据所述父级卷类型与所述父级卷类型下各个子级卷类型的对应关系,从各个子级卷类型中确定与所述目标镜像数据匹配的子级卷类型,所述各个子级卷类型中每个子级卷类型对应一个存储集群;
将与所述目标镜像数据匹配的子级卷类型确定为目标卷类型。
可选地,所述匹配模块1303还用于:
将所述目标镜像数据的标识和所述目标镜像数据的多个位置信息对应保存在所述镜像组件中。
可选地,所述匹配模块1303具体用于:
调用所述镜像组件,根据所述目标镜像数据的标识,从所述镜像组件中获取所述目标镜像数据的多个位置信息。
可选地,所述匹配模块1303具体用于:
将所述多个位置信息中,卷类型与所述目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。
可选地,所述创建模块1304具体用于:
根据所述目标位置信息,从所述目标存储集群中确定保存所述目标镜像数据的逻辑卷;
基于保存所述目标镜像数据的逻辑卷创建所述虚拟机的逻辑卷;
在所述虚拟机的逻辑卷中创建所述虚拟机。
可选地,所述选择模块1302具体用于:
根据所述虚拟机的属性信息,确定所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量;
根据所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量,对所述多个存储集群中进行过滤;
确定过滤后保留的各存储集群的权重,并根据所述权重从各存储集群中确定用于创建所述虚拟机的目标存储集群。
基于相同的技术构思,本申请实施例提供了一种镜像组件,如图14所示,该镜像组件1400包括:
第二接收模块1401,用于接收块存储组件发送的位置信息获取指令,所述位置信息获取指令中包括虚拟机对应的目标镜像数据的标识,所述目标镜像数据的标识是所述块存储组件在接收到虚拟机创建请求后,从所述虚拟机创建请求中获取的;
处理模块1402,用于将保存所述目标镜像数据的多个位置信息发送至所述块存储组件,以使所述块存储组件从所述多个位置信息中,确定与目标存储集群匹配的目标位置信息,根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,所述目标存储集群是所述块存储组件根据所述虚拟机创建请求中携带的虚拟机的属性信息从多个存储集群中确定的,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置。
可选地,所述处理模块1402具体用于:
接收终端上传的所述目标镜像数据;
调用所述块存储组件,通过所述块存储组件将所述目标镜像数据,分别保存在所述多个存储集群中;
接收所述块存储组件发送的保存所述目标镜像数据的多个位置信息。
基于相同的技术构思,本申请实施例提供了一种服务器,包括:上述块存储组件和/或上述镜像组件。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图15所示,包括至少一个处理器1501,以及与至少一个处理器连接的存储器1502,本申请实施例中不限定处理器1501与存储器1502之间的具体连接介质,图15中处理器1501和存储器1502之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器1502存储有可被至少一个处理器1501执行的指令,至少一个处理器1501通过执行存储器1502存储的指令,可以执行前述的云平台中虚拟机的创建方法中所包括的步骤。
其中,处理器1501是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器1502内的指令以及调用存储在存储器1502内的数据,从而创建虚拟机。可选的,处理器1501可包括一个或多个处理单元,处理器1501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1501中。在一些实施例中,处理器1501和存储器1502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行云平台中虚拟机的创建方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种云平台中虚拟机的创建方法,应用在云平台中的块存储组件,其特征在于,包括:
接收虚拟机创建请求,所述虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识;
根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群;
根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置;
从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息;
根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机。
2.如权利要求1所述的方法,其特征在于,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置,具体包括:
接收镜像组件发送的调用指令;
响应所述调用指令,将终端通过所述镜像组件上传的所述目标镜像数据,保存至所述多个存储集群中,并获得保存所述目标镜像数据的多个位置信息。
3.如权利要求2所述的方法,其特征在于,所述将终端通过所述镜像组件上传的所述目标镜像数据,保存至所述多个存储集群中,并获得保存所述目标镜像数据的多个位置信息,包括:
接收终端通过所述镜像组件上传的所述目标镜像数据;
在多个卷类型中确定与所述目标镜像数据匹配的目标卷类型,每个卷类型对应一个存储集群;
在所述目标卷类型对应的第一存储集群中创建逻辑卷,并将所述目标镜像数据写入所述第一存储集群的逻辑卷中,所述第一存储集群中的逻辑卷的卷类型为所述目标卷类型;
在除所述第一存储集群之外的每个其他存储集群中创建逻辑卷,从所述第一存储集群中下载所述目标镜像数据并写入所述每个其他存储集群的逻辑卷中;
将保存所述目标镜像数据的逻辑卷的卷类型和卷标识,作为所述目标镜像数据的位置信息。
4.如权利要求3所述的方法,其特征在于,所述在多个卷类型中确定与所述目标镜像数据匹配的目标卷类型,每个卷类型对应一个存储集群,包括:
在多个卷类型中确定与所述目标镜像数据匹配的父级卷类型;
根据所述父级卷类型与所述父级卷类型下各个子级卷类型的对应关系,从各个子级卷类型中确定与所述目标镜像数据匹配的子级卷类型,所述各个子级卷类型中每个子级卷类型对应一个存储集群;
将与所述目标镜像数据匹配的子级卷类型确定为目标卷类型。
5.如权利要求3或4所述的方法,其特征在于,还包括:
将所述目标镜像数据的标识和所述目标镜像数据的多个位置信息对应保存在所述镜像组件中。
6.如权利要求5所述的方法,其特征在于,所述根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,包括:
调用所述镜像组件,根据所述目标镜像数据的标识,从所述镜像组件中获取所述目标镜像数据的多个位置信息。
7.如权利要求6所述的方法,其特征在于, 所述从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息,包括:
将所述多个位置信息中,卷类型与所述目标存储集群对应的卷类型相同的位置信息,确定为目标位置信息。
8.如权利要求6所述的方法,其特征在于,所述根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,包括:
根据所述目标位置信息,从所述目标存储集群中确定保存所述目标镜像数据的逻辑卷;
基于保存所述目标镜像数据的逻辑卷创建所述虚拟机的逻辑卷;
在所述虚拟机的逻辑卷中创建所述虚拟机。
9.如权利要求6所述的方法,其特征在于,所述根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群,包括:
根据所述虚拟机的属性信息,确定所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量;
根据所述虚拟机对应的卷类型以及创建所述虚拟机所需的容量,对所述多个存储集群中进行过滤;
确定过滤后保留的各存储集群的权重,并根据所述权重从各存储集群中确定用于创建所述虚拟机的目标存储集群。
10.一种云平台中虚拟机的创建方法,应用在云平台中的镜像组件,其特征在于,包括:
接收块存储组件发送的位置信息获取指令,所述位置信息获取指令中包括虚拟机对应的目标镜像数据的标识,所述目标镜像数据的标识是所述块存储组件在接收到虚拟机创建请求后,从所述虚拟机创建请求中获取的;
将保存所述目标镜像数据的多个位置信息发送至所述块存储组件,以使所述块存储组件从所述多个位置信息中,确定与目标存储集群匹配的目标位置信息,根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,所述目标存储集群是所述块存储组件根据所述虚拟机创建请求中携带的虚拟机的属性信息从多个存储集群中确定的,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置。
11.如权利要求10所述的方法,其特征在于,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置,具体包括:
接收终端上传的所述目标镜像数据;
调用所述块存储组件,通过所述块存储组件将所述目标镜像数据,分别保存在所述多个存储集群中;
接收所述块存储组件发送的保存所述目标镜像数据的多个位置信息。
12.一种块存储组件,其特征在于,包括:
第一接收模块,用于接收虚拟机创建请求,所述虚拟机创建请求中包括虚拟机的属性信息及虚拟机对应的目标镜像数据的标识;
选择模块,用于根据所述虚拟机的属性信息,从多个存储集群中确定用于创建所述虚拟机的目标存储集群;
匹配模块,用于根据所述目标镜像数据的标识,获取保存所述目标镜像数据的多个位置信息,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置;
所述匹配模块,还用于从所述多个位置信息中确定与所述目标存储集群匹配的目标位置信息;
创建模块,用于根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机。
13.一种镜像组件,其特征在于,包括:
第二接收模块,用于接收块存储组件发送的位置信息获取指令,所述位置信息获取指令中包括虚拟机对应的目标镜像数据的标识,所述目标镜像数据的标识是所述块存储组件在接收到虚拟机创建请求后,从所述虚拟机创建请求中获取的;
处理模块,用于将保存所述目标镜像数据的多个位置信息发送至所述块存储组件,以使所述块存储组件从所述多个位置信息中,确定与目标存储集群匹配的目标位置信息,根据所述目标位置信息,从所述目标存储集群中获取目标镜像数据,并采用所述目标镜像数据创建所述虚拟机,所述目标存储集群是所述块存储组件根据所述虚拟机创建请求中携带的虚拟机的属性信息从多个存储集群中确定的,所述目标镜像数据被分别保存在所述多个存储集群中,每个位置信息对应所述目标镜像数据在其中一个存储集群中的保存位置。
14.一种服务器,其特征在于,包括:权利要求12所述的块存储组件和/或权利要求13所述的镜像组件。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~9任一权利要求所述方法的步骤,或所述处理器执行所述程序时实现权利要求10~11任一权利要求所述方法的步骤。
CN202010302928.0A 2020-04-17 2020-04-17 一种云平台中虚拟机的创建方法、组件及服务器 Active CN111209090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010302928.0A CN111209090B (zh) 2020-04-17 2020-04-17 一种云平台中虚拟机的创建方法、组件及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010302928.0A CN111209090B (zh) 2020-04-17 2020-04-17 一种云平台中虚拟机的创建方法、组件及服务器

Publications (2)

Publication Number Publication Date
CN111209090A CN111209090A (zh) 2020-05-29
CN111209090B true CN111209090B (zh) 2020-07-24

Family

ID=70784774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010302928.0A Active CN111209090B (zh) 2020-04-17 2020-04-17 一种云平台中虚拟机的创建方法、组件及服务器

Country Status (1)

Country Link
CN (1) CN111209090B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162702A (zh) * 2020-09-25 2021-01-01 科大讯飞股份有限公司 分布式存储系统、虚拟机创建和数据卷扩容方法
CN112363671B (zh) * 2020-10-23 2022-07-05 中国电子科技网络信息安全有限公司 一种基于融合架构云平台的虚拟机模板镜像存储方法
CN113949712B (zh) * 2021-10-15 2024-04-30 科大讯飞股份有限公司 云主机集群高可用处理方法、系统、电子设备及存储介质
CN114089917A (zh) * 2021-11-19 2022-02-25 中国电信集团系统集成有限责任公司 分布式对象存储集群及其扩容方法、装置及电子设备
CN114281706B (zh) * 2021-12-30 2023-09-12 北京瑞莱智慧科技有限公司 一种模型测评方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015127647A1 (zh) * 2014-02-28 2015-09-03 运软网络科技(上海)有限公司 一种基于Ceph的分布式机制的存储虚拟化管理器及系统
CN110442601A (zh) * 2019-06-29 2019-11-12 苏州浪潮智能科技有限公司 一种Openstack镜像数据并行加速的方法和装置
CN110968399A (zh) * 2019-12-18 2020-04-07 腾讯科技(深圳)有限公司 一种虚拟机重装方法、装置和计算机可读存储介质
CN111045778A (zh) * 2018-10-11 2020-04-21 华为技术有限公司 一种虚拟机的创建方法、装置、服务器及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015127647A1 (zh) * 2014-02-28 2015-09-03 运软网络科技(上海)有限公司 一种基于Ceph的分布式机制的存储虚拟化管理器及系统
CN111045778A (zh) * 2018-10-11 2020-04-21 华为技术有限公司 一种虚拟机的创建方法、装置、服务器及存储介质
CN110442601A (zh) * 2019-06-29 2019-11-12 苏州浪潮智能科技有限公司 一种Openstack镜像数据并行加速的方法和装置
CN110968399A (zh) * 2019-12-18 2020-04-07 腾讯科技(深圳)有限公司 一种虚拟机重装方法、装置和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
虚拟机集群中镜像感知和本地块缓存系统的设计与实现;付建宇;《中国优秀硕士学位论文全文数据库信息科技辑》;20180415(第04期);第I137-16页 *

Also Published As

Publication number Publication date
CN111209090A (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
CN111209090B (zh) 一种云平台中虚拟机的创建方法、组件及服务器
US11301154B2 (en) Distributed storage method and device
AU2015229685B2 (en) Dynamically modifying durability properties for individual data volumes
US11314444B1 (en) Environment-sensitive distributed data management
CN111651305B (zh) 一种虚拟机备份方法、组件及云计算系统
US10187255B2 (en) Centralized configuration data in a distributed file system
CN112565325B (zh) 镜像文件管理方法、装置及系统、计算机设备、存储介质
CN109314721B (zh) 分布式文件系统的多个集群的管理
CN110781214A (zh) 数据库读写方法、装置、计算机设备和存储介质
EP3432132B1 (en) Data storage method and device
CN110784498B (zh) 一种个性化数据容灾方法及装置
CN107580032B (zh) 数据处理方法、装置及设备
CN110830580B (zh) 一种存储数据同步方法及装置
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN112445570A (zh) 一种云平台资源迁移方法及其装置、存储介质
CN109597903A (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN114564339A (zh) 一种磁盘镜像文件跨平台迁移方法及系统
CN112650729B (zh) 一种分布式文件系统的权限管理方法、系统以及存储介质
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
US20190215363A1 (en) Dynamic pool-based tiering for synchronization storage
CN108228842B (zh) Docker镜像库文件存储方法、终端、设备以及存储介质
CN114615263A (zh) 集群在线迁移方法、装置、设备及存储介质
CN113656496A (zh) 数据处理方法及系统
CN108769123B (zh) 一种数据系统及数据处理方法
CN112328571A (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