一种云计算环境下子进程维护方法与流程

文档序号:11864490阅读:191来源:国知局
一种云计算环境下子进程维护方法与流程

本发明涉及云计算管理技术领域,特别是指一种云计算环境下子进程维护方法。



背景技术:

在云计算解决方案中,管理节点对实现节点(计算节点、存储节点、网络节点等)存在着大量的命令控制工作,尤其是实现端对于底层虚拟化的操作命令。通常为了实现程序的松耦合,对于底层的操作命令和管理端的程序是分离的,实现端对于底层的命令只负责调用,底层操作系统负责执行,并返回结果。然而对于一些执行时间较长的命令,比如拷贝镜像、传输文件、打包等操作,无法通过实现端对其进行中断、取消操作,比如关闭实现端进程时,理论上当前正在执行的任务也应该关闭,并返回执行失败。目前对于这类情况只能通过底层操作系统执行相关命令进行相关子进程的维护工作,这样存在以下弊端:

1、是维护性差,需要进入每个计算节点查看需要停止的子进程,有可能找到的时候子进程已经执行完成;

2、不安全,容易产生僵尸进程,当实现端主进程由于维护需要而关闭,由实现端执行的命令子进程有可能变成僵尸进程,从而影响系统正常使用;

为了从真正意义上实现对云计算环境下子进程的合理维护,需要一种当管理节点或者实现节点进程关闭时子进程自动关闭的维护机制。



技术实现要素:

本发明解决的技术问题在于提供一种云计算环境下子进程维护方法,解决传统方法存在的不足,为云计算环境下子进程提供一种维护性高,安全性好的解决方案。

本发明解决上述问题的技术方案是,包括以下步骤:

所述方法包括如下步骤:

步骤1:管理节点及实现节点进程启动后,注册关闭进程挂钩,用于处理子进程;

步骤2:子进程产生记录至子进程Maps,销毁时移出Maps;

步骤3:管理节点及实现节点进程通过关闭时,先调用挂钩线程;

步骤4:执行挂钩线程,关闭子进程Maps里面所有记录子进程。

所述的管理节点和实现节点分别是云计算解决方案中的管理模块和实现模块;

所述的管理模块是指云计算解决方案中负责产生任务、发送任务、接收任务反馈的业务控制管理模块,该模块只负责产生任务,不负责任务实现;

所述的实现模块是云计算解决方案中负责消费任务,任务实现的业务功能模块。

所述的进程挂钩,是JAVA中Runtime.addShutdownHook方法,用来在jvm中增加一个关闭的钩子;当程序正常退出,系统调用System.exit方法或虚拟机被关闭时才会执行添加的shutdownHook线程;其中shutdownHook是一个已初始化但并不有启动的线程,当JVM关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,JVM才会关闭。

所述的子进程产生记录至子进程Maps,销毁时移出Maps;

所述的子进程,是云计算环境下一些通过管理节点或实现节点发起的底层操作命令,产生的子进程;

所述的进程Maps,主要适用于记录所有子进程的信息表,比如子进程的id,名称,内容等。

本发明的方法维护性好,主进程关闭时,会优先关闭所有子进程,适用于云计算环境中执行时间较长的命令。本发明的方法安全性高,避免了由于主进程关闭,而导致子进程变成僵尸进程的风险,提高了系统的稳定性,降低子进程长时间驻留内存,导致JVM虚拟机死机或者系统内存利用率高的风险。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图;

图2为本发明的技术原理图;

具体实施方式

如图1、2所示,本发明主要核心是通过进程挂钩来实现,具体实施过程如下:

1、管理节点及实现节点进程启动后,注册关闭进程挂钩,用于处理子进程;

Runtime对象的addShutdownHook(Thread hook)方法中注册新的虚拟机来关闭挂钩。Hook线程中实现环境清理工作。

2、子进程产生记录至子进程Maps,销毁时移出Maps;

3、管理节点及实现节点进程通过关闭时,先调用挂钩线程;

4、执行挂钩线程,关闭子进程Maps里面所有记录子进程。

比如创建虚拟机没有进行镜像cache时,会自动拷贝镜像到cache目录。在拷贝的过程中,通过kill实现端进程id、ctrl+C取消执行时,相关dd进程消失。

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