[发明专利]一种基于代理服务的虚拟机内部数据采集方法有效
申请号: | 201210327983.0 | 申请日: | 2012-09-06 |
公开(公告)号: | CN102929769A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 吴松;石宣化;金海;邓莉 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F9/445;H04L29/08 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 代理 服务 虚拟机 内部 数据 采集 方法 | ||
1.一种基于代理服务的虚拟机内部数据采集方法,应用于包括多台物理机和一个核心管理节点的集群环境中,物理机上运行有客户虚拟机和特权虚拟机,其特征在于,所述方法包括下列步骤:
(1)启动物理机及其特权虚拟机;
(2)特权虚拟机启动后台守护进程,以等待接收来自客户虚拟机的虚拟机内部状态信息,一旦接收到虚拟机内部状态信息,就保存在本地的数据库中;
(3)特权虚拟机启动XML-RPC服务进程,为核心管理节点提供各虚拟机内部运行状态信息;
(4)启动客户虚拟机,并在客户虚拟机中启动代理服务程序,利用域间通信发送客户虚拟机的内部运行状态信息到同一物理机上特权虚拟机中的后台守护进程;
(5)核心管理节点定期通过XML-RPC远程调用方法获取各物理机上实时的虚拟机内部运行状态信息。
2.根据权利要求1所述的虚拟机内部数据采集系统,其特征在于,虚拟机内部运行状态信息包括内存使用状态信息、CPU使用状态信息、磁盘I/O使用状态信息、进程信息。
3.根据权利要求1所述的虚拟机内部数据采集系统,其特征在于,步骤(2)包括以下子步骤:
(2-1)后台守护进程为该物理机上每一个虚拟机创建信息持久化线程;
(2-2)信息持久化线程向控制请求模块发出控制命令,请求相应的客户虚拟机开始传输虚拟机内部运行状态数据信息;
(2-3)控制请求模块调用控制环的写接口,将控制命令写入相应客户虚拟机操作系统的控制环中,通过事件通道告诉客户虚拟机“有控制信息到达”。
(2-4)信息持久化线程等待,并判断是否接收到来自相应客户虚拟机的“控制信息已读取”的通知,若是则转入步骤(2-5),否则重复步骤(2-4);
(2-5)信息持久化线程判断是否接收到来自相应客户虚拟机的“有数据到达”的通知,如是则转入步骤(2-6),否则重复步骤(2-5);
(2-6)信息持久化线程唤醒数据监听模块,数据监听模块通过后端的数据设备接口读取共享数据环中的数据;
(2-7)信息持久化线程将读取的数据写入本地数据库中;
(2-8)数据监听模块通知相应的客户虚拟机“数据已读取”,并转入步骤(2-5)。
4.根据权利要求1所述的虚拟机内部数据采集系统,其特征在于,步骤(3)包括以下子步骤:
(3-1)XML-RPC服务进程开启XML-RPC服务器;
(3-2)XML-RPC服务进程监听本地端口,以判断是否接收到一个新的XML-RPC请求,若是则转入步骤(3-3),否则重复步骤(3-2);
(3-3)判断XML-RPC请求是否为读数据请求,若是则执行该XML-RPC读数据请求,然后返回步骤(3-2),否则返回步骤(3-2)。
5.根据权利要求1所述的虚拟机内部数据采集系统,其特征在于,步骤(4)包括以下子步骤:
(4-1)代理服务程序判断是否接收到来自特权虚拟机的“有控制信息到达”的通知,如是则转入步骤(4-2),否则转入步骤(4-1);
(4-2)代理服务程序唤醒控制监听模块,控制监听模块从共享控制环中读取命令,并通知特权虚拟机“控制信息已读取”;
(4-3)代理服务程序创建一个信息采集线程;
(4-4)代理服务程序创建一个先进先出队列,用于保存虚拟机内部运行状态数据信息;
(4-5)信息采集线程每秒获取内存使用状态信息、CPU使用状态信息、磁盘I/O使用状态信息、进程信息,写入先进先出队列的队尾;
(4-6)数据发送模块从先进先出队列的队头取出数据进行打包,通过数据设备接口将数据写入共享数据环中,通过事件通道告诉特权虚拟机“有数据到达”;
(4-7)代理服务程序判断是否接收到来自特权虚拟机的“数据已读取”的通知,如是则返回步骤(4-6),否则重复步骤(4-7)。
6.根据权利要求1所述的虚拟机内部数据采集系统,其特征在于,步骤(5)包括以下子步骤:
(5-1)核心管理节点在本地数据库中保存集群中所有托管节点的网络地址;
(5-2)核心管理节点创建一个存储有所有托管节点实时信息的全局信息表;
(5-3)核心管理节点创建一个线程,用于管理对应各个托管节点的信息收集处理线程的生命周期;该线程被称为信息收集管理器;
(5-4)核心管理节点在启动时从数据库中读取所有托管节点的基本信息,并根据这些信息为每一个托管节点分别创建一个信息收集线程,并为每个信息收集线程分配N个令牌,其中N为正整数;
(5-5)判断信息收集线程的令牌数是否为N/2,如是则转入步骤(5-6),否则转入步骤(5-9);
(5-6)判断是否存在托管节点被删除,若是则设置该托管节点对应的信息收集线程的令牌数为0,并转入步骤(5-7),否则转入步骤(5-7);
(5-7)判断是否存在托管节点没有对应的信息收集线程,若是则为其创建信息收集线程并分配令牌,并转入步骤(5-8),否则转入步骤(5-8);
(5-8)将其余正常托管节点对应的信息收集线程的令牌数重新置为N;
(5-9)判断信息收集线程的令牌数是否为0,若是则过程结束,否则转入步骤(5-10);
(5-10)信息收集线程每秒向其对应的托管节点上特权虚拟机的后台守护进程请求获取系统实时数据,并更新全局信息表;
(5-11)信息收集线程的令牌个数减1,并返回步骤(5-5)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210327983.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:镀膜装置及其镀膜方法
- 下一篇:一种人力合力驱动器