CN112559127A - 虚拟机创建方法、装置、主机及存储介质 - Google Patents
虚拟机创建方法、装置、主机及存储介质 Download PDFInfo
- Publication number
- CN112559127A CN112559127A CN202011478179.3A CN202011478179A CN112559127A CN 112559127 A CN112559127 A CN 112559127A CN 202011478179 A CN202011478179 A CN 202011478179A CN 112559127 A CN112559127 A CN 112559127A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- creating
- creation
- host
- parameters
- 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.)
- Granted
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及虚拟机技术领域,提供了一种虚拟机创建方法、装置、主机及存储介质,应用于kubernetes单机集群中的主机,所述方法包括:接收用于创建虚拟机的创建请求,其中,创建请求包括创建参数;基于创建请求,在主机的预设存储空间创建持久化卷PV;依据PV和创建参数创建虚拟机。相对于现有技术,本发明提供的在kubernetes单机集群中的主机的本地预设存储空间创建虚拟机的实现方式,使得用户只需要输入待创建虚拟机的创建参数,即可使用该方式自动创建出虚拟机,有效降低了此场景下创建虚拟机的难度。
Description
技术领域
本发明涉及虚拟机技术领域,具体而言,涉及一种虚拟机创建方法、装置、主机及存储介质。
背景技术
随着云计算技术的发展,kubernetes支持集群扩展调度虚拟机资源,以扩展已依赖基于虚拟机工作负载的团队有能力迅速容器化应用并无缝利用kubernetes虚拟化资源。
kubevirt是一个开源的实现以容器方式运行虚拟机的kubernetes的插件,能够以k8s add-on方式,创建虚拟机资源以及运用kubernetes的相关功能纳管虚拟机资源。
现有技术虽然可以利用kubevirt在kubernetes集群中创建虚拟机,但是,创建虚拟机需要依赖分布式存储方式的存储资源池,对于kubernetes单机集群的应用场景,由于单机上通常不会存在分布式存储方式的存储资源池,只有本地存储池,当前该场景下创建虚拟机的方式需要用户更深入了解相关技术,因而存在较高的技术门槛,实现起来比较复杂。
发明内容
本发明的目的在于提供了一种虚拟机创建方法、装置、主机及存储介质,其能够简单、快捷地基于kubernetes单机集群中的主机的本地预设存储空间创建虚拟机。
为了实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供一种虚拟机创建方法,应用于kubernetes单机集群中的主机,所述方法包括:接收用于创建虚拟机的创建请求,其中,所述创建请求包括创建参数;基于所述创建请求,在所述主机的预设存储空间创建持久化卷PV;依据所述PV和所述创建参数创建所述虚拟机。
第二方面,本发明提供一种虚拟机创建装置,应用于kubernetes单机集群中的主机,所述装置包括:接收模块,用于接收用于创建虚拟机的创建请求,其中,所述创建请求包括创建参数;第一创建模块,用于基于所述创建请求,在所述主机的预设存储空间创建持久化卷PV;第二创建模块,用于依据所述PV和所述创建参数创建所述虚拟机。
第三方面,本发明提供一种主机,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的虚拟机创建方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的虚拟机创建方法。
相对于现有技术,本发明基于创建请求,在kubernetes单机集群中的主机的预设存储空间创建持久化卷PV(PersistentVolume,PV),依据PV和创建请求中的创建参数创建虚拟机,从而提供了一种在kubernetes单机集群中的主机的本地预设存储空间创建虚拟机的实现方式,用户只需要输入待创建虚拟机的创建参数,即可使用该方式自动创建虚拟机,有效降低了此场景下创建虚拟机的难度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的架构框图的示意图。
图2示出了本发明实施例提供的一种虚拟机创建方法的流程图。
图3示出了本发明实施例提供的另一种虚拟机创建方法的流程图。
图4示出了本发明实施例提供的另一种虚拟机创建方法的流程图。
图5示出了本发明实施例提供的虚拟机创建装置的方框示意图。
图6示出了本发明实施例提供的主机的方框示意图。
图标:10-主机;11-处理器;12-存储器;13-总线;14-通信接口;100-虚拟机创建装置;110-接收模块;120-第一创建模块;130-第二创建模块;140-清理模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了在kubernetes集群中创建和管理虚拟机,kubevirt作为一个开源的实现以容器方式运行虚拟机的kubernetes的插件提供管理虚拟机的功能,kubevirt主要实现了下面几种资源,以实现对虚拟机的管理:
VirtualMachineInstance(VMI):类似于kubernetes Pod,是管理虚拟机的最小资源。一个VirtualMachineInstance对象即表示一台正在运行的虚拟机实例,包含一个虚拟机所需要的各种配置。
VirtualMachine(VM):为群集内的VirtualMachineInstance提供管理功能,例如开机/关机/重启虚拟机,确保虚拟机实例的启动状态,与虚拟机实例是1:1的关系。
VirtualMachineInstanceReplicaSet:可以启动指定数量的VirtualMachineInstance,并且保证指定数量的VirtualMachineInstance运行,可以配置HPA。
virt-api:负责提供一些kubevirt特有的api,像是console,vnc,startvm,stopvm等。
virt-controller:管理和监控VMI对象及其关联的Pod,对其状态进行更新。
virt-hander:以DaemonSet运行在每一个节点上,监听VMI的状态向上汇报,管理VMI的生命周期。
virt-launcher:以Pod方式运行,每个VMI Object都会对应一个virt-launcherPod,容器内有单独的libvirtd,用于启动和管理虚拟机。
kubernetes单机集群,顾名思义,在此场景下,kubernetes集群中只包括一个主机,该集群通常应用在微云平台中,以尽量降低所需要硬件资源。
基于kubernetes单机集群中的主机的本地存储空间创建虚拟机时,最重要的是为待创建虚拟机创建系统盘,kubevirt作为一个开源的实现以容器方式运行虚拟机的kubernetes的插件,提供了多种存储方式,其中包括registryDisk方式和持久化卷声明PVC(PersistentVolumeClaim,PVC)方式,前者为非持久化存储方式,即虚拟机的系统盘的生命周期依赖于对应的虚拟机pod的生命周期结束后,或者主机重启或者出现故障后其中存储的数据会丢失,因而不适合以此方式创建系统盘,后者是一种持久化存储方式,可以采用此方式创建系统盘,但是由于PVC是基于PV的,采用此方式创建系统盘时,用户需要了解PV和PVC的工作原理、PV和PVC的使用方法,PVC的挂载到kubevirt提供的virt-launcherpod的方法等相关的技术,由此给用户造成了极大地技术障碍,降低了此场景下虚拟机创建的效率。
有鉴于此,本发明实施例提供一种虚拟机创建方法、装置、主机及存储介质,实现了基于kubernetes单机集群中的主机的本地预设存储空间创建虚拟机,用户只需要输入待创建虚拟机的创建参数,使用该方法即可简单、快捷地在kubernetes单机集群场景中创建虚拟机。下面将对其进行详细描述。
请参考图1,图1示出了本发明实施例提供的架构框图的示意图,图1中,用户输入创建虚拟机的创建请求,创建请求包括创建参数,创建参数可以包括虚拟机的磁盘空间大小,虚拟机所属的本地存储路径,镜像文件参数等。
校验模块用于对创建参数进行合法性检查,例如,磁盘空间大小是否足够,虚拟机所属的本地存储路径是否存在等。
镜像管理模块用于管理虚拟机创建的系统镜像文件,并记录虚拟机镜像名称、镜像路径、系统最小内存阈值、系统最小CPU阈值、系统最小系统盘大小阈值。
存储池管理模块用于生成虚拟机需要的系统盘和数据盘。存储池管理模块从kubernetes单机集群中的主机的本地存储池的预设存储空间中申请存储资源。存储池管理模块包括hostpath pv创建模块、dv创建模块及hostdisk创建模块,其中,hostpath pv创建模块和dv创建模块用于生成虚拟机需要的系统盘,hostdisk创建模块用于生成虚拟机需要的数据盘。
hostpath pv创建模块用于创建基于本地存储路径的hostpath pv卷,hostpathpv卷设置虚拟机标签lable,该标签用于绑定到指定的数据卷DV(Data Volume,dv),由于通过DV创建虚拟机系统盘需要创建两个PV,其中一个PV是用于一个虚拟机是创建虚拟机创建时存储qcow2转换为raw时的临时存储空间scratch space,转换完成后随机被释放,另一个PV为虚拟机正常使用时提供存储空间。
dv创建模块用于创建数据卷DV,创建数据卷时选择上述hostpath pv模块创建的PV的虚拟机lable,PV的回收策略设置为Retain,用于表征PV不会自动释放。创建PV时还可以指定生成StorageClass,StorageCalss并为该StorageClass指定标识,StorageCalss是kubernetes提供的存储类,调用创建PV的函数创建PV时可以通过配置该函数的storageClassName参数指定一个存储类StorageClass资源,具有特定StorageClass的PV只能与指定相同的StorageClass的PVC进行绑定,未设置StorageClass的PV只能与未指定StorageClass的PVC进行绑定,例如,将该StorageClass的标识指定为hostpathtest,则创建DV时指定StorageClass为hostpathtest。
生成虚拟机所需要的系统盘和数据盘后,将虚拟机的创建参数、系统盘的访问路径和数据盘的访问路径作为创建虚拟机函数的入参,调用创建虚拟机函数创建虚拟机,图1中示出了两种创建虚拟机的方式,一种是使用kubevirt提供的创建虚拟机的api函数,一种是使用kubernetes提供的创建虚拟机的api函数服务,使用前者时,需要从镜像管理模块拉取虚拟机所需要的系统镜像,以便于创建虚拟机时根据系统镜像在系统盘安装对应的操作系统。
虚拟机监听模块用于监听虚拟机的状态变动,并实现PV的清理。其中,虚拟机的状态变动可以是从创建中变为创建完成,也可以是从正常使用变为待删除。由于PV的资源来自于主机的本地存储池,则将PV清理后,PV占用的资源会归还之本地存储池。
下面将对图1中涉及到的主要流程进行详细描述。
请参照图2,图2示出了本发明实施例提供的一种虚拟机创建方法的流程图,该方法包括以下步骤:
步骤S100,接收用于创建虚拟机的创建请求,其中,创建请求包括创建参数。
在本实施例中,创建参数包括、但不限于虚拟机的内存空间大小、系统盘空间大小等。
步骤S110,基于创建请求,在主机的预设存储空间创建持久化卷PV。
在本实施例中,主机的预设存储空间可以是主机的本地存储池中的预设空间,例如,在主机的预设硬盘中创建VirtualM目录,将该目录作为主机的预设存储空间。
在本实施例中,为了使虚拟机容器可以使用主机本地的高速文件系统进行存储,可以采用hostPath类型的PV。
在本实施例中,在kubernetes集群中,采用分布式存储方式时,PV是对底层的共享存储的一种抽象,PV由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接。在kubernetes单机集群,采用本地存储方式时,PV是对主机的本地存储的一种抽象。
步骤S120,依据PV和创建参数创建虚拟机。
在本实施例中,可以根据PV生成虚拟机的系统盘,再根据系统盘的访问地址和创建参数,创建满足创建需求的虚拟机。作为一种实施方式,可以根据PV创建PVC,再根据PVC生成虚拟机的系统盘,也可以根据PV创建DV,再通过DV创建PVC,最终生成虚拟机的系统盘。
本发明实施例提供的上述方法,基于创建请求,在kubernetes单机集群中的主机的预设存储空间创建PV,依据PV和创建请求中的创建参数创建虚拟机,从而提供了一种在kubernetes单机集群中的主机的本地预设存储空间创建虚拟机的实现方式,用户只需要输入待创建虚拟机的创建参数,即可使用该方式自动创建出虚拟机,有效降低了此场景下创建虚拟机的难度,同时,拥有良好的扩展性,可充分利用本地存储空间,且可以增加外挂存储盘的方式扩展存储池。
基于图2,本发明实施例还提供了一种创建虚拟机的具体实施方式,请参照图3,图3示出了本发明实施例提供的另一种虚拟机创建方法的流程图,步骤S120包括以下子步骤:
子步骤S1201,依据PV的标签,基于PV创建与虚拟机关联的数据卷DV。
在本实施例中,为PV设置一个标签,该标签用于表征与PV关联的虚拟机,作为一种具体实现方式,可以采用虚拟机的标识作为标签。
在本实施例中,创建PV时还可以指定生成StorageClass,StorageCalss并为该StorageClass指定标识,例如,将该StorageClass的标识指定为hostpathtest,则创建DV时指定StorageClass为hostpathtest。
在本实施例中,DV提供在虚拟机启动流程中自动将虚拟机系统盘导入PVC的功能,在不使用DV的情况下,用户必须先准备带有系统盘映像的PVC,然后再将其分配给VM或VMI。采用DV后,DV可以直接根据预设路径拉取系统镜像,系统镜像的来源可以是http、对象存储、或者另一PVC等。利用DV可以大大简化生成系统盘的流程。
子步骤S1202,通过DV,依据PV生成虚拟机的系统盘。
在本实施例中,作为一种具体实现方式,通过DV生成虚拟机的系统盘的方法可以是:
首先,通过DV,创建与PV对应的持久卷声明PVC。
在本实施例中,PVC是用户存储的一种声明,PVC消耗的是PV资源,PVC可以请求特定的存储空间和访问模式。对于真正使用存储的用户不需要关心底层的存储实现细节,只需要直接使用PVC即可。
由于使用了PVC做为后端存储,可以做到数据持久化,即在虚拟机重启或者重建后数据依旧存在。使用的PV类型可以是block和filesystem,使用filesystem时,会使用PVC上的/disk.img,格式为RAW格式的文件作为硬盘。block模式时,使用block volume直接作为原始块设备提供给虚拟机。
其次,通过DV,将预先存储于主机的虚拟机的系统镜像文件导入至PVC。
在本实施例中,系统镜像文件对应虚拟机的操作系统,例如,虚拟机的操作系统为linux,则采用linux的系统镜像文件,虚拟机的操作系统为windows,则采用windows的系统镜像文件。
在本实施例中,创建DV时可以定义系统镜像文件image/data的来源,该来源可以是http或s3的URL,或者是docker镜像仓地址,CDI(Containerized Data Importer,CDI)controller会将自动将image转化并拷贝到PVC文件系统/disk/,CDIcontroller项目提供了用于使PVC作为KubeVirt虚拟机磁盘的功能。
最后,通过DV,将PVC挂载至主机预先创建的pod,并将挂载后的PVC作为虚拟机的系统盘,以根据系统镜像文件在系统盘安装虚拟机的操作系统。
在本实施例中,预先创建的pod为kubevirt提供的virt-launcherpod,用于启动和管理虚拟机。
子步骤S1203,基于创建参数及系统盘,调用预设函数创建虚拟机。
在本实施例中,预设函数可以是kubevirt提供的创建虚拟机的api函数,也可以是kubernetes提供的创建虚拟机服务的api函数。
在本实施例中,作为一种具体实施方式,创建虚拟机的方法可以是:
首先,获取用于访问系统盘的访问地址。
在本实施例中,访问系统盘的访问地址可以是系统盘的存储空间的路径。
其次,根据创建参数及访问地址,生成预设格式的虚拟机模板。
在本实施例中,预设格式可以是预设函数要求的输入参数的格式,将创建参数及访问地址按照预设格式进行组织后,得到虚拟机模板。
最后,以虚拟机模板作为预设函数的输入参数,调用预设函数创建虚拟机。
需要说明的是,虚拟机模板中除了包括创建参数及系统盘的访问地址,还可以包括虚拟机的数据盘的访问地址,虚拟机的数据盘用于存储除了虚拟机系统数据之外的其他数据,例如,用户使用虚拟机时,在该虚拟机创建的文本文件等。此时,需要根据创建参数、系统盘的访问地址及数据盘的访问地址,生成预设格式的虚拟机模板。虚拟机的数据盘可以在创建虚拟机之前新创建,创建时指定存储类型、容量及存储路径即可,也可以指定已存在的数据盘的路径,对于后者而言,则该已经存在的数据盘中的旧数据可以继续使用。
本发明实施例提供的上述方法,通过DV,依据PV生成虚拟机的系统盘,再基于创建参数和系统盘,调用预设函数创建虚拟机,利用DV可以直接根据预设路径拉取系统镜像,减少了需要预先准备/disk.img格式的文件并放置于规定路径下的操作,因而大大简化生成系统盘的流程。
在本实施例中,为了及时将不再使用的PV进行清理,以免造成资源的浪费,本发明实施例还提供了一种清理PV的实现方法,请参照图4,图4示出了本发明实施例提供的另一种虚拟机创建方法的流程图,该方法还包括以下步骤:
步骤S130,若检测到虚拟机的状态发生变化,则清理PV。
在本实施例中,PV包括创建虚拟机时为文件格式转换提供临时存储空间的第一PV和为所述虚拟机提供正常存储空间的第二PV,第一PV只在创建虚拟机的过程中使用,第二PV在整个虚拟机的生命周期中使用,第一PV的状态不会设置为绑定状态,第二PV的状态会设置为绑定(bound)状态。
在本实施例中,创建DV时,除了指定PV之外,还需要设置PV的回收策略为Retain,用于表征该PV不需要kubevirt提供的组件自动删除,而是由使用者在确认不需要的时候自行删除,由此可以保证虚拟机上的数据不会因PV的自动删除而被误删。
在本实施例中,作为通过DV生成虚拟机的系统盘的实现方式,需要预先创建两个PV,DV会根据这两个PV创建两个PVC,将两个PVC随机分配给scratch pvc及实际的rootdisk pvc,前者对应的PV为第一PV,后者对应的PV为第二PV,作为一种具体实现方式,PV命名时可以-0/-1区分,例如PV-0和PV-1。
虚拟机的状态发生变化可以是:从创建中变化为创建完毕,也可以是从其他状态化为待删除,例如,从正常状态变化为待删除,不同的状态变化清理PV的操作也会有所不同,因此,清理PV可以包括以下两种方式中的至少一种:
(1)若虚拟机的状态从创建中变化为创建完毕,则将第一PV删除。
在本实施例中,第一PV用于创建虚拟机时存储qcow2转换为raw的临时存储空间,该临时存储空间也称为scratch space,在虚拟机创建完毕后,第一PV就不再被使用,因此,为了避免空间浪费,此时可以将第一PV删除,意味着,第一PV对应的存储空间释放给主机的本地存储空间。
在本实施例中,作为一种具体实现方式,可以将标签与虚拟机的标识一致、且状态为非绑定状态的PV删除。
(2)若虚拟机的状态变化为待删除,则将虚拟机和第二PV均删除。
在本实施例中,当虚拟机被删除时,虚拟机的状态变换为待删除,此时为了将虚拟机占用的存储资源即使进行释放,将虚拟机和第二PV均删除,删除虚拟机包括删除虚拟机占用的主机上的预设存储空间。例如,预设存储空间为/virtualM目录,则最后需要将该目录也删除。
在本实施例中,作为一种具体实现方式,可以通过PV的标签确定待删除虚拟机对应的第二PV。
本发明实施例提供的上述方法,在虚拟机的状态发生变化时,可以将不再使用的虚拟机对应的资源自动及时进行清理,避免了存储资源的浪费。
为了执行上述虚拟机创建方法的实施例及各个可能的实施方式中的相应步骤,下面给出一种虚拟机创建装置100的实现方式。请参照图5,图5示出了本发明实施例提供的虚拟机创建装置100的方框示意图。需要说明的是,本实施例所提供的虚拟机创建装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
虚拟机创建装置100包括接收模块110、第一创建模块120、第二创建模块130及清理模块140。
接收模块110,用于:接收用于创建虚拟机的创建请求,其中,创建请求包括创建参数。
在本实施例中,接收模块110可以对应于图1中的参数校验模块,参数校验模块接收创建请求,并对创建请求中的创建参数进行校验。
第一创建模块120,用于:基于创建请求,在主机的预设存储空间创建持久化卷PV。
在本实施例中,第一创建模块120可以对应与图1中的hostpathpv创建模块。
第二创建模块130,用于:依据PV和创建参数创建虚拟机。
在本实施例中,第二创建模块130可以对应与图1中的dv创建模块和虚拟机创建模块。
作为一种具体实施方式,PV设置有标签,标签用于表征与PV关联的虚拟机,第二创建模块130具体用于:依据PV的标签,基于PV创建与虚拟机关联的数据卷DV;通过DV,依据PV生成虚拟机的系统盘;基于创建参数及系统盘,调用预设函数创建虚拟机。
作为一种具体实施方式,第二创建模块130在用于通过DV,依据PV生成虚拟机的系统盘时,具体用于:通过DV,创建与PV对应的持久卷声明PVC;通过DV,将预先存储于主机的虚拟机的系统镜像文件导入至PVC;通过DV,将PVC挂载至主机预先创建的pod,并将挂载后的PVC作为虚拟机的系统盘,以根据系统镜像文件在系统盘安装虚拟机的操作系统。
作为一种具体实施方式,第二创建模块130具体用于:获取用于访问系统盘的访问地址;根据创建参数及访问地址,生成预设格式的虚拟机模板;以虚拟机模板作为预设函数的输入参数,调用预设函数创建虚拟机。
清理模块140,用于:若检测到虚拟机的状态发生变化,则清理PV。
在本实施例中,清理模块140可以对应于图1中的虚拟机监听模块。
作为一种具体实施方式,PV包括创建虚拟机时为文件格式转换提供临时存储空间的第一PV,清理模块140具体用于:若虚拟机的状态从创建中变化为创建完毕,则将第一PV删除。
作为一种具体实施方式,PV还包括为虚拟机提供正常存储空间的第二PV,清理模块140具体用于:若虚拟机的状态变化为待删除,则将虚拟机和第二PV均删除。
请参照图6,图6示出了本发明实施例提供的主机10的方框示意图,主机10可以是实体的计算机设备,服务器等。主机10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接,处理器11通过通信接口14与外部设备通信。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如图5中的虚拟机创建装置100,虚拟机创建装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明实施例中的虚拟机创建方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图6仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的虚拟机创建方法。
综上所述,本发明实施例提供了一种虚拟机创建方法、装置、主机及存储介质,应用于kubernetes单机集群中的主机,所述方法包括:接收用于创建虚拟机的创建请求,其中,创建请求包括创建参数;基于创建请求,在主机的预设存储空间创建持久化卷PV;依据PV和创建参数创建虚拟机。相对于现有技术,本发明实施例基于创建请求,在kubernetes单机集群中的主机的预设存储空间创建持久化卷PV(PersistentVolume,PV),依据PV和创建请求中的创建参数创建虚拟机,从而提供了一种在kubernetes单机集群中的主机的本地预设存储空间创建虚拟机的实现方式,用户只需要输入待创建虚拟机的创建参数,即可使用该方式自动创建出虚拟机,有效降低了此场景下创建虚拟机的难度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种虚拟机创建方法,其特征在于,应用于kubernetes单机集群中的主机,所述方法包括:
接收用于创建虚拟机的创建请求,其中,所述创建请求包括创建参数;
基于所述创建请求,在所述主机的预设存储空间创建持久化卷PV;
依据所述PV和所述创建参数创建所述虚拟机。
2.如权利要求1所述的虚拟机创建方法,其特征在于,所述PV设置有标签,所述标签用于表征与所述PV关联的所述虚拟机,所述依据所述PV和所述创建参数创建所述虚拟机的步骤包括:
依据所述PV的标签,基于所述PV创建与所述虚拟机关联的数据卷DV;
通过所述DV,依据所述PV生成所述虚拟机的系统盘;
基于所述创建参数及所述系统盘,调用预设函数创建所述虚拟机。
3.如权利要求2所述的虚拟机创建方法,其特征在于,所述通过所述DV,依据所述PV生成所述虚拟机的系统盘的步骤包括:
通过所述DV,创建与所述PV对应的持久卷声明PVC;
通过所述DV,将预先存储于所述主机的所述虚拟机的系统镜像文件导入至所述PVC;
通过所述DV,将所述PVC挂载至所述主机预先创建的pod,并将挂载后的PVC作为所述虚拟机的系统盘,以根据所述系统镜像文件在所述系统盘安装所述虚拟机的操作系统。
4.如权利要求2所述的虚拟机创建方法,其特征在于,所述基于所述创建参数及所述系统盘,调用预设函数创建所述虚拟机的步骤包括:
获取用于访问所述系统盘的访问地址;
根据所述创建参数及所述访问地址,生成预设格式的虚拟机模板;
以所述虚拟机模板作为所述预设函数的输入参数,调用所述预设函数创建所述虚拟机。
5.如权利要求1所述的虚拟机创建方法,其特征在于,所述方法还包括:
若检测到所述虚拟机的状态发生变化,则清理所述PV。
6.如权利要求5所述的虚拟机创建方法,其特征在于,所述PV包括创建所述虚拟机时为文件格式转换提供临时存储空间的第一PV,所述若检测到所述虚拟机的状态发生变化,则清理所述PV的步骤包括:
若所述虚拟机的状态从创建中变化为创建完毕,则将所述第一PV删除。
7.如权利要求5所述的虚拟机创建方法,其特征在于,所述PV还包括为所述虚拟机提供正常存储空间的第二PV,所述若检测到所述虚拟机的状态发生变化,则清理所述PV的步骤还包括:
若所述虚拟机的状态变化为待删除,则将所述虚拟机和所述第二PV均删除。
8.一种虚拟机创建装置,其特征在于,应用于kubernetes单机集群中的主机,所述装置包括:
接收模块,用于接收用于创建虚拟机的创建请求,其中,所述创建请求包括创建参数;
第一创建模块,用于基于所述创建请求,在所述主机的预设存储空间创建持久化卷PV;
第二创建模块,用于依据所述PV和所述创建参数创建所述虚拟机。
9.一种主机,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的虚拟机创建方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的虚拟机创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011478179.3A CN112559127B (zh) | 2020-12-15 | 2020-12-15 | 虚拟机创建方法、装置、主机及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011478179.3A CN112559127B (zh) | 2020-12-15 | 2020-12-15 | 虚拟机创建方法、装置、主机及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559127A true CN112559127A (zh) | 2021-03-26 |
CN112559127B CN112559127B (zh) | 2022-05-06 |
Family
ID=75063767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011478179.3A Active CN112559127B (zh) | 2020-12-15 | 2020-12-15 | 虚拟机创建方法、装置、主机及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559127B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296950A (zh) * | 2021-05-28 | 2021-08-24 | 重庆紫光华山智安科技有限公司 | 处理方法、装置、电子设备及可读存储介质 |
CN113721850A (zh) * | 2021-08-26 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种卷管理方法、系统、设备以及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065323A1 (en) * | 2017-08-25 | 2019-02-28 | Vmware, Inc. | Containerized application snapshots |
CN109614226A (zh) * | 2018-11-20 | 2019-04-12 | 武汉烽火信息集成技术有限公司 | 一种基于Kubernetes的有状态应用存储管理方法 |
US20200034254A1 (en) * | 2018-07-30 | 2020-01-30 | EMC IP Holding Company LLC | Seamless mobility for kubernetes based stateful pods using moving target defense |
CN111638961A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 资源调度系统和方法、计算机系统和存储介质 |
-
2020
- 2020-12-15 CN CN202011478179.3A patent/CN112559127B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065323A1 (en) * | 2017-08-25 | 2019-02-28 | Vmware, Inc. | Containerized application snapshots |
US20200034254A1 (en) * | 2018-07-30 | 2020-01-30 | EMC IP Holding Company LLC | Seamless mobility for kubernetes based stateful pods using moving target defense |
CN109614226A (zh) * | 2018-11-20 | 2019-04-12 | 武汉烽火信息集成技术有限公司 | 一种基于Kubernetes的有状态应用存储管理方法 |
CN111638961A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 资源调度系统和方法、计算机系统和存储介质 |
Non-Patent Citations (2)
Title |
---|
FAN JING MENG等: "Opportunities and Challenges Towards Cognitive IT Service Management in Real World", 《2018 IEEE SYMPOSIUM》 * |
张勋等: "一种基于容器编排技术的资源运维系统的设计与实现", 《电信科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296950A (zh) * | 2021-05-28 | 2021-08-24 | 重庆紫光华山智安科技有限公司 | 处理方法、装置、电子设备及可读存储介质 |
CN113296950B (zh) * | 2021-05-28 | 2022-08-19 | 重庆紫光华山智安科技有限公司 | 处理方法、装置、电子设备及可读存储介质 |
CN113721850A (zh) * | 2021-08-26 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种卷管理方法、系统、设备以及介质 |
CN113721850B (zh) * | 2021-08-26 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种卷管理方法、系统、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112559127B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10191879B2 (en) | System and method for creating snapshots in openflame environment | |
US10242023B2 (en) | Programming model for synchronizing browser caches across devices and web services | |
EP3657358A1 (en) | Method, device and system for persistent data processing, and readable storage medium | |
CN107870968B (zh) | 对文件系统卷执行实时更新 | |
US20150067167A1 (en) | Hot pluggable extensions for access management system | |
US9965207B2 (en) | Maintenance of cloned computer data | |
CN112559127B (zh) | 虚拟机创建方法、装置、主机及存储介质 | |
US10671403B2 (en) | Method and apparatus for identifying hardware device in operating system | |
CN111061432B (zh) | 一种业务迁移方法、装置、设备及可读存储介质 | |
CN110520844A (zh) | 云管理平台、虚拟机管理方法及其系统 | |
CN111736915B (zh) | 云主机实例硬件加速设备的管理方法、装置、设备及介质 | |
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
CN109558260A (zh) | Kubernetes故障排除系统、方法、设备及介质 | |
JP2024516572A (ja) | ゾーンセグメントドライブ管理 | |
CN110928554A (zh) | 一种部署方法、装置、设备及存储介质 | |
US11080909B2 (en) | Image layer processing method and computing device | |
CN114911421B (zh) | 基于csi插件的数据存储方法、系统、装置及存储介质 | |
KR102123701B1 (ko) | 네트워크 부트 시스템 | |
WO2018028321A1 (zh) | 一种虚拟外置存储设备的管理方法、装置及终端 | |
CN115562590A (zh) | 一种云主机使用云硬盘的方法、系统、设备和存储介质 | |
CN112468590B (zh) | 一种存储资源挂载方法和装置 | |
CN110362386B (zh) | 网卡处理方法、装置、电子设备和存储介质 | |
JP2020119234A (ja) | 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、プログラム | |
WO2016070641A1 (zh) | 数据的保存方法、装置及读取方法、装置 | |
CN109542588B (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 |