一种基于Ovirt和事件驱动的虚拟机管理方法及系统与流程

文档序号:23761231发布日期:2021-01-29 18:53阅读:49来源:国知局
一种基于Ovirt和事件驱动的虚拟机管理方法及系统与流程
一种基于ovirt和事件驱动的虚拟机管理方法及系统
技术领域
[0001]
本发明涉及虚拟机技术领域,特别指一种基于ovirt和事件驱动的虚拟机管理方法及系统。


背景技术:

[0002]
虚拟机管理包括开机中、开启、关闭、磁盘创建异常、网络状态、物理主机状态、存储连通性等状态管理。虚拟化平台ovirt已有监控器对虚拟机的各状态进行监控,并提供接口查询虚拟机的状态,但要使用时需要对虚拟化平台ovirt的状态进行轮询查找,并进行数据的全量发送,不仅开销过大,随着虚拟机数量以及主机数量的增大容易导致网络拥堵;且在对虚拟机管理的过程中,需要依赖状态响应对应的操作,传统上需要事先写好相应的处理方法,存在与代码耦合高,复用困难的缺点。
[0003]
因此,如何提供一种基于ovirt和事件驱动的虚拟机管理方法及系统,实现提升虚拟机管理的响应速度以及复用性,成为一个亟待解决的问题。


技术实现要素:

