基于迁移方式加速虚拟机批量启动的方法及系统技术方案

技术编号:15262857 阅读:92 留言:0更新日期:2017-05-03 18:59
本发明专利技术公开了基于迁移方式加速虚拟机批量启动的方法及系统;包括镜像文件管理、数据队列存储、统计程序模块、启动程序模块、迁移操作模块等。初始时仅仅正常启动一台虚拟机,剩余虚拟机通过等待在线迁移的方式启动。迁移时只复制内存数据,不复制磁盘数据,有效避免磁盘资源的竞争,加速整体启动过程。开发一套控制系统,控制整体启动过程,实现迁移方式批量启动虚拟机的自动化控制。

Method and system for accelerating virtual machine batch start based on migration mode

The invention discloses a method and a system for accelerating the batch start-up of a virtual machine based on a migration mode, which comprises a mirror file management, a data queue storage, a statistical program module, a start program module, a migration operation module, etc.. At the beginning, only one virtual machine is started, and the remaining virtual machine is started by waiting for online migration. Migration only copy the memory data, do not copy the disk data, effectively avoid the disk resource competition, accelerate the overall startup process. Develop a set of control system, control the whole startup process, and realize the automation control of the virtual machine of the batch mode.

【技术实现步骤摘要】

本专利技术涉及基于迁移方式加速虚拟机批量启动的方法及系统
技术介绍
有些虚拟化场景中存在大量相同的虚拟机,如虚拟教室,每个学生使用一台虚拟机,所有虚拟机完全一样,运行同样的系统,包含同样的课程。类似场景中通常的做法是制作一份基础镜像文件,基于基础镜像创建一组快照文件,作为每台虚拟机的硬盘,虚拟机运行时增量数据写入快照文件中,基础镜像作为只读存储。虚拟机批量启动时对系统资源冲击很大,尤其是存储资源,启动时虚拟机彼此竞争,磁盘IO操作密集,整体启动过程缓慢,总体耗时较长。
技术实现思路
本专利技术的目的就是为了解决上述问题,提供基于迁移方式加速虚拟机批量启动的方法及系统,初始时仅仅正常启动一台虚拟机,剩余虚拟机通过等待在线迁移的方式启动。迁移时只复制内存数据,不复制磁盘数据,有效避免磁盘资源的竞争,加速整体启动过程。开发一套控制系统,控制整体启动过程,实现迁移方式批量启动虚拟机的自动化控制。为了实现上述目的,本专利技术采用如下技术方案:基于迁移方式加速虚拟机批量启动的方法,包括如下步骤:步骤(1):创建一个启动完成队列和一个迁移等待队列,启动完成队列用以存放启动完成的虚拟机编号,迁移等待队列用以存放等待迁移的虚拟机编号,在迁移等待队列中写入等待迁移的虚拟机的编号2到n,n为正整数;步骤(2):并列运行n个启动程序,每个启动程序管理一台虚拟机;步骤(3):第一个启动程序基于基础镜像创建自己的快照文件,以正常方式后台启动第一台虚拟机,等待第一台虚拟机启动完成;剩余的n-1个启动程序基于基础镜像创建各自的快照文件,以等待迁移方式后台启动各自的虚拟机,分别等待各自的虚拟机启动完成;步骤(4):启动程序从迁移等待队列中读取一个虚拟机编号i,如果迁移等待队列为空,启动程序运行结束;否则,进入步骤(5);i的取值范围是2到n;步骤(5):启动程序执行迁移操作,向自己管理的虚拟机发送迁移指令,让虚拟机在线迁移至编号为i的虚拟机,等待迁移完成,之后向自己管理的虚拟机发送继续指令,让虚拟机继续执行,返回步骤(4)。此时,所有虚拟机全部正常启动完成,可以正常登录操作。所述步骤(1)与步骤(2)之间还设有步骤(10):定时统计启动完成队列中的元素数目,达到n时退出,并输出累计耗时。采用宿主机的一个UDP端口为第一台虚拟机模拟一个串口,第一个启动程序等待读取宿主机的端口得到预先约定的字符串,从而得知第一台虚拟机已启动完成。采用宿主机的一组TCP端口为剩余的每台虚拟机指定迁移等待端口,剩余的每台虚拟机在指定端口等待迁移。采用宿主机的另外一组TCP端口为每台虚拟机模拟monitor控制台,每个启动程序通过读写TCP端口与monitor控制台交互,控制迁移过程。第一台虚拟机通过串口发送约定的字符串ok,标识自己启动完成,剩余的虚拟机的启动完成信息是通过轮询对应的monitor控制台而得知的,定时向monitor控制台发送infostatus指令,查看输出结果中是否包含running字样,包含表示启动完成,否则表示正在启动。迁移时启动程序向自己管理的虚拟机的monitor控制台发送migrate迁移指令,之后定时发送infostatus指令,查看输出结果中是否包含paused(postmigrate)字样,包含表示迁移完成,否则表示迁移进行中。每一次迁移操作得到若干台一模一样的运行状态的虚拟机,相当于一次复制,多台虚拟机可以同时执行复制操作,只需要j次复制操作就可以得到2j台运行状态的虚拟机。通过j次迁移操作得到2j台一模一样的运行状态的虚拟机。所述启动程序是指:管理虚拟机启动过程及实施迁移的程序;所述启动完成队列是指:用以存放启动完成的虚拟机编号的队列;所述迁移等待队列是指:用以存放等待迁移的虚拟机编号的队列;所述以正常方式启动:用以区分等待迁移方式启动;基于迁移方式加速虚拟机批量启动的系统,包括:镜像文件管理模块,包括一个基础镜像及一组快照文件,快照文件基于基础镜像创建,作为每台虚拟机的硬盘,虚拟机运行时增量数据写入快照文件中,基础镜像作为只读存储;数据队列存储模块,包括一个启动完成队列和一个迁移等待队列,启动完成队列用以存放启动完成的虚拟机编号,迁移等待队列用以存放等待迁移的虚拟机编号;统计程序模块,用于定时统计启动完成队列中的元素数目,达到设定数目时退出,并输出累计耗时;启动程序模块,用于对应虚拟机数目,运行一组启动程序,第一个启动程序基于基础镜像创建自己的快照文件,以常规方式后台启动第一台虚拟机,等待第一台虚拟机启动完成;剩余的启动程序基于基础镜像创建各自的快照文件,以等待迁移方式后台启动各自的虚拟机,分别等待各自的虚拟机启动完成;迁移操作模块:由启动程序模块调用,向启动程序管理的虚拟机发送迁移指令,让虚拟机在线迁移至等待迁移的虚拟机,等待迁移完成之后启动程序向虚拟机发送继续指令,让虚拟机继续执行。迁移时只复制内存数据,不复制磁盘数据,有效避免磁盘资源的竞争,加速整体启动过程。本专利技术的有益效果:1加速虚拟机批量启动的整体过程:初始时仅仅正常启动一台虚拟机,剩余虚拟机通过等待在线迁移的方式启动。迁移时只复制内存数据,不复制磁盘数据,有效避免磁盘资源的竞争,加速整体启动过程;2配套开发一套控制系统,控制整体启动过程,实现迁移方式批量启动虚拟机的自动化控制。附图说明图1为整体功能架构示意图;图2为迁移复制示意图;图3为启动耗时对比图。具体实施方式下面结合附图与实施例对本专利技术作进一步说明。基于迁移方式加速虚拟机批量启动的方法,以批量启动8台虚拟机为例,包括如下步骤:步骤(1):创建一个启动完成队列和一个迁移等待队列,启动完成队列用以存放启动完成的虚拟机编号,迁移等待队列用以存放等待迁移的虚拟机编号,在迁移等待队列中写入7台等待迁移的虚拟机的编号(2、3、4、5、6、7、8);步骤(2):(可选)运行一个统计程序,定时统计启动完成队列中的元素数目,达到8时退出,并输出累计耗时;步骤(3):并行运行8个启动程序,每个启动程序管理一台虚拟机;步骤(4):1号启动程序基于基础镜像创建自己的快照文件,以常规方式后台启动1号虚拟机,等待其启动完成;剩余的7个启动程序的行为类似,基于基础镜像创建各自的快照文件,以等待迁移方式后台启动各自的虚拟机,分别等待各自的虚拟机启动完成;步骤(5):启动程序从迁移等待队列中读取一个虚拟机编号n,如果队列为空,启动程序运行结束;步骤(6):启动程序执行迁移操作,向自己管理的虚拟机发送迁移指令,让虚拟机在线迁移至编号为n的虚拟机,等待迁移完成,之后向自己管理的虚拟机发送继续指令,让虚拟机继续执行,返回步骤(5);此时,所有虚拟机全部正常启动完成,可以正常登录操作。所述步骤(4)中:宿主操作系统采用Centos7.2.1511,虚拟机管理软件采用qemu-kvm1.5.3,虚拟机操作系统采用winXP,快照文件通过带有-b选项的qemu-img程序创建;宿主机是承载虚拟机的物理主机,安装虚拟机管理软件,提供虚拟机所需的硬件资源,支撑虚拟机的调度运行。所述步骤(6)中:迁移操作指虚拟机的保存与恢复,完整保存源虚拟机的运行状态,快速平滑恢复到目标虚拟机,迁移指令通过QEMUmonitor发送,这是一个管理控制台;迁移之后本文档来自技高网...

