一种云计算环境下的虚拟机管控系统的制作方法

文档序号:14718821发布日期:2018-06-16 23:49阅读:366来源:国知局

本发明涉及云计算技术领域,尤其涉及一种云计算环境下的虚拟机管控系统。



背景技术:

在云计算服务中,我们常见的就有两种管理虚拟机的方式,一种是微软平台的管理方式,一种是linux平台的管理方式。然而在微软平台下的管理方式一般是基于VMWareESX/ESX(i)这些平台的虚拟化管理,这种方式微软提供了很多封闭的接口,方便用户的二次开发,可以解决一些技术问题。在linux平台下,有很多开源的产品可以用来管理虚拟机,比如virt-manager、openstack等,这些也提供了比较丰富的接口功能,方便用户使用。但是这些还不能满足现有用户的许多需求。

随着业务的不断增多,需求的不断增加,现有的应用软件及技术已不能满足用户的某些需求。比如,当用户忘记密码的时候,虚拟化的管理端应该是有处理这种特殊情况的功能,然而目前不管微软平台还是linux虚拟化管理平台都不能很好的解决这个问题。再比如,清理内存、数据传输、虚拟机细粒度控制等等功能,目前现有的云计算平台不能完全解决这些问题。



技术实现要素:

本发明的目的在于公开一种云计算环境下的虚拟机管控系统,可对云计算环境下的虚拟机实现高效、统一、便捷的管控,实现了云计算环境下对多台虚拟机的高并发指令操作。

为实现上述发明目的,本发明提供了一种云计算环境下的虚拟机管控系统,包括:

Web访问模块,用于用户进行QGA操作,并通过WSGIAPI与Web访问模块相通讯;

QGA调度模块,接收Web访问端发送的功能指令并调度至对应的QGAProxy模块,最后获取该功能指令对应的执行结果;

QGAProxy模块,接收来自于QGA调度模块发送的功能指令并把功能指令逐条下发至对应虚拟机后收集虚拟机针对功能指令所返回的执行结果,并利用内置的多个定时器按时把执行结果上传至QGA调度模块;

加载并运行于虚拟机中的QGA套接字服务器,所述QGA套接字服务器与QGAProxy模块所对应的套接字客户端相通讯。

作为本发明的进一步改进,QGA调度模块部署于开源云计算平台的控制服务器上。

作为本发明的进一步改进,QGAProxy模块部署并运行于开源云计算平台的计算服务器中。

作为本发明的进一步改进,QGAProxy模块包括api接口及proxy。

作为本发明的进一步改进,proxy包括清理内存定时器、刷新虚拟机列表定时器、数据接收定时器。

作为本发明的进一步改进,QGA套接字服务器与QGAProxy模块所对应的套接字客户端之间形成双向数据通信。

作为本发明的进一步改进,QGA调度模块通过调用QGAProxy模块的HTTPAPI与QGAProxy模块相通讯。

作为本发明的进一步改进,QGA套接字服务器部署于虚拟机的镜像模板中。

与现有技术相比,本发明的有益效果是:本发明可对云计算环境下的虚拟机实现高效、统一、便捷的管控,实现了云计算环境下针对多台虚拟机的高并发指令操作。

附图说明

图1为本发明一种云计算环境下的虚拟机管控系统的框架图;

图2为Web访问模块与QGA调度模块进行通讯的框架图;

图3为QGA调度模块与QGAProxy模块进行通讯的框架图;

图4为QGAProxy模块与加载QGAProxy模块的后台进行通讯的框架图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

请参考图1至图4所示:一种云计算环境下的虚拟机管控系统的一种具体实施方式。在本实施方式中,该虚拟机管控系统包括:Web访问模块1、QGA调度模块2、QGAProxy模块3及QGA套接字服务器。

其中,Web访问模块1,用于用户进行QGA操作,并通过WSGIAPI与QGA调度模块相通讯;QGA调度模块2,接收Web访问端发送的功能指令并调度至对应的QGAProxy模块,最后获取该功能指令对应的执行结果;QGAProxy模块3,接收来自于QGA调度模块2发送的功能指令并把功能指令逐条下发至对应虚拟机后收集虚拟机针对功能指令所返回的执行结果,并利用内置的多个定时器按时把执行结果上传至QGA调度模块2;加载并运行于虚拟机中的QGA套接字服务器,该QGA套接字服务器与QGAProxy模块3所对应的套接字客户端相通讯。