[0004]
本发明要解决的技术问题,在于提供一种基于ovirt和事件驱动的虚拟机管理方法及系统,实现提升虚拟机管理的响应速度以及复用性。
[0005]
第一方面,本发明提供了一种基于ovirt和事件驱动的虚拟机管理方法,包括如下步骤:
[0006]
步骤s10、客户端查询服务端的配置数据并缓存到本地;
[0007]
步骤s20、客户端基于所述配置数据,在服务端的ovirt上注册虚拟机状态的监听事件;
[0008]
步骤s30、所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,实现虚拟机的管理。
[0009]
进一步地,所述步骤s10中,所述配置数据包括主机性能、虚拟机数量、存储大小、磁盘大小以及网络带宽。
[0010]
进一步地,所述步骤s20中,所述虚拟机状态包括主机状态、网络状态、磁盘状态、开机状态、关闭状态、磁盘卸载状态、磁盘挂载状态以及虚拟机重构状态;
[0011]
所述主机状态包括主机是否可用、主机状态事件、主机添加成功、是否超时以及主机添加失败;所述网络状态包括网络创建、是否完成、网络状态事件、是否超时以及网络创建完成;所述磁盘状态包括磁盘创建是否完成、磁盘状态事件、是否超时以及磁盘创建完成;所述开机状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、开启虚拟机、虚拟机状态事件、是否超时以及返回开启完成;所述关闭状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、关闭虚拟机、虚拟机状态事件、返回关闭成功以及返回关闭完成;所述磁盘卸载状态包括磁盘状态、卸载磁盘状态、卸载磁盘完成、是否超时以及挂载磁盘失败;所述磁盘挂载状态包括磁盘状态、挂载磁盘、是否超时、
挂载磁盘完成以及挂载磁盘失败;所述虚拟机重构状态包括虚拟机状态、虚拟机关闭事件、虚拟机卸载磁盘以及挂载虚拟机。
[0012]
进一步地,所述步骤s30具体为:
[0013]
服务端通过netty开启与客户端之间的通道,在所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,客户端基于接收的所述变化的数据更新本地的配置数据,实现对虚拟机的管理。
[0014]
第二方面,本发明提供了一种基于ovirt和事件驱动的虚拟机管理系统,包括如下模块:
[0015]
配置数据缓存模块,用于客户端查询服务端的配置数据并缓存到本地;
[0016]
监听事件注册模块,用于客户端基于所述配置数据,在服务端的ovirt上注册虚拟机状态的监听事件;
[0017]
虚拟机管理模块,用于所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,实现虚拟机的管理。
[0018]
进一步地,所述配置数据缓存模块中,所述配置数据包括主机性能、虚拟机数量、存储大小、磁盘大小以及网络带宽。
[0019]
进一步地,所述监听事件注册模块中,所述虚拟机状态包括主机状态、网络状态、磁盘状态、开机状态、关闭状态、磁盘卸载状态、磁盘挂载状态以及虚拟机重构状态;
[0020]
所述主机状态包括主机是否可用、主机状态事件、主机添加成功、是否超时以及主机添加失败;所述网络状态包括网络创建、是否完成、网络状态事件、是否超时以及网络创建完成;所述磁盘状态包括磁盘创建是否完成、磁盘状态事件、是否超时以及磁盘创建完成;所述开机状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、开启虚拟机、虚拟机状态事件、是否超时以及返回开启完成;所述关闭状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、关闭虚拟机、虚拟机状态事件、返回关闭成功以及返回关闭完成;所述磁盘卸载状态包括磁盘状态、卸载磁盘状态、卸载磁盘完成、是否超时以及挂载磁盘失败;所述磁盘挂载状态包括磁盘状态、挂载磁盘、是否超时、挂载磁盘完成以及挂载磁盘失败;所述虚拟机重构状态包括虚拟机状态、虚拟机关闭事件、虚拟机卸载磁盘以及挂载虚拟机。
[0021]
进一步地,所述虚拟机管理模块具体为:
[0022]
服务端通过netty开启与客户端之间的通道,在所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,客户端基于接收的所述变化的数据更新本地的配置数据,实现对虚拟机的管理。
[0023]
本发明的优点在于:
[0024]
通过在服务端的ovirt上注册虚拟机状态的监听事件,当虚拟机状态发生变化时,将变化的数据推送给客户端,相对于传统上轮询查找以及全量发送,极大的降低了服务器的开销,进而极大的提升了虚拟机管理的响应速度。通过事件表关联的方法将变化的数据推送给客户端,不必像传统上先写好相应的处理方法,进而极大的提升了虚拟机管理的复
用性。
附图说明
[0025]
下面参照附图结合实施例对本发明作进一步的说明。
[0026]
图1是本发明一种基于ovirt和事件驱动的虚拟机管理方法的流程图。
[0027]
图2是本发明一种基于ovirt和事件驱动的虚拟机管理方法的结构示意图。
[0028]
图3是本发明虚拟机状态流转示意图。
具体实施方式
[0029]
请参照图1至图3所示,本发明一种基于ovirt和事件驱动的虚拟机管理方法的较佳实施例,包括如下步骤:
[0030]
步骤s10、客户端查询服务端的配置数据并缓存到本地;
[0031]
步骤s20、客户端基于所述配置数据,在服务端的ovirt上注册虚拟机状态的监听事件;各所述监听事件均关联一唯一的事件id,虚拟机状态监听,数据传输均通过所述事件id进行关联;
[0032]
步骤s30、所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,实现虚拟机的管理。通过在服务端的ovirt上注册虚拟机状态的监听事件,当虚拟机状态发生变化时,将变化的数据推送给客户端,相对于传统上轮询查找以及全量发送,极大的降低了服务器的开销,进而极大的提升了虚拟机管理的响应速度。通过事件表关联的方法将变化的数据推送给客户端,不必像传统上先写好相应的处理方法,进而极大的提升了虚拟机管理的复用性。
[0033]
所述步骤s10中,所述配置数据包括主机性能、虚拟机数量、存储大小、磁盘大小以及网络带宽。
[0034]
所述步骤s20中,所述虚拟机状态包括主机状态、网络状态、磁盘状态、开机状态、关闭状态、磁盘卸载状态、磁盘挂载状态以及虚拟机重构状态;
[0035]
所述主机状态包括主机是否可用、主机状态事件、主机添加成功、是否超时以及主机添加失败;所述网络状态包括网络创建、是否完成、网络状态事件、是否超时以及网络创建完成;所述磁盘状态包括磁盘创建是否完成、磁盘状态事件、是否超时以及磁盘创建完成;所述开机状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、开启虚拟机、虚拟机状态事件、是否超时以及返回开启完成;所述关闭状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、关闭虚拟机、虚拟机状态事件、返回关闭成功以及返回关闭完成;所述磁盘卸载状态包括磁盘状态、卸载磁盘状态、卸载磁盘完成、是否超时以及挂载磁盘失败;所述磁盘挂载状态包括磁盘状态、挂载磁盘、是否超时、挂载磁盘完成以及挂载磁盘失败;所述虚拟机重构状态包括虚拟机状态、虚拟机关闭事件、虚拟机卸载磁盘以及挂载虚拟机。例如创建虚拟机,需要等待虚拟机创建完成事件:推动系统盘创建,等待系统盘创建完成事件触发挂载系统盘,挂载系统盘事件,最终事件驱动完成整个虚拟机创建流程。
[0036]
所述步骤s30具体为:
[0037]
服务端通过netty开启与客户端之间的通道,在所述监听事件监听到虚拟机状态
发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,客户端基于接收的所述变化的数据更新本地的配置数据,实现对虚拟机的管理。由于仅推送变化的数据,数据量小,且响应及时,避免因全部传输而导致网络请求过大。
[0038]
本发明一种基于ovirt和事件驱动的虚拟机管理系统的较佳实施例,包括如下模块:
[0039]
配置数据缓存模块,用于客户端查询服务端的配置数据并缓存到本地;
[0040]
监听事件注册模块,用于客户端基于所述配置数据,在服务端的ovirt上注册虚拟机状态的监听事件;各所述监听事件均关联一唯一的事件id,虚拟机状态监听,数据传输均通过所述事件id进行关联;
[0041]
虚拟机管理模块,用于所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,实现虚拟机的管理。通过在服务端的ovirt上注册虚拟机状态的监听事件,当虚拟机状态发生变化时,将变化的数据推送给客户端,相对于传统上轮询查找以及全量发送,极大的降低了服务器的开销,进而极大的提升了虚拟机管理的响应速度。通过事件表关联的方法将变化的数据推送给客户端,不必像传统上先写好相应的处理方法,进而极大的提升了虚拟机管理的复用性。
[0042]
所述配置数据缓存模块中,所述配置数据包括主机性能、虚拟机数量、存储大小、磁盘大小以及网络带宽。
[0043]
所述监听事件注册模块中,所述虚拟机状态包括主机状态、网络状态、磁盘状态、开机状态、关闭状态、磁盘卸载状态、磁盘挂载状态以及虚拟机重构状态;
[0044]
所述主机状态包括主机是否可用、主机状态事件、主机添加成功、是否超时以及主机添加失败;所述网络状态包括网络创建、是否完成、网络状态事件、是否超时以及网络创建完成;所述磁盘状态包括磁盘创建是否完成、磁盘状态事件、是否超时以及磁盘创建完成;所述开机状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、开启虚拟机、虚拟机状态事件、是否超时以及返回开启完成;所述关闭状态包括检查虚拟机锁定、锁定事件、锁定虚拟机、已锁定的虚拟机返回失败、关闭虚拟机、虚拟机状态事件、返回关闭成功以及返回关闭完成;所述磁盘卸载状态包括磁盘状态、卸载磁盘状态、卸载磁盘完成、是否超时以及挂载磁盘失败;所述磁盘挂载状态包括磁盘状态、挂载磁盘、是否超时、挂载磁盘完成以及挂载磁盘失败;所述虚拟机重构状态包括虚拟机状态、虚拟机关闭事件、虚拟机卸载磁盘以及挂载虚拟机。例如创建虚拟机,需要等待虚拟机创建完成事件:推动系统盘创建,等待系统盘创建完成事件触发挂载系统盘,挂载系统盘事件,最终事件驱动完成整个虚拟机创建流程。
[0045]
所述虚拟机管理模块具体为:
[0046]
服务端通过netty开启与客户端之间的通道,在所述监听事件监听到虚拟机状态发生变化时,将对应的监听事件插入事件表中,并基于所述事件表关联的方法将变化的数据推送给客户端,客户端基于接收的所述变化的数据更新本地的配置数据,实现对虚拟机的管理。由于仅推送变化的数据,数据量小,且响应及时,避免因全部传输而导致网络请求过大。
[0047]
综上所述,本发明的优点在于:
[0048]
通过在服务端的ovirt上注册虚拟机状态的监听事件,当虚拟机状态发生变化时,将变化的数据推送给客户端,相对于传统上轮询查找以及全量发送,极大的降低了服务器的开销,进而极大的提升了虚拟机管理的响应速度。通过事件表关联的方法将变化的数据推送给客户端,不必像传统上先写好相应的处理方法,进而极大的提升了虚拟机管理的复用性。
[0049]
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1