CN109634718B - 云平台创建镜像的方法及系统 - Google Patents
云平台创建镜像的方法及系统 Download PDFInfo
- Publication number
- CN109634718B CN109634718B CN201811522955.8A CN201811522955A CN109634718B CN 109634718 B CN109634718 B CN 109634718B CN 201811522955 A CN201811522955 A CN 201811522955A CN 109634718 B CN109634718 B CN 109634718B
- Authority
- CN
- China
- Prior art keywords
- back end
- storage
- storage back
- virtual machine
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning 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
本发明提供了一种云平台创建镜像的方法,包括S1、解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端;S2、根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换;S3、使用镜像创建模块将虚拟机系统盘数据导入至Glance镜像所对应的第一存储后端或者第二存储后端中,以创建镜像。通过本申请所揭示的云平台创建镜像的方法及系统,实现了在云平台中创建镜像时由于虚拟机系统盘与Glance镜像所依赖的存储后端不一致时执行跨存储创建镜像的需求,提高了虚拟机镜像的创建效率,进而提高了基于该虚拟机镜像创建虚拟机的创建效率。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种云平台创建镜像的方法及系统。
背景技术
镜像是指冗余的一种类型,为一个磁盘文件在另一个磁盘上存储的完全相同的副本。在云平台中,可基于镜像快速高效地创建虚拟机。目前,创建虚拟机的通常做法是将虚拟机系统盘数据导入到Glance镜像对应的存储后端。该现有技术需要保证虚拟机系统盘的存储后端和Glance镜像的存储后端为同一种存储类型。
例如,虚拟机系统盘数据在Ceph存储后端中,Glance镜像的数据也在Ceph存储后端中;此时虚拟机创建镜像的流程,即是利用rbd命令行把虚拟机系统盘数据内容导入到Glance镜像对应的Ceph存储后端,成为一个独立的镜像。该Glance镜像包含镜像唯一标识码、存储后端类型及镜像文件内容。当一个云平台环境中,存在系统盘存储后端类型不同的各类虚拟机,且Glance镜像也支持多存储后端,这种虚拟机系统盘的存储后端和Glance镜像的存储后端不一致的情况。
随着虚拟化环境规模日益宏大,用户量急剧增多。用户基于不同业务场景需要使用不同类型的存储后端,以充分利用不同存储后端的性能优势,达到资源的最优利用。然而,在现有技术中,如果云平台的存储后端存在不同类型的存储后端时,则无法创建镜像,从而极大地影响了基于该镜像创建虚拟机的效率。
有鉴于此,有必要对现有技术中的当云平台存在多种类型的存储后端的场景中创建镜像的方法予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种云平台创建镜像的方法并基于该方法的月一种云平台创建镜像的系统,用以实现在云平台存在多种不同类型的存储后端的场景中高效创建镜像的方法,并提高虚拟机的创建效率。
为实现上述第一个发明目的,本申请首先提供了一种云平台创建镜像的方法,包括以下步骤:
S1、解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端;
S2、根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换;
当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端作为创建镜像所依赖的存储后端,
当不存在force_store参数时,触发存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端;
S3、使用镜像创建模块将虚拟机系统盘数据导入至Glance镜像所对应的第一存储后端或者第二存储后端中,以创建镜像。
作为本发明的进一步改进,所述存储后端选择逻辑包括以下步骤:
S201:遍历该云平台Glance镜像支持的存储后端列表;
S202:从云平台Glance镜像支持的存储后端列表中选取任意一个存储后端;
S203:判断步骤S202所选取的存储后端的未使用容量是否大于该虚拟机系统盘的大小;
若是,执行步骤S204:将步骤S202所选取的存储后端添加至store_list列表中;
若否,跳转执行步骤S202;
S205:判断Glance镜像支持的存储后端列表是否遍历结束,
若是,执行步骤S206:得到store_list列表;
若否,跳转执行步骤S202;
S207:遍历store_list列表中的存储后端;
S208:从store_list列表中选取任意一个存储后端,计算该存储后端的综合权重值;
S209、判断store_list列表是否遍历结束;
若是,执行步骤S210:比较store_list列表中对应的各个存储后端的综合权重值,选定综合权重最高的存储后端作为最优Glance镜像存储后端;
若否,跳转执行步骤S208。
作为本发明的进一步改进,所述步骤S208中存储后端的综合权重值的计算公式为:(未使用容量/最大容量)×(未使用IOPS/最大IOPS)×(未使用带宽/最大带宽)。
作为本发明的进一步改进,所述步骤S1具体为:获取待创建镜像的虚拟机的uuid,根据所述虚拟机的uuid匹配出对应的计算节点,在计算节点中利用libvirt api读取所述虚拟机对应的xml信息,并对所述xml信息进行解析,确定所述虚拟机系统盘所支持的第一存储后端。
作为本发明的进一步改进,所述步骤S2中待创建的镜像所支持的存储后端包括:本地磁盘、Ceph、FC-SAN或者Cinder。
作为本发明的进一步改进,所述步骤S3还包括:判断第一存储后端与第二存储后端是否为同一类型的存储后端;
若是,通过Glance API将虚拟机系统盘数据导入Glance镜像对应的存储后端中,所述存储后端是第一存储后端和/或第二存储后端,以创建镜像;
若否,选择第一存储后端或者第二存储后端中的一个存储后端所对应的命令行将虚拟机系统盘数据导入虚拟机所属的计算节点中,并配置出一个本地文件;然后通过Glance API将所述本地文件导入另一个存储后端的Glance镜像中,以创建镜像。
为实现上述第二个发明目的,本申请还揭示了一种云平台创建镜像的系统,包括:
存储后端检测模块、存储后端选择模块及镜像创建模块;
所述存储后端检测模块解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端;
所述存储后端选择模块根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换;
当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端作为创建镜像所依赖的存储后端,
当不存在force_store参数时,触发存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端;
使用镜像创建模块将虚拟机系统盘数据导入至Glance镜像所对应的第一存储后端或者第二存储后端中,以创建镜像。
作为本发明的进一步改进,所述待创建的镜像所支持的存储后端包括:本地磁盘、Ceph、FC-SAN或者Cinder。
作为本发明的进一步改进,所述第一存储后端与第二存储后端是同一类型的存储后端。
作为本发明的进一步改进,所述第一存储后端与第二存储后端是不同类型的存储后端。
与现有技术相比,本发明的有益效果是:通过本申请所揭示的云平台创建镜像的方法及系统,实现了在云平台中创建虚拟机时由于虚拟机系统盘与Glance镜像所依赖的存储后端不一致时执行跨存储创建镜像的需求,充分发挥了不同类型的存储后端的性能优势,提高了虚拟机镜像的创建效率,进而提高了基于该虚拟机镜像创建虚拟机的创建效率。
附图说明
图1为本发明云平台创建镜像的方法的整体流程图;
图2为本发明云平台创建镜像的方法中步骤S1与步骤S2的具体流程图;
图3为本发明云平台创建镜像的方法中不存在force_store参数并触发存储后端选择逻辑的具体流程图;
图4为本发明云平台创建镜像的系统在创建虚拟机镜像时虚拟机系统盘与Glance镜像所依赖的存储后端的类型不是同一种类型时,触发存储后端选择逻辑,以在第二存储后端中创建虚拟机镜像的实例;
图5为本发明云平台创建镜像的系统在创建虚拟机镜像时虚拟机系统盘与Glance镜像所依赖的存储后端的类型是同一种类型时,不触发存储后端选择逻辑,以在第一存储后端或者第二存储后端中创建虚拟机镜像的实例;
图6为创建虚拟机镜像所依赖并包含多种不同类型的存储后端的存储装置的示意图;
图7为存储后端选择模块根据存储后端选择逻辑选取Glance镜像最优选的存储后端的示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在本申请中,术语“云主机”与术语“HOST”、“VM”(虚拟机)具等同理解。术语“组件”是运行在云平台中具有独立逻辑运行功能的一个单元。术语“实例”(instance)是程序运行所依赖的对象,其可表现为一个数据、一个指令、一种状态、一种表达或者一种集合等等。术语“标定”可被理解为判定或者认定。在本申请中,所谓“第一”、“第二”的描述仅用于同类型但具有不同含义的技术特征的区分。术语“实例”(instance)是计算机或者系统中的一个状态、一个结果、一个线程、一个操作、能支撑数据库运行的数据库程序或者程序的集合。
本说明书所揭示的多个实施例,解决了虚拟机系统盘的存储后端和Glance镜像的存储后端不一致的情况下,在云平台中创建虚拟机的效率,并能够充分发挥不同类型的存储后端的性能优势,实现跨存储(并具体为克服不同类型的存储后端)创建虚拟机镜像的复杂场景。
实施例一:
参图1至图3及图7所示出的本发明一种云平台创建虚拟机镜像的方法的一种具体实施方式。
本实施例所揭示的一种云平台创建虚拟机镜像的方法所涉及的云平台既包括现有的所有类型的云平台,例如,基于Linux操作系统内核等其他平台所组建的Openstack云平台或者其他类似的开源架构云平台。该云平台中至少包含一个计算节点、一个控制节点与一个网络节点。虚拟机(VM)部署在计算节点中,在启动、创建、修改、部署虚拟机时,为了加快执行效率,业界通常基于镜像快速高效地创建虚拟机。需要说明的是,在本说明书各个实施例中,创建虚拟机(即“VM”)所依赖的镜像的种类包括但不限于如下类型:QCOW、QCOW2、COW、KVM、RAW、VDi、VMDK等。
参图2所示,申请人首先对本实施例所揭示的云平台创建镜像的方法作如下概述,该包括云平台创建镜像的方法包括以下步骤:
首先,执行步骤S1、解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端。需要说明的是,在本申请的各个实例中,云平台100中的计算节点11至计算节点1i(其中,参数“i”取大于或者等于二的正整数)中已经被创建出至少一个虚拟机,例如,如图4中计算节点11中的虚拟机11a,并需要以此虚拟机11a为基础,创建一个或者多个其他虚拟机,以实现多个虚拟机的快速部署。当然,这种部署在本发明中是通过镜像所创建的。
具体的,在本实施例中,在用指令“virt-install”生成虚拟机时会自动的生成一个默认xml格式的配置文件,并挂载至“/etc/libvirt/qemu”目录下,以后需要调整虚拟机参数时可以修改此配置文件,然后使虚拟机生效。在初次建立虚拟机时里面的参数都是根据第一次生成虚拟机的配置所指定的。需要说明的是,在步骤S1执行完毕后,并不确定该第一存储后端一定就是在后续的创建镜像中所依赖的存储空间。
然后,执行步骤S2、根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换;当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端作为创建镜像所依赖的存储后端,当不存在force_store参数时,触发存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端。
最后,执行步骤S3、使用镜像创建模块将虚拟机系统盘数据导入至Glance镜像所对应的第一存储后端或者第二存储后端中,以创建镜像。
参图4与图7所示,该步骤S3还包括子步骤S301至子步骤S305,并具体为如下所示:
判断第一存储后端41与第二存储后端42是否为同一类型的存储后端;
若是,通过Glance API将虚拟机系统盘数据导入Glance镜像对应的存储后端中,所述存储后端是第一存储后端41和/或第二存储后端42,以创建镜像;
若否,选择第一存储后端41或者第二存储后端42中的一个存储后端所对应的命令行将虚拟机系统盘数据导入虚拟机所属的计算节点11中,并配置出一个本地文件;然后通过Glance API将所述本地文件导入另一个存储后端的Glance镜像中,以创建镜像。
需要说明的是,我们以虚拟机的系统盘所依赖的存储后端的类型是ceph时,将ceph作为第一存储后端,如果Glance镜像也存储在以ceph类型的存储后端的实例中时,第一存储后端41与第二存储后端42可以进行互换,且可以将创建的虚拟机镜像仅保存至第一存储后端41中,也可以仅保存在第二存储后端42,或者可以数据分片的形式同时保存在第一存储后端41与第二存储后端42中。如果虚拟机系统盘所依赖的存储后端的类型是fc-san,而Glance镜像所依赖的存储后端是ceph的场景时,则需要执行图7中的步骤S301至步骤S305的操作,以最终实现本发明在跨存储场景中创建虚拟机镜像的需求。需要说明的是,在本申请中,所谓的“跨存储”是指虚拟机系统盘所依赖的存储后端的类型与Glance镜像所依赖的存储后端为不同类型的存储后端而言的。
同时,参图2所示,步骤S1具体为:获取待创建镜像的虚拟机的uuid,根据所述虚拟机的uuid匹配出对应的计算节点,在计算节点中利用libvirt api读取所述虚拟机对应的xml信息,并对所述xml信息进行解析,确定所述虚拟机系统盘所支持的第一存储后端。进一步的,如图2所示,在实施例中,该步骤S1更具体的通过步骤S101~步骤111所实现。
首先,执行步骤S101:上层发起虚拟机创建镜像的请求。其中,“上层”泛指界面,例如UI(User Interface,用户界面)或者可输入命令行的工具,例如PC或者服务器。创建虚拟机一般是从界面或命令行发出请求开始的,两种方式都会借助novaclient向nova-api发出HTTP请求。nova-api暴露了一组RESTful的API,以接受novaclient发出的各种请求(例如POST请求、GET请求等)。nova-api工作结束后会向nova-conductor发起RPC请求,请求创建虚拟机。nova-conductor是nova-compute和数据库之间的桥梁,它可以防止nova-compute直接访问数据库,从而提高对数据库访问的安全性。随着nova-conductor功能的完善,它也接管了nova-compute中一些耗时较长的任务,如build_instances、resize_instance、live_migrate_instance等。
然后,执行步骤S102:传入虚拟机uuid和force_store参数。其中,uuid用于表征需要创建的虚拟机镜像的唯一属性信息。在对云平台100中的计算节点11中的虚拟机11a执行创建虚拟机镜像的操作时,通过传入的force_store参数,以确定是否强制指定Glance镜像所依赖的存储后端的类型。
然后,执行步骤S103:根据虚拟机uuid查询虚拟机11a系统盘的大小和虚拟机所属的计算节点11。
然后,执行步骤S104:在计算节点11中利用libvirt api获取虚拟机11a对应的xml信息。该xml信息是虚拟机11a的资源描述信息。具体的,使用xml信息创建虚拟机的时候需要先把xml的配置完成如下配置:设置虚拟机11a的名称,设置内存大小,虚拟机11a的cpu个数,开启启动项和类型的设置,设置虚拟机cpu的线程和核数,使用宿主机的时间,指定开机关机重启的命令,添加必要的身背,添加磁盘信息,指定为vda,即C盘,配置vnc信息。当该虚拟机11a的类型是KVM(Kernel-based Virtual Machine)时,该虚拟机11a的完整配置就算完成了,将上面的配置保存在一个文件中kvm.xml,执行命令:virsh define kvm.xml。便可直接定义一个虚拟机11a,相对于qemu-kvm的命令,xml更加的通俗易懂,并且方便管理。
然后,执行步骤S105:解析xml信息(即步骤S104中所获得的虚拟机11a对应的xml信息)以获取该虚拟机11a对应系统盘的xml信息。解析xml信息的解析方式为DOM解析、SAX解析、JDOM解析或者DOM4J解析,并进一步优选后两种解析方式,并最优选为JDOM4J解析;因为后两种解析方式不容易造成内存数据的溢出,并能够适应更大的xml文件。JDOM4J解析具有性能优异、灵活性好、功能强大和极端易用的特点,非常适用基于开源架构的云平台。
然后,执行步骤S106:根据磁盘xml信息得到该虚拟机系统盘(即虚拟机11a的系统盘)的第一存储后端。
然后,执行步骤S107:读取Glance底层配置信息,得到该云平台100中Glance镜像支持的存储后端列表。
然后,执行步骤S108:判断是否有force_store参数,若是,则跳转执行下一个判断逻辑,即步骤S109;若否,则跳转执行步骤S200:触发智能算法,选择最优Glance镜像存储后端。该智能算法会基于自存储后端列表中任意选定的一个存储后端的计算节点11的容量使用状态、IOPS及带宽等多种因素进行综合判断,以选出存储后端列表中最适合创建镜像的存储后端。此时,该选储的存储后端的类型与步骤S1中的第一存储后端的类型可以相同,也可以不同。
然后,执行步骤S109:判断force_store参数是否包含在该Glance镜像所支持的存储后端列表中;若是,则跳转执行步骤S110:Glance镜像的第二存储后端与第一存储后端为同一类型的存储后端;若否,则执行步骤S111:报错退出。
于此实例中,第二存储后端与第一存储后端可以是同一对象,也可是同种存储后端类型(例如ceph)所形成的两个逻辑上彼此独立的存储介质,并可以同时位于一个存储装置40中,也可以是位于多个存储装置40中。需要说明的是,在本实施例中,存储装置40仅仅是泛化表示,其可以是位于一个物理地址中的一个物理集群,也可以是位于不同物理地址中的多个物理集群,此时多个物理集群通过网线、互联网、网关、防火墙等网络通信设备组成一个整体并具有存储数据的存储集群。
参图3所示,图3中的步骤201至步骤210共同组成图2中步骤200的运行逻辑。具体的,在本实施例中,存储后端选择逻辑包括以下步骤:
步骤S201:遍历该云平台Glance镜像支持的存储后端列表。
步骤S202:从云平台Glance镜像支持的存储后端列表中选取任意一个存储后端。
步骤S203:判断步骤S202所选取的存储后端的未使用容量是否大于该虚拟机系统盘的大小。
若是,执行步骤S204:将步骤S202所选取的存储后端添加至store_list列表中;
若否,跳转执行步骤S202。
步骤S205:判断Glance镜像支持的存储后端列表是否遍历结束,
若是,执行步骤S206:得到store_list列表;
若否,跳转执行步骤S202。
步骤S207:遍历store_list列表中的存储后端。
步骤S208:从store_list列表中选取任意一个存储后端,计算该存储后端的综合权重值。具体的,在本实施例中,该步骤S208中存储后端的综合权重值的计算公式为:(未使用容量/最大容量)×(未使用IOPS/最大IOPS)×(未使用带宽/最大带宽)。其中,上述“未使用容量”或者“最大容量”等描述参数是指步骤S202中从云平台Glance镜像支持的存储后端列表中选取任意一个存储后端。
步骤S209、判断store_list列表是否遍历结束。
若是,执行步骤S210:比较store_list列表中对应的各个存储后端的综合权重值,选定综合权重最高的存储后端作为最优Glance镜像存储后端;
当存储后端(即存储装置40)中的第一存储后端41与第二存储后端42是不同类型的存储后端时,此时上述最优Glance镜像存储后端为第二存储后端42。
若否,跳转执行步骤S208。
在本实施例中,“store_list列表”是过滤出的未使用容量大小大于虚拟机系统盘容量的存储后端所形成的列表;而前述的“存储后端列表”是计算节点11中所有且不同类型的存储后端所形成的列表。
同时,配合图6所示,在本实施例中,该存储装置40中可形成多种不同类型的存储后端,例如FC-SAN45、本地存储46、Ceph47或者Cinder48等,并不限于上述类型的存储后端,例如,其他类型的对象存储或者其他型的块存储。
实施例二:
参图4至图6所示出的本发明一种云平台创建虚拟机镜像的系统的一种具体实施方式。本实施例所揭示的云平台创建虚拟机镜像的系统依赖实施例一所揭示的一种云平台创建虚拟机镜像的方法而实现。
参图4与图5所示,在本实施例中,一种云平台创建镜像的系统,包括:存储后端检测模块10、存储后端选择模块20及镜像创建模块30。
存储后端检测模块10解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端41。存储后端选择模块20根据传入的force_store参数确定是否调用存储后端选择模块20对待创建的镜像所支持的存储后端进行切换。
当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端41作为创建镜像所依赖的存储后端。
当不存在force_store参数时,触发存储后端选择模块20中运行的存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端42(参图5中虚线双向箭头B所示)。使用镜像创建模块30将虚拟机系统盘数据导入至Glance镜像所对应的第一存储后端41或者第二存储后端42中,以通过镜像创建创建模块30在计算节点11中创建与该虚拟机11a所对应的镜像。
具体的,在本实施例中,待创建的镜像所支持的存储后端包括:本地磁盘、Ceph、FC-SAN或者Cinder。同时,在本实施例中,该第一存储后端41与第二存储后端42是同一类型的存储后端。当然,该第一存储后端41与第二存储后端42是不同类型的存储后端。同时,本实施例中的存储后端选择逻辑运行于存储后端选择模块20中,且具体实现过程请参实施例一所述,在此不再赘述。
存储后端检测模块10获取待创建镜像的虚拟机的uuid,根据所述虚拟机的uuid匹配出对应的计算节点,在计算节点11中利用libvirt api读取所述虚拟机11a对应的xml信息,并对所述xml信息进行解析,确定所述虚拟机系统盘所支持的第一存储后端41(参图4或者图5中虚线双向箭头A所示)。
本实施例与实施例一中相同部分的技术方案请参实施例一所述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (10)
1.一种云平台创建镜像的方法,其特征在于,包括以下步骤:
S1、解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端;
S2、根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换,并通过存储后端选择模块对待创建的镜像所支持的存储后端进行切换;
当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端作为创建镜像所依赖的存储后端,
当不存在force_store参数时,触发存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端;
S3、当第一存储后端与第二存储后端为不同类型的存储后端时,使用镜像创建模块选择第一存储后端或者第二存储后端中的一个存储后端所对应的命令行将虚拟机系统盘数据导入虚拟机所属的计算节点中,并配置出一个本地文件,然后通过Glance API将所述本地文件导入另一个存储后端的Glance镜像中,以创建镜像。
2.根据权利要求1所述的方法,其特征在于,所述存储后端选择逻辑包括以下步骤:
S201:遍历该云平台Glance镜像支持的存储后端列表;
S202:从云平台Glance镜像支持的存储后端列表中选取任意一个存储后端;
S203:判断步骤S202所选取的存储后端的未使用容量是否大于该虚拟机系统盘的大小;
若是,执行步骤S204:将步骤S202所选取的存储后端添加至store_list列表中;
若否,跳转执行步骤S202;
S205:判断Glance镜像支持的存储后端列表是否遍历结束,
若是,执行步骤S206:得到store_list列表;
若否,跳转执行步骤S202;
S207:遍历store_list列表中的存储后端;
S208:从store_list列表中选取任意一个存储后端,计算该存储后端的综合权重值;
S209、判断store_list列表是否遍历结束;
若是,执行步骤S210:比较store_list列表中对应的各个存储后端的综合权重值,选定综合权重最高的存储后端作为最优Glance镜像存储后端;
若否,跳转执行步骤S208。
3.根据权利要求2所述的方法,其特征在于,所述步骤S208中存储后端的综合权重值的计算公式为:(未使用容量/最大容量)×(未使用IOPS/最大IOPS)×(未使用带宽/最大带宽)。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1具体为:获取待创建镜像的虚拟机的uuid,根据所述虚拟机的uuid匹配出对应的计算节点,在计算节点中利用libvirtapi读取所述虚拟机对应的xml信息,并对所述xml信息进行解析,确定所述虚拟机系统盘所支持的第一存储后端。
5.根据权利要求1所述的方法,其特征在于,所述步骤S2中待创建的镜像所支持的存储后端包括:本地磁盘、Ceph、FC-SAN或者Cinder。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:判断第一存储后端与第二存储后端是否为同一类型的存储后端;
若是,通过Glance API将虚拟机系统盘数据导入Glance镜像对应的存储后端中,所述存储后端是第一存储后端和/或第二存储后端,以创建镜像;
若否,选择第一存储后端或者第二存储后端中的一个存储后端所对应的命令行将虚拟机系统盘数据导入虚拟机所属的计算节点中,并配置出一个本地文件;然后通过GlanceAPI将所述本地文件导入另一个存储后端的Glance镜像中,以创建镜像。
7.一种云平台创建镜像的系统,其特征在于,包括:
存储后端检测模块(10)、存储后端选择模块(20)及镜像创建模块(30);
所述存储后端检测模块(10)解析待创建镜像的虚拟机的xml信息,确定所述虚拟机系统盘所支持的第一存储后端;
所述存储后端选择模块(20)根据传入的force_store参数确定是否调用存储后端选择模块对待创建的镜像所支持的存储后端进行切换;
当存在force_store参数且所述force_store参数包含在Glance镜像所支持的存储后端列表中时,将第一存储后端作为创建镜像所依赖的存储后端,
当不存在force_store参数时,触发存储后端选择逻辑,选取通过所述存储后端选择逻辑所选定的第二存储后端;
当第一存储后端与第二存储后端为不同类型的存储后端时,使用镜像创建模块(30)选择第一存储后端或者第二存储后端中的一个存储后端所对应的命令行将虚拟机系统盘数据导入虚拟机所属的计算节点中,并配置出一个本地文件,然后通过Glance API将所述本地文件导入另一个存储后端的Glance镜像中,以创建镜像。
8.根据权利要求7所述的系统,其特征在于,所述待创建的镜像所支持的存储后端包括:本地磁盘、Ceph、FC-SAN或者Cinder。
9.根据权利要求7或者8所述的系统,其特征在于,所述第一存储后端与第二存储后端是同一类型的存储后端。
10.根据权利要求7或者8所述的系统,其特征在于,所述第一存储后端与第二存储后端是不同类型的存储后端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522955.8A CN109634718B (zh) | 2018-12-13 | 2018-12-13 | 云平台创建镜像的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811522955.8A CN109634718B (zh) | 2018-12-13 | 2018-12-13 | 云平台创建镜像的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634718A CN109634718A (zh) | 2019-04-16 |
CN109634718B true CN109634718B (zh) | 2020-03-31 |
Family
ID=66073398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811522955.8A Active CN109634718B (zh) | 2018-12-13 | 2018-12-13 | 云平台创建镜像的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634718B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262829A (zh) * | 2019-05-17 | 2019-09-20 | 平安科技(深圳)有限公司 | 私有镜像生成方法、装置、计算机设备及存储介质 |
CN110377394A (zh) * | 2019-06-28 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种虚拟机的创建方法和装置 |
CN111090498B (zh) * | 2019-12-13 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 虚拟机启动方法、装置、计算机可读存储介质及电子设备 |
CN111274053A (zh) * | 2020-01-20 | 2020-06-12 | 山东汇贸电子口岸有限公司 | 一种通过nova调用qemu guest agent接口的方法 |
CN111949378B (zh) * | 2020-08-28 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 虚拟机启动模式切换方法和装置、存储介质及电子设备 |
CN112162702B (zh) * | 2020-09-25 | 2024-05-31 | 科大讯飞股份有限公司 | 分布式存储系统、虚拟机创建和数据卷扩容方法 |
CN112463170B (zh) * | 2020-10-29 | 2022-08-23 | 苏州浪潮智能科技有限公司 | 云平台上制作镜像的方法、装置、设备及存储介质 |
CN112328429A (zh) * | 2020-10-30 | 2021-02-05 | 苏州浪潮智能科技有限公司 | 一种基于Openstack的硬盘快照方法和装置 |
CN112799602B (zh) * | 2021-02-24 | 2023-03-28 | 浪潮云信息技术股份公司 | 一种云硬盘在线扩容方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205143A (zh) * | 2015-09-18 | 2015-12-30 | 杭州华为数字技术有限公司 | 一种文件存储及处理方法、设备和系统 |
CN107124473A (zh) * | 2017-06-26 | 2017-09-01 | 网宿科技股份有限公司 | 云平台的构建方法及云平台 |
CN107197022A (zh) * | 2017-06-02 | 2017-09-22 | 华南理工大学 | OpenStack存储优化方法及系统 |
CN107438102A (zh) * | 2017-07-31 | 2017-12-05 | 国云科技股份有限公司 | 一种云平台镜像制作系统及其方法 |
CN107888695A (zh) * | 2017-11-23 | 2018-04-06 | 新华三云计算技术有限公司 | 云平台创建镜像的方法和云平台设备 |
CN108234587A (zh) * | 2016-12-22 | 2018-06-29 | 航天信息股份有限公司 | 一种基于OpenStack多region镜像资源共享的方法 |
-
2018
- 2018-12-13 CN CN201811522955.8A patent/CN109634718B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205143A (zh) * | 2015-09-18 | 2015-12-30 | 杭州华为数字技术有限公司 | 一种文件存储及处理方法、设备和系统 |
CN108234587A (zh) * | 2016-12-22 | 2018-06-29 | 航天信息股份有限公司 | 一种基于OpenStack多region镜像资源共享的方法 |
CN107197022A (zh) * | 2017-06-02 | 2017-09-22 | 华南理工大学 | OpenStack存储优化方法及系统 |
CN107124473A (zh) * | 2017-06-26 | 2017-09-01 | 网宿科技股份有限公司 | 云平台的构建方法及云平台 |
CN107438102A (zh) * | 2017-07-31 | 2017-12-05 | 国云科技股份有限公司 | 一种云平台镜像制作系统及其方法 |
CN107888695A (zh) * | 2017-11-23 | 2018-04-06 | 新华三云计算技术有限公司 | 云平台创建镜像的方法和云平台设备 |
Non-Patent Citations (2)
Title |
---|
nova虚拟机镜像从创建到文件系统resize完整流程;sail18;《https://www.cnblogs.com/ltxdzh/p/6910109.html》;20170526;第1-3页 * |
支持不同存储方式的OpenStack云平台设计与实现;冯伟斌等;《电信科学》;20160420;第32卷(第4期);第143-144页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109634718A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634718B (zh) | 云平台创建镜像的方法及系统 | |
US11204793B2 (en) | Determining an optimal computing environment for running an image | |
US10637796B2 (en) | Linking instances within a cloud computing environment | |
RU2615316C2 (ru) | СПОСОБ, УСТРОЙСТВО И СИСТЕМА ВХОДА В Unix-ПОДОБНЫЙ ВИРТУАЛЬНЫЙ КОНТЕЙНЕР | |
CN101650660B (zh) | 从中央存储装置引导计算机系统 | |
US10719505B2 (en) | Database server system monitoring | |
US20160197995A1 (en) | Providing storage service to tenant in cloud storage environment | |
US11403146B2 (en) | Method, apparatus, and server for managing image across cloud servers | |
US7539854B2 (en) | System and method to seamlessly enable enhanced management and scripting of a computer system and its add-in devices | |
US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
CN110781505B (zh) | 系统构建方法及装置、检索方法及装置、介质和设备 | |
CN106803794B (zh) | 一种用于主机的kvm虚拟机网卡直通方法及其装置 | |
US10565202B2 (en) | Data write/import performance in a database through distributed memory | |
US20210389957A1 (en) | Managing boot device orders for computing devices | |
CN114726657B (zh) | 中断管理和数据收发管理的方法、装置及智能网卡 | |
US20200065077A1 (en) | Identifying software and hardware bottlenecks | |
US11438398B2 (en) | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination | |
CN114780228A (zh) | 一种混合云资源创建方法及系统 | |
US20220091866A1 (en) | Containerized software discovery and identification | |
US10523591B2 (en) | Discovering resource availability across regions | |
WO2024140900A1 (zh) | 一种虚拟机的加速启动方法及其相关设备 | |
US20240126778A1 (en) | Large object data replication | |
WO2023078235A1 (en) | File based virtual disk management | |
CN117631994A (zh) | 卷在线迁移方法、装置、电子设备及可读存储介质 | |
CN112947846A (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee after: Huayun data holding group Co., Ltd Address before: 214000, science and software park, Binhu District, Jiangsu, Wuxi 6 Patentee before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |