虚拟机启动方法和装置与流程

文档序号:12463483阅读:251来源:国知局
虚拟机启动方法和装置与流程

本申请涉及云计算技术领域,具体涉及虚拟机技术领域,尤其涉及虚拟机启动方法和装置。



背景技术:

虚拟化服务是常用的云计算平台提供的服务。目前,云计算平台在提供虚拟化服务时,通常将启动虚拟机所需的镜像文件存储在运行虚拟机的物理机上,在物理机上启动虚拟机时,读取出所需的镜像文件启动虚拟机。

然而,当采用上述方式启动虚拟机时,在诸如物理机上出现故障的情况下,会导致用户数据丢失,并且无法确定出准确的恢复时间,影响虚拟化服务的正常运行。



技术实现要素:

本申请提供了虚拟机启动方法和装置,用于解决上述背景技术部分存在的技术问题。

第一方面,本申请提供了虚拟机启动方法,该方法包括:物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件;利用镜像文件启动目标虚拟机。

第二方面,本申请提供了虚拟机启动装置,该装置包括:响应单元,配置用于响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件;启动单元,配置用于利用镜像文件启动目标虚拟机。

本申请提供的虚拟机启动方法和装置,通过物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件;利用镜像文件启动目标虚拟机。实现了将启动虚拟机所需的镜像文件存储在云端的分布式块存储系统中,同时,在物理机上映射出虚拟磁盘。物理机需要启动虚拟机时,通过读取虚拟磁盘从云端的分布式块存储系统中获取虚拟机启动所需的镜像文件。当运行虚拟机的本地物理机出现故障时,可以立即在另一个物理机上通过映射出的虚拟磁盘获取镜像文件启动虚拟机,进而确保虚拟化服务正常运行。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是可以应用于本申请的虚拟机启动方法或装置的实施例的示例性系统架构图;

图2示出了根据本申请的虚拟机启动方法的一个实施例的流程图;

图3示出了根据本申请的虚拟机启动方法的一个示例性流程图;

图4示出了根据本申请的虚拟机启动装置的一个实施例的结构示意图;

图5示出了适于用来实现本申请实施例的虚拟机启动装置的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用于本申请的虚拟机启动方法或装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如、云计算类应用、浏览器类应用、搜索类应用、即时通讯类应用等。

终端设备101、102、103可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

服务器105可以配置有分布式块存储系统,服务器105(例如云服务器)可以向终端设备101、102、103提供服务例如虚拟化服务,可以在终端设备101、102、103上创建虚拟机。

请参考图2,其示出了根据本申请的虚拟机启动方法的一个实施例的流程200。需要说明的是,本申请实施例所提供的虚拟机启动方法可以由图1中的终端设备101、102、103执行,相应地,装置可以设置于终端设备101、102、103中。该方法包括以下步骤:

步骤201,物理机响应于对目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件。

在本实施例中,待启动的目标虚拟机可以配置在终端上,可以将运行目标虚拟机的终端称之为物理机。为了在物理机上启动目标虚拟机,需要获取启动目标虚拟机所需的镜像文件。

在本实施例中,可以预先将启动目标虚拟机所需的镜像文件存储在分布式块存储系统中。当物理机接收到输入的对目标虚拟机的启动指令时,可以从分布式块存储系统中获取启动目标虚拟机所需的镜像文件。例如,由物理机的用户在虚拟机的启动界面选择目标虚拟机,点击启动按钮,则可以生成对目标虚拟机的启动指令。在接收到输入的启动指令之后,可以从分布式块存储系统中获取启动目标虚拟机所需的镜像文件。

在本实施例的一些可选的实现方式中,在物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件之前,还包括:接收输入的块存储申请指令,块存储申请指令包括:目标虚拟机的系统盘的大小;利用逻辑卷管理器分配大小的逻辑卷;将逻辑卷的标识和目标虚拟机对应存储。

在本实施例中,物理机在启动目标虚拟机之前,可以接收输入的块存储申请指令,块存储申请指令包括:目标虚拟机的系统盘的大小。例如,由物理机的用户在虚拟机的配置页面选择目标虚拟机的系统盘的大小,点击块存储申请按钮,生成块存储申请指令。可以由物理机向云服务器发送包含目标虚拟机的系统盘的大小的分配请求,由云服务器上的逻辑卷管理器分配目标虚拟机的系统盘的大小的逻辑卷。然后,建立该逻辑卷的与目标虚拟机的对应关系。逻辑卷管理器可以管理逻辑卷,虚拟机具体使用的逻辑卷、逻辑卷的标识可以记录在虚拟机元数据中。逻辑卷管理器可以提供逻辑卷的块与分布式块存储系统中的存储单元之间的映射。

在本实施例的一些可选的实现方式中,在物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件之前,还包括:利用iSCSI(internet Small Computer System Interface)协议中的目标器即iSCSI target将逻辑卷作为虚拟磁盘进行映射;利用iSCSI协议中的启动器即iSCSI initiator将虚拟磁盘映射至物理机;对虚拟磁盘进行格式化,以及将格式化后的虚拟磁盘挂载在预设挂载点。

在本实施例中,在确定目标虚拟机对应的逻辑卷之后,可以通过iSCSI target将目标虚拟机对应的逻辑卷作为虚拟磁盘进行映射,将逻辑卷作为块设备映射给iSCSI initiator。iSCSI initiator可以连接iSCSI target提供的存储服务端口,将虚拟磁盘映射到物理机上。从而,在物理机上加入一个虚拟磁盘。虚拟磁盘可以对应一个设备文件,例如设备文件为/dev/sdx。可以对虚拟磁盘进行格式化,例如将虚拟磁盘格式化为ext4文件系统。然后,可以通过挂载命令将格式化后的虚拟磁盘挂载到物理机上的预设挂载点。例如,预设挂载点为/home/bcc/mydir,通过输入命令mount/dev/sdx/home/bcc/mydir,将虚拟磁盘挂载在预设挂载点。在物理机上通过对挂载后的虚拟磁盘的写入操作或读取操作,可以最终转换为将数据写入到分布式块存储系统中或从分布式块存储系统中读取数据。

在本实施例的一些可选的实现方式中,在物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件之前,还包括:向格式化后的虚拟磁盘写入启动目标虚拟机所需的镜像文件,以将启动目标虚拟机所需的镜像文件写入分布式块存储系统中。

在本实施例中,可以对iSCSI Target进行扩展,加入驱动。iSCSI Target中的驱动可以封装对虚拟磁盘的写入、读取等操作。在进行写入、读取操作时,iSCSI Target中的驱动可以根据逻辑卷管理器中的逻辑卷的块的存储单元与分布式块存储系统中的存储单元的对应关系,确定出分布式块存储系统中的存储单元,将数据写入分布式块存储系统中的存储单元中或从分布式块存储系统中的存储单元中读取数据。

在本实施例中,物理机在启动目标虚拟机之前,可以预先将启动目标虚拟机所需的镜像文件写入格式化后的虚拟磁盘中,通过iSCSI Target中的驱动将虚拟机的镜像文件最终写入到分布式块存储系统中虚拟磁盘对应的存储单元上。在物理机需要启动目标虚拟机时,可以从虚拟磁盘中读取启动目标虚拟机所需的镜像文件,通过iSCSI Target中的驱动从分布式块存储系统中虚拟磁盘对应的存储单元中最终读取出启动目标虚拟机所需的镜像文件。

步骤202,利用镜像文件启动目标虚拟机。

在本实施例中,在通过步骤201从分布式块存储系统中获取启动目标虚拟机所需的镜像文件之后,可以利用获取到的镜像文件启动目标虚拟机。

在本实施例中,当不再使用目标虚拟机时,可以删除虚拟机和虚拟机镜像文件。可以解除虚拟磁盘的挂载,注销iSCSI session。同时,可以删除逻辑卷作为虚拟磁盘的映射,删除分布式块存储系统中的启动目标虚拟机所需的镜像文件。

在本实施例的一些可选的实现方式中,还包括:当利用监控进程监控到物理机出现故障时,由其他物理机利用iSCSI协议中的目标器将逻辑卷作为虚拟磁盘进行映射;利用iSCSI协议中的启动器将虚拟磁盘映射至其他物理机,以在其他物理机上启动目标虚拟机。

在本实施例中,可以利用监控进程监控每一个物理机的运行情况。以物理机A和物理机B为例,目标虚拟机开始运行于物理机A上。当监控到物理机A出现故障时,可以将目标虚拟机迁移到物理机B上。物理机B可以通过读取虚拟机元数据,得到待迁移的目标虚拟机的逻辑卷的标识。物理机B可以利用iSCSI target将目标虚拟机的逻辑卷作为虚拟磁盘进行映射,利用iSCSI initiator将虚拟磁盘映射到物理机B,该虚拟磁盘对应一个设备文件,例如/dev/sdy。可以直接将该虚拟磁盘挂载在物理机B的预设挂载点中。例如,预设挂载点为/home/bcc/mydir,输入命令mount/dev/sdy/home/bcc/mydir,将虚拟磁盘挂载在物理机B的预设挂载点。从而,可以在物理机B中加入虚拟磁盘,通过读取该虚拟磁盘获取启动目标虚拟机的镜像文件,在物理机B中启动目标虚拟机。

请参考图3,其示出了根据本申请的虚拟机启动方法的一个示例性流程图。

可以首先确定目标虚拟机对应的逻辑卷,在确定目标虚拟机对应的逻辑卷之后,可以由iSCSI target将目标虚拟机对应的逻辑卷作为虚拟磁盘进行映射,iSCSI initiator虚拟磁盘映射到物理机上,从而,在物理机上加入一个虚拟磁盘。虚拟磁盘对应一个设备文件例如/dev/sdx。可以对虚拟磁盘进行格式化,通过挂载命令将格式化后的虚拟磁盘挂载到物理机上的预设挂载点例如通过mount/mnt/vmpath。在对虚拟磁盘格式化后,可以将启动目标虚拟机所需的镜像文件写入虚拟磁盘上,进而在分布式块存储系统中存储启动目标虚拟机所需的镜像文件。物理机在需要启动目标虚拟机时,通过虚拟磁盘从分布式块存储系统中获取启动目标虚拟机所需的镜像文件,启动目标虚拟机即启动VM。

请参考图4,作为对上述各图所示方法的实现,本申请提供了一种虚拟机启动装置的一个实施例,该装置实施例与图2所示的方法实施例相对应。

如图4所示,本实施例的虚拟机启动装置400包括:响应单元401,启动单元402。其中,响应单元401配置用于响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件;启动单元402配置用于利用镜像文件启动目标虚拟机。

在本实施例的一些可选的实现方式中,装置400还包括:逻辑卷分配单元(未示出),配置用于在响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件之前,接收输入的块存储申请指令,块存储申请指令包括:目标虚拟机的系统盘的大小;利用逻辑卷管理器分配大小的逻辑卷;将逻辑卷的标识和目标虚拟机对应存储;映射单元(未示出),配置用于利用iSCSI协议中的目标器将逻辑卷作为虚拟磁盘进行映射;利用iSCSI协议中的启动器将虚拟磁盘映射至物理机;对虚拟磁盘进行格式化,以及将格式化后的虚拟磁盘挂载在预设挂载点;写入单元(未示出),配置用于向格式化后的虚拟磁盘写入启动目标虚拟机所需的镜像文件,以将启动目标虚拟机所需的镜像文件写入分布式块存储系统中。

在本实施例的一些可选的实现方式中,启动单元402包括:读取子单元(未示出),配置用于读取虚拟磁盘中的启动目标虚拟机所需的镜像文件,以从分布式块存储系统中读取出启动目标虚拟机所需的镜像文件。

在本实施例的一些可选的实现方式中,装置400还包括:转换单元(未示出),配置用于当利用监控进程监控到物理机出现故障时,由其他物理机利用iSCSI协议中的目标器将逻辑卷作为虚拟磁盘进行映射;利用iSCSI协议中的启动器将虚拟磁盘映射至其他物理机,以在其他物理机上启动目标虚拟机。

图5示出了适于用来实现本申请实施例的虚拟机启动装置的计算机系统的结构示意图。如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。CPU501、ROM502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。

以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:物理机响应于输入的对待启动的目标虚拟机的启动指令,从分布式块存储系统中获取启动目标虚拟机所需的镜像文件;利用所述镜像文件启动所述目标虚拟机。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1