在本实施方式中仅示出三个QGA套接字服务器,即加载并运行于虚拟机VM_1中的QGA套接字服务器41,加载并运行于虚拟机VM_2中的QGA套接字服务器42,加载并运行于虚拟机VM_n中的QGA套接字服务器4-n。QGAProxy模块3包括套接字客户端31、套接字客户端32及套接字客户端3-n。其中,套接字客户端31与虚拟机VM_1的QGA套接字服务器41数据通信,套接字客户端32与虚拟机VM_2的QGA套接字服务器42数据通信,套接字客户端3-n与虚拟机VM_n的QGA套接字服务器4-n数据通信。套接字客户端31、32或3-n向套接字服务器41、42或4-n发出服务请求,套接字服务器41、42或4-n接收到请求后,提供相应的服务。

具体的,QGA调度模块2部署并运行于开源云计算平台的控制服务器上。QGAProxy模块3部署并运行于开源云计算平台的计算服务器中。具体的,该控制服务器为提供调度、网络控制及数据库等功能的物理服务器。该QGAProxy模块3共分为两部分:api和proxy。其中,api部分使用Eventlet自带的api接口,监听指定http端口接收QGA调度模块2所下发的指令,接收到具体的指令后,调用socket接口将指令信息发送到对应虚拟机,此时会和虚拟机中的QGA后台进程进行数据通信,并定时获取结果返回给QGA调度模块2。Proxy包括三个定时器:清理内存定时器、刷新虚拟机列表定时器、数据接收定时器。

上述三种定时器的具体作用如下。清理内存定时器:proxy接收到的所有虚拟机返回的数据都会临时保存至内存,正确传送至QGA调度模块2的数据会被安全移除,长时间未上传的无效数据就会被该定时器检测出来并定期删除,以防内存泄露。刷新虚拟机列表定时器:proxy会定期刷新虚拟机列表,保证列表中的虚拟机都是存活可用的,并建立安全且唯一的socket连接;而已经删除或状态异常的虚拟机会被该定时器从列表中移除,且断开socket连接。数据接收定时器:proxy会定时接收所有虚拟机返回的指令执行结果数据,并对数据进行一系列json格式解析,等待api部分接收,如果不被接收则会被清理内存定时器清理掉。

如图3所示,该QGA调度模块2可同时与部署于多个计算服务器中的QGAProxy模块3及QGAProxy模块3’进行数据的调用与通讯。在本实施方式中,该QGA套接字服务器与QGAProxy模块3所对应的套接字客户端(即套接字客户端31、套接字客户端32及套接字客户端3-n)之间形成双向数据通信。QGA调度模块2通过调用QGAProxy模块3的HTTPAPI与QGAProxy模块3相通讯。QGA套接字服务器(即QGA套接字服务器41、QGA套接字服务器42、QGA套接字服务器4-n)部署于虚拟机的镜像模板中。上述QGA套接字服务器41部署于虚拟机VM-1的镜像模板中,上述QGA套接字服务器42部署于虚拟机VM-2的镜像模板中,上述QGA套接字服务器4-n部署于虚拟机VM-n的镜像模板中。

如图1所示,该Web访问模块1作为直接提供给用户的展示界面,而良好的用户界面是产品中至关重要的一个环节,其通过Javacript、Php、DIV、CSS等技术相结合制作用户访问界面。

QGA调度模块2主要的功能是与QGAProxy模块3进行数据通信,对指定的虚拟机(VM_1、VM_2。。。。VM_n)发起指定功能指令并获取操作对应指令的执行结果。QGA调度模块2向上为WEB端提供WSGI6,向下调用QGAProxy模块3的HTTPAPI。

QGAProxy模块3是一个功能模块,运行在开源云计算平台的计算服务器上。计算服务器指运行云主机的物理机。QGAProxy模块3相当于一个数据中转站,其一方面用于接收来自于QGA调度模块2所下发的多条功能指令,并把指令逐条下发至对应虚拟机;另一方面用于收集所有虚拟机针对其接收的具体功能指令所返回的执行结果,并利用定时器按时把收集到的结果上传至QGA调度模块2中。在本实施方式中,通过QGAProxy模块3,可以显著的提高虚拟机管控系统的性能与响应速度,提高数据传输安全性等。

在制作linux以及windows模板的过程中,会把QGA相关的程序制作进模板,并把程序设置为开机自启动,这样我们能保证每一台运行的虚拟机都有一个QGA后台进程。该进程主要的作用是与QGAProxy模块3进行双向数据通信,解析并提取出QGAProxy模块3所传入的具体指令,最终根据指令对虚拟机进行相应的控制管理及具体操作。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

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