虚拟机管理服务模块热升级的方法和设备技术

技术编号:16885759 阅读:64 留言:0更新日期:2017-12-27 03:33
本申请的目的是提供了一种用于实现虚拟机管理服务模块热升级的方法和设备,以解决现有技术中虚拟机管理服务模块无法热升级的问题。所述方法包括:利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程在热升级中持续接收服务请求;创建处理线程管理单元;由所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动。实现服务请求接收线程和服务请求处理线程的独立,进行多线程处理,虚拟机管理服务模块的热升级阶段,服务请求接收线程持续接收服务请求,并进行解析和编码后发送至消息栈,服务请求处理线程退出并启动新服务请求处理线程后,主要处理逻辑随之重新加载,完成升级。

The method and equipment for the thermal upgrade of the virtual machine management service module

The purpose of this application is to provide a method and device for realizing the thermal upgrading of the virtual machine management service module, so as to solve the problem that the virtual machine management service module in the existing technology can not be upgraded. The method includes: using virtual machine management service module process creation request receiving thread and request processing thread, wherein the request receiving thread in thermally upgraded continuously receive the service request; create thread management unit; during the request processing thread exit and restart upgrade by the processing thread management unit thermal management. The service request receiving service request processing threads and thread independent, multi-threaded processing, hot stage of virtual machine management service module, service request receiving thread continues to receive a service request, and sent to the message parsing and encoding stack, service request processing thread exit and start a new service request processing thread, the main the processing logic then re loading, complete the upgrade.

【技术实现步骤摘要】
虚拟机管理服务模块热升级的方法和设备
本申请涉及计算机领域,尤其涉及一种虚拟机管理服务模块热升级的技术。
技术介绍
虚拟化平台因其较佳地性能以及灵活快捷的服务能力成为互联领域的技术发展主流,在Xen中(一种开放源代码虚拟化平台)中,Xend(一种开放源代码虚拟化平台)作为VM(VirtualMachine,虚拟机)生命周期中最重要的模块,它决定着VM创建、关闭、销毁等操作能否顺利完成。同时,它也是整个控制系统当中不可缺少的一环。Xend(Xen中用来管理所有虚拟机的一个服务,虚拟机管理服务模块)以daemon进程(后台进程)的方式运行在物理服务器上,它里面主要包含了两个服务:HTTPServer(超文本传输协议服务)和XMLRPCServer(基于标准通用标记语言的远程过程调用协议服务)。这两个服务分别来处理libvirt(虚拟化工具接口库)和xm命令(Xen的管理基本工具,包括开启、重启、关闭Xen)发来的操作请求。那么从Server层面来说,传统的热升级方法是每个Server起两个进程,这两个进程之交替退出进行升级。这样做的前提是两server个进程之间是独立的,没有什么数据交互。但是对Xend来说,在Xend起来的过程,会给VM注册一些回调事件,同时里面还有一些定时任务。如果多次注册同一个事件就会引起数据的不一致。比如VMRelease事件(VM释放事件),如果多次释放同一个就会造成XendCore掉(崩溃)。随着云集群规模的不断增大和整个控制系统版本迭代速度的加快,Xend无法热升级已经成为其中最明显的短板。每次的Xend版本迭代,我们都必须要关闭售卖以及限制用户相关操作来防止VM操作失败。这样不仅影响了用户体验,同时也给运维加重了不少负担。
技术实现思路
本申请的目的是提供一种能够实现虚拟机管理服务模块热升级的方法和设备,以解决现有技术中虚拟机管理服务模块无法热升级的问题。根据本申请的一个方面,提供了一种用于虚拟机管理服务模块热升级的方法,包括:利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程在热升级中持续接收服务请求;创建处理线程管理单元;由所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动。进一步地,利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程用于持续接收服务请求、进行解析和编码、并将编码后的所述服务请求发送至消息栈,所述请求处理线程从所述消息栈中提取编码后的所述服务请求并处理所述服务请求。进一步地,所述请求接收线程用于包括:持续接收服务请求;解析所述服务请求是否为正常请求,若否则反馈错误,若是则对所述服务请求进行编码;将编码后的所述服务请求发送至所述消息栈。进一步地,所述请求处理线程用于包括:从所述消息栈中提取编码后的所述服务请求;对编码后的所述服务请求进行解码处理;解析解码处理后的所述服务请求,并查询所述服务请求对应的方法是否存在,若存在,则处理所述服务请求。进一步地,所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动包括:接收热升级通知;基于热升级通知触发服务处理进程的请求处理线程退出;待所述请求处理线程退出后,判断其退出类型,若为热升级退出类型,则启动新请求处理线程。进一步地,待所述请求处理线程退出后,判断其退出类型,若为热升级退出类型,则启动新请求处理线程还包括:启动新请求处理线程后,由所述新请求处理线程从所述消息栈中提取解析后的所述服务请求。进一步地,基于热升级通知触发服务处理进程的请求处理线程退出还包括:等待所述请求处理线程检查当前是否正在处理所述服务请求,若是则等待直至处理完毕后退出。进一步地,所述方法还包括:在启动所述新请求处理线程后,重新注册所有存活的监控事件。进一步地,所述方法还包括:将虚拟机管理服务模块相关主逻辑处理模块的引用类型设置为服务请求处理线程引用类型。进一步地,所述虚拟机管理服务模块包括超文本传输协议服务处理进程及基于标准通用标记语言的远程过程调用协议服务处理进程中至少任一种。根据本申请的另一个方面,提供了一种用于虚拟机管理服务模块热升级的设备,其中,所述设备包括:线程创建装置,用于利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程在热升级中持续接收服务请求;管理创建装置,用于创建处理线程管理单元;所述处理线程管理装置,用于由所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动;进一步地,所述线程创建装置用于利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程用于持续接收服务请求、进行解析和编码、并将编码后的所述服务请求发送至消息栈,所述请求处理线程从所述消息栈中提取编码后的所述服务请求并处理所述服务请求。进一步地,所述请求接收线程用于包括:持续接收服务请求;解析所述服务请求是否为正常请求,若否则反馈错误,若是则对所述服务请求进行编码;将编码后的所述服务请求发送至所述消息栈。进一步地,所述请求处理线程用于包括:从所述消息栈中提取编码后的所述服务请求;对编码后的所述服务请求进行解码处理;解析解码处理后的所述服务请求,并查询所述服务请求对应的方法是否存在,若存在,则处理所述服务请求。进一步地,所述处理线程管理装置包括:接收单元,用于接收热升级通知;触发单元,用于基于所述热升级通知触发服务处理进程的请求处理线程退出;启动单元,用于待所述请求处理线程退出后,判断其退出类型,若为热升级退出类型,则启动新请求处理线程。进一步地,所述启动单元还用于:在启动新请求处理线程后,调用所述新请求处理线程从所述消息栈中提取解析后的所述服务请求。进一步地,所述触发单元还包括:等待所述请求处理线程检查当前是否正在处理所述服务请求,若是则等待直至处理完毕后退出。进一步地,所述设备还包括:注册装置,用于在启动所述新请求处理线程后,重新注册所有存活的监控事件。进一步地,所述方法还包括:设置装置,用于将虚拟机管理服务模块相关主逻辑处理模块的引用类型设置为服务请求处理线程引用类型。进一步地,所述虚拟机管理服务模块包括超文本传输协议服务处理进程及基于标准通用标记语言的远程过程调用协议服务处理进程中至少任一种。相比于现有技术,本申请实施例所述的所述用于虚拟机管理服务模块热升级的方法和设备,通过对服务请求处理进程进行改进,将服务请求接收线程和服务请求处理线程独立开来,将服务请求的接收和服务请求的处理改为多线程处理,并将服务请求的主要处理逻辑由全局引用类型更改为服务请求处理线程引用类型,虚拟机管理服务模块的热升级阶段,服务请求接收线程持续接收服务请求,并进行解析和编码后发送至消息栈,服务请求处理线程退出并启动新服务请求处理线程后,主要处理逻辑随之重新加载,完成升级。进一步地,通过处理线程对服务请求处理线程进行管理,当接受到热升级信号时,会通知服务请求处理线程退出,并在其退出后根据退出类型进行判断,当为热升级类型则启动新服务请求处理线程,去处理消息栈中的服务请求,同时对物理服务器上所有活的虚拟机的监控事件进行重新注册。从而实现了无消息丢失地对虚拟机管理服务模块进行热升级。附图说明通过阅读参照以下附图所作的对非限制本文档来自技高网
...
虚拟机管理服务模块热升级的方法和设备