【技术保护点】
基于迁移方式加速虚拟机批量启动的方法,其特征是,包括如下步骤:步骤(1):创建一个启动完成队列和一个迁移等待队列,启动完成队列用以存放启动完成的虚拟机编号,迁移等待队列用以存放等待迁移的虚拟机编号,在迁移等待队列中写入等待迁移的虚拟机的编号2到n,n为正整数;步骤(2):并列运行n个启动程序,每个启动程序管理一台虚拟机;步骤(3):第一个启动程序基于基础镜像创建自己的快照文件,以正常方式后台启动第一台虚拟机,等待第一台虚拟机启动完成;剩余的n‑1个启动程序基于基础镜像创建各自的快照文件,以等待迁移方式后台启动各自的虚拟机,分别等待各自的虚拟机启动完成;步骤(4):启动程序从迁移等待队列中读取一个虚拟机编号i,如果迁移等待队列为空,启动程序运行结束;否则,进入步骤(5);i的取值范围是2到n;步骤(5):启动程序执行迁移操作,向自己管理的虚拟机发送迁移指令,让虚拟机在线迁移至编号为i的虚拟机,等待迁移完成,之后向自己管理的虚拟机发送继续指令,让虚拟机继续执行,返回步骤(4)。

【技术特征摘要】
1.基于迁移方式加速虚拟机批量启动的方法,其特征是,包括如下步骤:步骤(1):创建一个启动完成队列和一个迁移等待队列,启动完成队列用以存放启动完成的虚拟机编号,迁移等待队列用以存放等待迁移的虚拟机编号,在迁移等待队列中写入等待迁移的虚拟机的编号2到n,n为正整数;步骤(2):并列运行n个启动程序,每个启动程序管理一台虚拟机;步骤(3):第一个启动程序基于基础镜像创建自己的快照文件,以正常方式后台启动第一台虚拟机,等待第一台虚拟机启动完成;剩余的n-1个启动程序基于基础镜像创建各自的快照文件,以等待迁移方式后台启动各自的虚拟机,分别等待各自的虚拟机启动完成;步骤(4):启动程序从迁移等待队列中读取一个虚拟机编号i,如果迁移等待队列为空,启动程序运行结束;否则,进入步骤(5);i的取值范围是2到n;步骤(5):启动程序执行迁移操作,向自己管理的虚拟机发送迁移指令,让虚拟机在线迁移至编号为i的虚拟机,等待迁移完成,之后向自己管理的虚拟机发送继续指令,让虚拟机继续执行,返回步骤(4)。2.如权利要求1所述的基于迁移方式加速虚拟机批量启动的方法,其特征是,所述步骤(1)与步骤(2)之间还设有步骤(10):定时统计启动完成队列中的元素数目,达到n时退出,并输出累计耗时。3.如权利要求1所述的基于迁移方式加速虚拟机批量启动的方法,其特征是,采用宿主机的一个UDP端口为第一台虚拟机模拟一个串口,第一个启动程序等待读取宿主机的端口得到预先约定的字符串,从而得知第一台虚拟机已启动完成。4.如权利要求1所述的基于迁移方式加速虚拟机批量启动的方法,其特征是,采用宿主机的一组TCP端口为剩余的每台虚拟机指定迁移等待端口,剩余的每台虚拟机在指定端口等待迁移。5.如权利要求4所述的基于迁移方式加速虚拟机批量启动的方法,其特征是,采用宿主机的另外一组TCP端口为每台虚拟机模拟monitor控制台,每个启动程序通过读写TCP端口与monitor控制台交互,控制迁移过程。6.如权利要求1所述的基于迁移方式加速虚拟机批量启动的方法,其特征是,第一台虚...

【专利技术属性】
技术研发人员:张从国刘春张辉石磊程栋
申请(专利权)人:山东乾云启创信息科技股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1