一种在Openstack平台上自动化部署虚拟机的方法及系统与流程

文档序号:25105317发布日期:2021-05-18 23:35阅读:152来源:国知局
一种在Openstack平台上自动化部署虚拟机的方法及系统与流程
一种在openstack平台上自动化部署虚拟机的方法及系统
技术领域
1.本发明涉及私有云平台管理技术领域,特别是涉及一种在openstack平台上通过无代理软件npsvr(no proxy server)自动化部署虚拟机的方法及系统。


背景技术:

2.随着各种软件产品在越来越多的操作系统的环境下需要进行各种各样的测试,测试人员需要搭建各式各样的操作系统,例如linux的centos版本,redhat版本,suse版本等等,并且还需要这些版本中安装好测试的环境。例如测试人员需要测试一台centos7.0的机器,并且安装了oracle(甲骨文公司)的数据库,那么测试人员就必须去部署一台centos7.0的虚拟机,然后还得在该系统上安装oracle的数据库,这样就必须测试人员耗费大量时间去创建虚拟机、安装软件,浪费人力和时间,如果需要测试在多个版本的操作系统下的任务,则测试人员需要不断的重复着拉起虚拟机、安装环境,这样会使工作变得繁琐复杂,并且不易管理。


技术实现要素:

3.为克服上述现有技术存在的不足,本发明之目的在于提供一种在openstack平台上自动化部署虚拟机的方法及系统通过在openstack平台上通过无代理软件npsvr自动部署虚拟机,节省测试人员的大量的时间,也能够更好地起到管理测试环境的作用。
4.为达上述目的,本发明提出一种在openstack平台上自动化部署虚拟机的方法,包括如下步骤:
5.步骤s1,制作获得各种版本虚拟机的基础磁盘文件;
6.步骤s2,接收对相应操作系统的虚拟机的选择;
7.步骤s3,查找对应所选择的操作系统的虚拟机的磁盘文件;
8.步骤s4,将查找到的磁盘文件传输至所述openstack平台,并在传输磁盘文件结束后,在所述openstack平台创建一块空数据的磁盘,用来作为拉起虚拟机根磁盘;
9.步骤s5,下发磁盘数据拷贝任务,实现空数据的磁盘和源磁盘文件的数据一致;
10.步骤s6,基于新创建的磁盘文件创建一台虚拟机,从而实现在所述openstack平台自动部署虚拟机的目的。
11.优选地,步骤s1包括:
12.在所述openstack平台上,通过对操作系统的镜像,部署相应的虚拟机;
13.在已安装好操作系统的虚拟机上,部署各类测试环境,得到一个包括该些数据的磁盘数据文件;
14.将该磁盘数据文件作为对应版本虚拟机的基础磁盘文件进行保存。
15.优选地,当制作完成各版本虚拟机的基础磁盘文件后,将其放入本地服务器的存储当中。
16.优选地,于步骤s3中,当选定虚拟机后,利用无代理软件npsvr在本地存储中查询
该虚拟机的基础磁盘文件是否存在,若存在则选择该基础磁盘文件作为创建虚拟机的数据文件。
17.优选地,于步骤s4中,利用所述无代理软件npsvr通过使用scp协议的方式上传该磁盘文件至所述openstack平台的宿主机中,并在传输磁盘文件结束后,调用createvolume的方法,在所述openstack平台的宿主机上创建所述空数据的磁盘。
18.优选地,于步骤s5中,通过i2node进行对源磁盘的读和对空数据的磁盘进行写。
19.优选地,于步骤s6中通过所述无代理软件npsvr调用openstack4j的api,使用新创建的磁盘文件创建一台虚拟机,然后等待虚拟机自动开机部署即可在openstack平台上使用该虚拟机。
20.为达到上述目的,本发明还提供一种在openstack平台上自动化部署虚拟机的系统,包括:
21.基础磁盘文件生成模块,用于制作获得各种版本虚拟机的基础磁盘文件;
22.虚拟机选择模块,用于接收对相应操作系统的虚拟机的选择;
23.磁盘文件查找模块,用于在本地存储中查找该操作系统的虚拟机的磁盘文件;
24.空磁盘创建模块,用于将查找到的磁盘文件传输至所述openstack平台,并在传输磁盘文件结束后,在所述openstack平台创建一块空数据的磁盘,用来作为拉起虚拟机根磁盘;
25.磁盘数据拷贝模块,用于下发磁盘数据拷贝任务,实现空数据的磁盘和源磁盘文件的数据一致;
26.虚拟机创建模块,用于基于新创建的磁盘文件创建一台虚拟机,从而实现在openstack平台自动部署虚拟机的目的。
27.优选地,所述基础磁盘文件生成模块具体用于:
28.在所述openstack平台上,通过对操作系统的镜像,部署相应的虚拟机;
29.在已安装好操作系统的虚拟机上,部署各类测试环境,得到一个包括该些数据的磁盘数据文件;
30.将该磁盘数据文件作为对应版本虚拟机的基础磁盘文件进行保存。
31.优选地,所述空磁盘创建模块利用npsvr通过使用scp协议的方式上传该磁盘文件至所述openstack平台的宿主机中,并在传输磁盘文件结束后,调用createvolume的方法,在所述openstack平台的宿主机上创建所述空数据的磁盘。与现有技术相比,本发明一种在openstack平台上自动化部署虚拟机的方法及方法通过首先制作好各种版本虚拟机的基础磁盘文件存储于本地服务器;当接收对相应操作系统的虚拟机的选择时查找对应所选择的操作系统的虚拟机的磁盘文件,然后将查找到的磁盘文件传输至所述openstack平台,并在传输磁盘文件结束后,在所述openstack平台创建一块空数据的磁盘,用来作为拉起虚拟机根磁盘,并下发磁盘数据拷贝任务,实现空数据的磁盘和源磁盘文件的数据一致,最后基于新创建的磁盘文件创建一台虚拟机,从而实现在所述openstack平台自动部署虚拟机的目的,本发明可节省测试人员的大量的时间,更好地起到管理测试环境的作用。
附图说明
32.图1为本发明一种在openstack平台上自动化部署虚拟机的方法的步骤流程图;
33.图2为本发明一种在openstack平台上自动化部署虚拟机的系统的系统架构图;
34.图3为本发明实施例中在openstack平台上自动化部署虚拟机的架构示意图;
35.图4为本发明实施例中在openstack平台上自动化部署虚拟机的流程图。
具体实施方式
36.以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
37.openstack平台上是一个开源的云计算管理平台。在openstack平台上自动化部署虚拟机的方法是指通过无代理软件npsvr的控制和管理,实现可根据用户所需要配置和环境的虚拟机,在openstack平台上实现自动化的创建拉起的方法。
38.图1为本发明一种在openstack平台上自动化部署虚拟机的方法的步骤流程图。如图1所示,本发明一种在openstack平台上自动化部署虚拟机的方法,包括如下步骤:
39.步骤s1,制作获得各种版本虚拟机的基础磁盘文件。
40.在本发明具体实施例中,首先制作好各种版本虚拟机的磁盘文件,例如centos5(community enterprise operating system,社区企业操作系统,linux发行版之一),centos6,centos7,rehat,windows2008,windows2012版本的操作系统。制作方法是这样的:在openstack平台上,通过以上操作系统的镜像,部署相应的虚拟机;然后在已经安装好操作系统的虚拟机上,部署各类测试环境,例如oracle数据库,高斯数据库,java环境等等,得到一个包含上述数据的磁盘数据文件,最后将该磁盘文件作为对应版本虚拟机的基础磁盘文件保存下来,这样制作各种操作系统,安装各类数据等等都依照此方法制作好。
41.当制作完成各版本虚拟机的基础磁盘文件后,将其放入本地服务器的存储当中,所述本地服务器是指用户安装了无代理软件npsvr的本地存储,相对地,openstack平台则指远端。
42.步骤s2,接收相应操作系统的虚拟机选择。
43.在本发明中,当用户需要选定某个操作系统的虚拟机在openstack平台上创建时,可通过操作界面选择所需要的虚拟机,即于安装了无代理软件npsvr的本地端创建一个控制页面,通过该控制页面通过rpc下发参数(例如操作系统的磁盘的uuid)给无代理软件npsvr,这些参数即包含了相应操作系统的选择,具体地,首先通过控制页面展示全部的操作系统,然后当用户选择了某个操作系统之后,则能够得到该操作系统的磁盘的uuid,然后通过该uuid,下发至无代理软件npsvr,无代理软件npsvr则使用openstack4j的api(application programming interface),查询到该磁盘,步骤s1得到的本地的基础磁盘文件。
44.在本发明具体实施例中,通过无代理软件npsvr中的openstack4j的api(application programming interface),选定所需要的某个操作系统的虚拟机。也就是说,本发明通过无代理软件npsvr中的openstack4j(openstack4j是一个用java开发的开源的openstack客户端)的api达到接管管理openstack平台的功能。
45.步骤s3,在本地存储中查找该操作系统的虚拟机的磁盘文件。
46.由于在步骤s1中,已将各操作系统的虚拟机的磁盘文件存储在本地存储中,因此,当选定虚拟机后,无代理软件npsvr则在本地存储的目录中,查询该虚拟机的基础磁盘文件是否存在,若存在则选择该基础磁盘文件作为创建虚拟机的数据文件。
47.步骤s4,将查找到的磁盘文件传输至openstack平台,并在传输磁盘文件结束后,在openstack平台创建一块空数据的磁盘,用来作为拉起虚拟机根磁盘。
48.在本发明具体实施例中,无代理软件npsvr通过使用scp(secure copy)协议的方式上传该磁盘文件至openstack的宿主机中(即安装openstack的虚拟机),并在传输磁盘文件结束后,无代理软件npsvr使用openstack4j的api,调用createvolume的方法,在openstack宿主机上创建一块空数据的磁盘,用来作为拉起虚拟机的根磁盘。
49.这样在openstack平台的宿主机中则有两块磁盘,一块是有数据文件,另一块磁盘是空数据的磁盘。
50.步骤s5,下发磁盘数据拷贝的任务,实现空数据的磁盘和源磁盘文件的数据一致。
51.在本发明具体实施例中,通过无代理软件npsvr(npsvr是一个java程序,是作为一个任务的管理和下发的工具软件,其能够将拷贝磁盘数据的这一个任务,通过rpc下发至openstack平台的宿主机上)下发磁盘数据拷贝的任务,实现在空数据的磁盘和源磁盘文件的数据一致,具体地,可通过i2node软件(其主要功能有实现磁盘数据的拷贝的功能)进行对源磁盘的读和对空数据的磁盘进行写,从而实现空数据的磁盘和源磁盘文件的数据一致。
52.步骤s6,基于新创建的磁盘文件创建一台虚拟机,从而实现在openstack平台自动部署虚拟机的目的。
53.具体地,当新创建的磁盘文件与源磁盘文件的数据一致后,则通过npsvr,调用openstack4j的api,使用新创建的磁盘文件创建一台虚拟机,然后等待虚拟机自动开机部署即可在openstack平台上使用该虚拟机。
54.图2为本发明一种在openstack平台上自动化部署虚拟机的系统的系统架构图。如图2所示,本发明一种在openstack平台上自动化部署虚拟机的系统,包括:
55.基础磁盘文件生成模块201,用于制作获得各种版本虚拟机的基础磁盘文件。
56.在本发明具体实施例中,首先制作好各种版本虚拟机的磁盘文件,例如centos5(community enterprise operating system,社区企业操作系统,linux发行版之一),centos6,centos7,rehat,windows2008,windows2012版本的操作系统。制作方法是这样的:在openstack平台上,通过以上操作系统的镜像,部署相应的虚拟机;然后在已经安装好操作系统的虚拟机上,部署各类测试环境,例如oracle数据库,高斯数据库,java环境等等,得到一个磁盘的数据文件包含这些数据;最后将该磁盘文件作为对应版本虚拟机的基础磁盘文件保存下来。这样制作各种操作系统,安装各类数据等等都依照此方法制作好。
57.当制作完成各版本虚拟机的基础磁盘文件后,将其放入本地服务器的存储当中。
58.虚拟机选择模块202,用于接收相应操作系统的虚拟机选择。
59.在本发明中,当用户需要选定某个操作系统的虚拟机在openstack平台上创建时,通过操作界面选择所需要的虚拟机。在本发明具体实施例中,通过npsvr中的openstack4j的api(application programming interface),选定所需要的某个操作系统的虚拟机。也就是说,本发明通过npsvr中的openstack4j(openstack4j是一个用java开发的开源的
openstack客户端)的api达到接管管理openstack平台的功能。
60.磁盘文件查找模块203,在本地存储中查找该操作系统的虚拟机的磁盘文件。
61.由于在基础磁盘文件生成模块201中,已将各操作系统的虚拟机的磁盘文件存储在本地存储中,因此,当选定虚拟机后,npsvr则在本地存储的目录中,查询该虚拟机的磁盘文件是否存在,若存在则选择该磁盘文件作为创建虚拟机的数据文件。
62.空磁盘创建模块204,用于将查找到的磁盘文件传输至openstack平台,并在传输磁盘文件结束后,在openstack平台创建一块空数据的磁盘,用来作为拉起虚拟机根磁盘。
63.在本发明具体实施例中,npsvr通过使用scp(secure copy)协议的方式上传该磁盘文件至openstack的宿主机中(即安装openstack的虚拟机),并在传输磁盘文件结束后,npsvr使用openstack4j的api,调用createvolume的方法,在openstack宿主机上创建一块空数据的磁盘,用来作为拉起虚拟机的根磁盘。
64.这样在openstack的宿主机中则有两块磁盘,一块是有数据文件,另一块磁盘是空数据的磁盘。
65.磁盘数据拷贝模块205,用于下发磁盘数据拷贝的任务,实现空数据的磁盘和源磁盘文件的数据一致。
66.在本发明具体实施例中,通过npsvr中下发磁盘数据拷贝的任务,实现在空数据的磁盘和源磁盘文件的数据一致,具体地,可通过i2node进行对源磁盘的读和对空数据的磁盘进行写,从而实现空数据的磁盘和源磁盘文件的数据一致。
67.虚拟机创建模块206,用于基于新创建的磁盘文件创建一台虚拟机,从而实现在openstack平台自动部署虚拟机的目的。
68.具体地,当新创建的磁盘文件与源磁盘文件的数据一致后,则通过npsvr,调用openstack4j的api,使用新创建的磁盘文件创建一台虚拟机,然后等待虚拟机自动开机部署即可在openstack平台上使用该虚拟机。
69.实施例
70.图3为本发明实施例中在openstack平台上自动化部署虚拟机的架构示意图。图4为本发明实施例中在openstack平台上自动化部署虚拟机的流程图。在本实施例中,在openstack平台上自动化部署虚拟机的过程如下:
71.步骤一:用户在控制台选择centos7+oracle数据库的环境的虚拟机。
72.步骤二:无代理软件npsvr在本地存储服务器中查询上述虚拟机的磁盘文件是否存在,如果存在,那么则通过scp协议的方式,将该磁盘文件传输至openstack平台的宿主机(即安装openstack平台的机器)上。本实施例中使用的是同步传输的方式,传输完成后才会有一个结果。
73.步骤三:在传输磁盘文件结束后,无代理软件npsvr使用openstack4j的api,调用createvolume的方法,在openstack平台上创建一块空数据的磁盘,用来作为拉起虚拟机的根磁盘。
74.步骤四:此时在openstack平台有2块磁盘,一块是centos7+oracle的源磁盘文件,一块是空数据的磁盘,这时候通过i2node进行对源磁盘的读和对空数据的磁盘进行写,达到数据拷贝的目的。
75.步骤五:空数据的磁盘直到传输数据完成后,便有和源磁盘文件(centos7+
oracle)一样的数据。然后无代理软件npsvr再次调用openstack4j的createdomain的方法,基于新创建的磁盘文件创建虚拟机,等待虚拟机创建完成即可在openstack平台上看到该虚拟机的拉起,从而实现openstack平台上自动化部署虚拟机的目的。
76.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1