【技术保护点】
一种用于虚拟机管理服务模块热升级的方法,其中,所述方法包括:利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程在热升级中持续接收服务请求;创建处理线程管理单元;由所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动。

【技术特征摘要】
1.一种用于虚拟机管理服务模块热升级的方法,其中,所述方法包括:利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程在热升级中持续接收服务请求;创建处理线程管理单元;由所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动。2.根据权利要求1所述的方法,其中,利用虚拟机管理服务模块进程创建请求接收线程和请求处理线程,其中,所述请求接收线程用于持续接收服务请求、进行解析和编码、并将编码后的所述服务请求发送至消息栈,所述请求处理线程从所述消息栈中提取编码后的所述服务请求并处理所述服务请求。3.根据权利要求2所述的方法,其中,所述请求接收线程用于包括:持续接收服务请求;解析所述服务请求是否为正常请求,若否则反馈错误,若是则对所述服务请求进行编码;将编码后的所述服务请求发送至所述消息栈。4.根据权利要求2所述的方法,其中,所述请求处理线程用于包括:从所述消息栈中提取编码后的所述服务请求;对编码后的所述服务请求进行解码处理;解析解码处理后的所述服务请求,并查询所述服务请求对应的方法是否存在,若存在,则处理所述服务请求。5.根据权利要求1所述的方法,其中,所述处理线程管理单元管理热升级期间所述请求处理线程的退出和新启动包括:接收热升级通知;基于热升级通知触发服务处理进程的请求处理线程退出;待所述请求处理线程退出后,判断其退出类型,若为热升级退出类型,则启动新请求处理线程。6.根据权利要求5所述的方法,其中,待所述请求处理线程退出后,判断其退出类型,若为热升级退出类型,则启动新请求处理线程还包括:启动新请求处理线程后,由所述新请求处理线程从所述消息栈中提取解析后的所述服务请求。7.根据权利要求5所述的方法,其中,基于热升级通知触发服务处理进程的请求处理线程退出还包括:等待所述请求处理线程检查当前是否正在处理所述服务请求,若是则等待直至处理完毕后退出。8.根据权利要求5所述的方法,其中,所述方法还包括:在启动所述新请求处理线程后,重新注册所有存活的监控事件。9.根据权利要求1至8中任一项所述的方法,其中,所述方法还包括:将虚拟机管理服务模块相关主逻辑处理模块的引用类型设置为服务请求处理线程引用类型。10.根据权利要求1至8中任一项所述的方法,其中,所述虚拟机管理服务模块包括超文本传输协议服务处理进程及基于标准通用标记语言的远程过程调用协议服务处理进程中至少任一种。11.一种用于虚拟机管理服务...

【专利技术属性】
技术研发人员:周宜波
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1