数据处理方法、装置及服务器的制造方法

文档序号:10654344阅读:255来源:国知局
数据处理方法、装置及服务器的制造方法
【专利摘要】本发明实施例提供了一种数据处理方法、装置及服务器,该方法中,对于每一虚拟化厂商环境,都可以通过与之建立的通信通道获得该虚拟化厂商环境的基础信息,在接收到获取目的主机的性能数据请求时,可以依据基础信息获得该目的主机的目的虚拟化厂商环境地址,并建立与目的虚拟化厂商环境的目的通信通道,从而通过该目的通信通道获得目的主机的性能数据。通过本发明实施例所提供的方法可以查看不同的虚拟化厂商环境中各个主机的性能数据,不需要在各个物理机上安装第三方监控软件,也不需要登录各个物理机,从而减少了管理人员的管理工作量,且提高了物理机的运行效率。
【专利说明】
数据处理方法、装置及服务器
技术领域
[0001]本发明实施例涉及虚拟化技术,更具体的涉及一种数据处理方法、装置及服务器。 【背景技术】
[0002]虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理机上模拟出一台或多台虚拟机,每台虚拟机实际又可以像物理机一样工作,例如安装操作系统和应用程序、访问网络资源等等。利用虚拟机技术,一台物理机可以被虚拟成带有多个操作系统的虚拟机,从而显著提升了物理机的利用效率。
[0003]然而,虚拟机技术在提升了计算机利用率的同时,也增加了系统的管理成本。一方面,系统管理员需要管理的计算机数量变为原本的几倍;另一方面,物理机所在的虚拟化厂商环境多种多样,例如目前常见的0;11:1^1、¥8。116^、(^6118丨3〇1^等,需要管理员对不同虚拟化厂商环境中各个物理机和各个虚拟机进行管理,这些都增加了管理难度。
[0004]目前,管理虚拟机和物理机主要通过如下方式:在物理机上安装第三方监控软件, 当需要查看该物理机上各个虚拟机的性能数据时,登录该物理机,并调用第三方监控软件进行查看,当物理机和虚拟机较多时,需要管理人员的管理工作量较大,且将第三方监控软件安装在物理机上,占用物理机的空间,降低了物理机的运行效率。
【发明内容】

[0005]有鉴于此,本发明提供了一种数据处理方法、装置及服务器,以克服现有技术中物理机和虚拟机较多时,管理人员管理工作量较大,且将第三方监控软件安装在物理机上,占用物理机的空间,降低了物理机的运行效率的问题。
[0006]为实现上述目的,本发明提供如下技术方案:
[0007]—种数据处理方法,包括:
[0008]对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通信通道;
[0009]对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获取所述虚拟化厂商环境的基础信息,所述基础信息包括主机地址以及所述虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或虚拟机;
[0010]接收获取目的主机性能数据请求,所述获取目的主机性能数据请求包括所述目的主机的目的主机地址;
[0011]从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址;
[0012]与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商环境建立目的通信通道;
[0013]通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据。
[0014]优选地,预先依据性能数据的属性信息定义封装对象,在所述通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据之后,所述数据处理方法还包括:
[0015]将所述目的主机的性能数据依据属性信息进行分类;
[0016]对于每一类性能数据,将所述性能数据对与其属性信息对应的封装对象进行赋值,获得实例化封装对象;
[0017]对于每一实例化封装对象,接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表。
[0018]其中,所述接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表包括:[0〇19] 将所述实例化封装对象通过websocket推送web前端;
[0020]接收所述实例化封装对象的图表类型信息;[0〇21 ]利用javascript技术封装读取所述实例化封装对象中各个数据;
[0022]调用HighCharts.js文件,以所述实例化封装对象中各个数据为源数据,在jsp页面绘制与所述图表类型对应的图表。
[0023]其中,所述与所述虚拟化厂商环境建立通信通道包括:[〇〇24] 接收所述虚拟化厂商环境的验证信息,所述验证信息包括所述虚拟化厂商环境地址、用户名和密码;[〇〇25]将所述验证信息发送至所述虚拟化厂商环境;
[0026]接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建立所述通信通道。
[0027]其中,所述通过所述目的通信通道获取具有所述目的地址的目的主机的性能数据包括:
[0028]依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确定查询所述目的主机的性能数据的目的查询指令;
[0029]依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。
[0030]一种数据处理装置,包括:
[0031]通信通道建立模块,用于对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通信通道;
[0032]第一获取模块,用于对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获取所述虚拟化厂商环境的基础信息,所述基础信息包括主机地址以及所述虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/ 或虚拟机;
[0033]接收模块,用于接收获取目的主机性能数据请求,所述获取目的主机性能数据请求包括所述目的主机的目的主机地址;
[0034]第二获取模块,用于从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址;
[0035]目的通信通道建立模块,用于与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商环境建立目的通信通道;[〇〇36]第三获取模块,用于通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据。[〇〇37]优选的,预先依据性能数据的属性信息定义封装对象,所述数据处理装置还包括:
[0038]分类模块,用于将所述目的主机的性能数据依据属性信息进行分类;
[0039]实例化对象模块,用于对于每一类性能数据,将所述性能数据对与其属性信息对应的封装对象进行赋值,获得实例化封装对象;[〇〇4〇]生成图表模块,用于对于每一实例化封装对象,接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表。[0041 ]其中,对于每一虚拟化厂商环境,所述通信通道建立模块包括:[〇〇42]接收单元,用于接收所述虚拟化厂商环境的验证信息,所述验证信息包括所述虚拟化厂商环境地址、用户名和密码;[〇〇43]发送单元,用于将所述验证信息发送至所述虚拟化厂商环境;
[0044]第一确定单元,用于接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建立所述通信通道。[〇〇45]其中,所述第三获取模块包括:
[0046]第二确定单元,用于依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确定查询所述目的主机的性能数据的目的查询指令;
[0047]获取单元,用于依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。[〇〇48] 一种服务器,包括如上述任一所述数据处理装置。
[0049]经由上述的技术方案可知,与现有技术相比,本发明实施例提供了一种数据处理方法,对于每一虚拟化厂商环境,都可以通过与之建立的通信通道获得该虚拟化厂商环境的基础信息,在接收到获取目的主机的性能数据请求时,可以依据基础信息获得该目的主机的目的虚拟化厂商环境地址,并建立与目的虚拟化厂商环境的目的通信通道,从而通过该目的通信通道获得目的主机的性能数据。通过本发明实施例所提供的方法可以查看不同的虚拟化厂商环境中各个主机的性能数据,不需要在各个物理机上安装第三方监控软件, 也不需要登录各个物理机,从而减少了管理人员的管理工作量,且提高了物理机的运行效率。【附图说明】
[0050]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0051]图1为本发明实施例提供的一种数据处理方法的流程示意图;
[0052]图2为本发明实施例提供的一种数据处理方法中虚拟化厂商环境、物理机和虚拟机的节点关系彳目息不意图;[〇〇53]图3为本发明实施例提供的一种数据处理方法中接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型数据对应的图表的一种实现方式的方法流程示意图;[〇〇54]图4为本发明实施例提供的一种数据处理方法中与虚拟化厂商环境建立通信通道的一种实现方式的方法流程图;
[0055]图5为本发明实施例提供的一种数据处理装置的结构示意图;
[0056]图6为本发明实施例提供的一种数据处理方法中通信通道建立模块的结构示意图。【具体实施方式】
[0057]为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
[0058]CPU:Central Processing Unit,中央处理器;
[0059]IP:1nternet Protocol Address,网际协议地址;
[0060]API 〖Applicat1n Programming Interface,应用程序编程接口;[0061 ] HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer,网络协议;
[0062]HTTP:HyperText Transfer Protocol,超文本传输协议;
[0063]TCP:Transmiss1n Control Protocol,传输控制协议;
[0064]Web:互联网;
[0065]Jsp:Java Server Pages,java服务器页面;
[0066]SDK:software development kit,软件开发工具包;
[0067]UUID:Universally Unique Identifier,通用唯一识别码;
[0068]XML:Extensible Markup Language,可扩展置标语言。[〇〇69]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0070]请参阅图1,为本发明实施例提供的一种数据处理方法的流程示意图,该方法包括:
[0071]步骤S101:对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通信通道。
[0072] 虚拟化厂商环境可以为。;11:1^1、¥8。116代、(^6118丨3〇1<:华为等。
[0073]步骤S102:对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获取所述虚拟化厂商环境的基础信息。
[0074]所述基础信息包括主机地址,以及所述虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或虚拟机。当主机为物理机时,主机地址表示物理机的IP地址,当主机为虚拟机时,主机地址为虚拟机原生ID。[〇〇75]基础信息还可以包括:主机的操作系统、主机的状态信息。[〇〇76]由于同一虚拟化厂商环境中可能包括多个物理机,每一物理机上可能设置有多个虚拟机,对于每一虚拟化厂商环境而言,可以将该虚拟化厂商环境作为父节点,将在该虚拟化厂商环境中的物理机作为子节点,设置在物理机上的各个虚拟机作为该物理机的子节点,这种父节点和子节点的关系称为虚拟化厂商环境、虚拟机和物理机的节点关系信息。
[0077]该节点关系信息包括虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的地址关系信息。即可以通过物理机的IP地址或者虚拟机的原生ID能够找到对应的虚拟化厂商环境的地址。
[0078]如图2所示为节点关系信息示意图,假设有1个虚拟化厂商环境,分别为虚拟化厂商环境21以及虚拟化厂商环境22,虚拟化厂商环境21中包括3个物理机,分别为物理机211、物理机212、物理机213,物理机211中有2两个虚拟机,分别为虚拟机2111和虚拟机2112;物理机212中有3两个虚拟机,分别为虚拟机2121、虚拟机2122和虚拟机2123;物理机213有3两个虚拟机,分别为虚拟机2131、虚拟机2132和虚拟机2133。[〇〇79]其中,虚拟化厂商环境21为父节点,物理机211、物理机212、物理机213均为虚拟化厂商环境21的子节点;虚拟机2111和虚拟机2112为物理机211的子节点;虚拟机2121、虚拟机2122和虚拟机2123为物理机212的子节点;虚拟机2131、虚拟机2132和虚拟机2133为物理机213的子节点。
[0080]当与多个不同的虚拟化厂商环境分别建立通信通道后,可以通过不同的通信通道分别获取各个虚拟化厂商环境的基础信息。[0081 ]步骤S103:接收获取目的主机性能数据请求。
[0082]所述获取目的主机性能数据请求包括所述目的主机的目的主机地址。[〇〇83]目的主机包括目的物理机和/或目的虚拟机,这里为了与上述步骤中的主机相区另IJ,才命名为目的主机,目的主机是上述步骤中各个主机中的一个或多个主机。
[0084]性能数据可以包括CPU的属性信息、网卡的属性信息、外设的属性信息等等。[〇〇85]步骤S104:从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址。[〇〇86]当目的主机为物理机时,目的主机地址表示物理机的IP地址,当目的主机为虚拟机时,目的主机地址为虚拟机原生ID。
[0087]与所述目的主机对应的目的虚拟化厂商环境地址可以依据节点关系信息获取。
[0088]步骤S105:与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商环境建立目的通信通道。
[0089]步骤S106:通过所述目的通信通道获取具有所述目的地址的目的主机的性能数据。
[0090]具体的,可以调用所述目的虚拟化厂商环境的API接口,然后通过所述目的通信通道获取具有所述目的地址的目的主机的性能数据。
[0091]在基础信息包括主机的状态信息时,在步骤S103后,数据处理方法还可以包括:判断所述目的主机的状态信息,当所述状态信息为启动状态时,执行步骤S104。或者在步骤 S104之后,在步骤S105之前可以包括判断所述目的主机的状态信息,当所述状态信息为启动状态时,执行步骤S105。
[0092]因为目的主机处于未启动状态时,是无法从目的主机中获取性能数据的。但是本发明实施例中基础数据可以不包括主机的状态信息,因为当目的主机处于未启动状态时, 不能获取目的主机的性能数据,则用户可以重复多次步骤S103至步骤S106,总可以在目的主机处于启动状态时,获得目的主机的性能数据。
[0093]优选的,基础数据包括主机的状态信息。[〇〇94]本发明实施例提供的数据处理方法中,对于每一虚拟化厂商环境,都可以通过与之建立的通信通道获得该虚拟化厂商环境的基础信息,在接收到获取目的主机的性能数据请求时,可以依据基础信息获得该目的主机的目的虚拟化厂商环境地址,建立与目的虚拟化厂商环境的目的通信通道,从而通过该目的通信通道获得目的主机的性能数据。通过本发明实施例所提供的方法可以查看不同的虚拟化厂商环境中各个主机的性能数据,不需要在各个物理机上安装第三方监控软件,也不需要登录各个物理机,从而减少了管理人员的管理工作量,且提高了物理机的运行效率。
[0095]为了可以更加直观的查看目的主机的性能数据,在上述数据处理方法实施例中, 可以预先依据性能数据的属性信息定义封装对象,在通过所述目的通信通道获取具有所述目的地址的目的主机的性能数据之后,数据处理方法可以包括:将所述性能数据依据属性信息分类;对于每一类性能数据,将所述性能数据对与其属性信息对应的封装对象进行赋值,获得实例化封装对象;接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型数据对应的图表。
[0096]例如将主机的CPU的性能数据定义为一个封装对象,将主机的网卡的性能数据定义为一个封装对象,将主机的外设的性能数据定义为一个封装对象。或者将CHJ或网卡或外设中不同的数据定义为不同的封装对象。对此本发明实施例不作具体限定。
[0097]不同的物理机或虚拟机对应的同一类型的性能数据的封装对象中的参数可以相同,例如不同物理机对应的CPU数据的封装对象中参数可以相同。在进行定义时,可以只定义一 CPU封装对象。在将不同物理机或虚拟机的CPU数据对CPU封装对象进行赋值后,可以得到多个实例化的CPU封装对象。当然也可以对同一类型的性能数据分别定义一封装对象。即如果需要获得3个物理机的CPU的性能数据,则相应的定义3个CPU封装对象。[〇〇98]目的主机可能包括多个物理机和/或多个虚拟机,假设目的主机包括物理机1、物理机2以及虚拟机1,目的主机的性能数据包括:物理机1的CPU性能数据、物理机2的CPU数据和网卡数据、虚拟机1的CPU数据。在将上述数据对相应的封装对象赋值后,就可以获得4个实例化封装对象,分别为:物理机1的CPU数据的封装对象、物理机2的CPU数据的封装对象、 物理机2的网卡数据的封装对象、虚拟机1的CPU数据的封装对象。
[0099]对于上述4个实例化封装对象中任一实例化封装对象,可以接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型数据对应的图表。
[0100]在获得实例化封装对象后,可以显示一选择图表类型的界面,用户可以通过该界面选择该实例化封装对象对应的图表类型,例如柱状图、条线图、趋势图等等。
[0101]请参阅图3,为本发明实施例提供的一种数据处理方法中接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表的一种实现方式的方法流程示意图,该方法包括:
[0102]步骤S301:将所述实例化封装对象通过websocket推送web前端。[〇1〇3] WebSocket是为解决主机端与服务器端(即本发明实施例提供的数据处理方法的应用端)实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,此后服务端与客户端通过此TCP连接进行实时通信。以前的服务器消息推送大部分采用的都是“轮询”和“长连接”技术,这两中技术都会对服务器产生相当大的开销,而且实时性不是特别高造成资源性能消耗。WebSocket技术只会产生很小的开销, 并且具有较高的实时性推送数据能力,便于一些实时性能数据的展示。[〇104]步骤S302:接收所述实例化封装对象的图表类型信息。[〇1〇5]步骤S303:利用javascript技术封装读取所述实例化封装对象中各个数据。[〇1〇6]步骤S304:调用HighCharts.js文件,以所述实例化封装对象中各个数据为源数据,在jsp页面绘制与所述图表类型对应的图表。[〇1〇7] Highcharts.js文件是一个用纯JavaScript编写的一个图表库。能够很简单实时便捷的在web网站或是web应用程序添加有交互性的图表。[〇1〇8]可以理解的是,在上述任一数据处理装置实施例中,在通过通信通道获得虚拟化厂商环境的基础信息之后,由于虚拟化厂商环境中物理机和虚拟机的状态信息可能会发生变化,虚拟机可能被删除,即有可能虚拟化厂商环境的基础信息会发生变化,因此,可以监测虚拟化厂商环境中基础信息,如果发生变化,及时对存储的基础信息进行更新,具体的: 监测到所述目的虚拟化厂商环境的基础信息发生变更时,依据所述变更信息更新与所述目的虚拟化厂商环境对应的所述基础信息。
[0109]可以通过目的虚拟化厂商环境的API接口中的监听事件对该目的虚拟化厂商环境中的基础信息是否发生变更进行监听。
[0110]在获取主机的性能数据时,该主机的状态必须处于启动状态,如果该主机处于停止或关机状态,则不能获得该主机的性能数据,因此需要分别对各个虚拟化厂商环境的基础信息进行监听。以便能够通过基础信息判断当前是否能否能够成功获取主机的性能数据。
[0111]请参阅图4,为本发明实施例提供的一种数据处理方法中与虚拟化厂商环境建立通信通道的一种实现方式的方法流程图,该方法包括:
[0112]步骤S401:接收所述虚拟化厂商环境的验证信息。
[0113]所述验证信息包括所述虚拟化厂商环境地址、用户名和密码。
[0114]对于需要建立通信通道的各个虚拟化厂商环境,其虚拟化厂商环境地址、用户名和密码都是已知的。
[0115]步骤S402:将所述验证信息发送至所述虚拟化厂商环境。[〇116]步骤S403:接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建立所述通信通道。[〇117]可以理解的是,本发明提供的数据处理方法实施例中“建立与目的主机的目的通信通道的方法”与“与虚拟化厂商环境建立通信通道”的过程是一致的,只不过两者的虚拟化厂商环境地址不同。具体的,建立与目的主机的目的通信通道的方法包括:将与所述目的主机对应的目的虚拟化厂商环境的目的验证信息发送至所述目的虚拟化厂商环境;接收到所述目的虚拟化厂商环境反馈的验证成功信息时,确定成功建立与所述目的虚拟化厂商环境的目的通信通道。
[0118]可以理解的是,查询不同的虚拟化厂商环境或者同一虚拟化厂商环境中物理机、 虚拟机的指令不同。因此,在接收到获取目的主机性能数据请求后,需要确定目的主机对应的目的虚拟化厂商环境类型,以及该目的主机是虚拟机还是物理机,从而依据目的虚拟化厂商环境和目的主机的类型,确定查询指令,再通过目的通信通道获得目的主机的性能数据。具体的:依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确定查询所述目的主机的性能数据的目的查询指令;依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。
[0119]具体的,可以是调用目的虚拟化厂商环境的API接口,依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。[〇120]以 xenserver6.2 环境为例,SDK 查询命令可以为:xe pool-param-set uuid =〈pool—uuid>other_config:create—min—max_in—new—VM—RRDs;
[0121]获取一物理机的所有统计信息(统计信息可以是指CPU的数据、网卡的数据、外设的数据)的查询指令为:
[0122]http://〈username:password@host>/host_rrd
[0123]获取一虚拟机的所有统计信息(统计信息可以是指CPU的数据、网卡的数据、外设的数据)的查询指令为:
[0124]http://〈username:password@host>/vm_rrd?uuid = <vm_uuid>
[0125]获取物理机上的所有虚拟机统计信息(统计信息可以是指CHJ的数据、网卡的数据、外设的数据)的更新,查询指令为:
[0126]http://<username>:<password>i<host>/rrd_updates?start = < secondssinceepo ch>,此请求将为正在查询的目的主机上的每个虚拟机返回rrdtool xport样式XML格式的数据。为区分导出中的数据与哪个虚拟机相关联,legend字段将以虚拟机的UUID作为前缀。
[0127]如果上述获取物理机上的所有虚拟机统计信息的更新的请求,需要同时获取物理机的统计信息的更新,则使用查询参数host = true,查询指令如下:
[0128]http://<username>:<password>i<host>/rrd_updates?start = < secondssinceepo ch>&host = true
[0129]上述请求中,发送查询命令的时间间隔越短则步长越小,则请求查询统计信息的时间段越短,获得的统计信息越详细。[〇13〇]请参阅图5,为本发明实施例提供的一种数据处理装置的结构示意图,该数据处理装置包括:通信通道建立模块501、第一获取模块502、接收模块503、第二获取模块504、目的通信通道建立模块505以及第三获取模块506,其中:
[0131]通信通道建立模块501,用于对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通f目通道。
[0132]虚拟化厂商环境可以为(3;11:1^1、¥8口116代、(^6118七3〇1<:华为等。
[0133]第一获取模块502,用于对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获取所述虚拟化厂商环境的基础信息。
[0134]所述基础信息包括主机地址以及所述虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或虚拟机。
[0135]所述基础信息包括主机地址,以及所述虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或虚拟机。当主机为物理机时,主机地址表示物理机的IP地址,当主机为虚拟机时,主机地址为虚拟机原生ID。
[0136]基础信息还可以包括:主机的操作系统、主机的状态信息。
[0137]由于同一虚拟化厂商环境中可能包括多个物理机,每一物理机上可能设置有多个虚拟机,对于每一虚拟化厂商环境而言,可以将该虚拟化厂商环境作为父节点,将在该虚拟化厂商环境中的物理机作为子节点,设置在物理机上的各个虚拟机作为该物理机的子节点,这种父节点和子节点的关系称为虚拟化厂商环境、虚拟机和物理机的节点关系信息。
[0138]该节点关系信息包括虚拟化厂商环境、所述虚拟化厂商环境中的虚拟机与物理机的地址关系信息。即可以通过物理机的IP地址或者虚拟机的原生ID能够找到对应的虚拟化厂商环境的地址。
[0139]如图2所示为节点关系信息示意图,假设有1个虚拟化厂商环境,且为虚拟化厂商环境21,虚拟化厂商环境21中包括3个物理机,分别为物理机211、物理机212、物理机213,物理机211中有2两个虚拟机,分别为虚拟机2111和虚拟机2112;物理机212中有3两个虚拟机, 分别为虚拟机2121、虚拟机2122和虚拟机2123;物理机213有3两个虚拟机,分别为虚拟机 2131、虚拟机2132和虚拟机2133。
[0140]其中,虚拟化厂商环境21为父节点,物理机211、物理机212、物理机213均为虚拟化厂商环境21的子节点;虚拟机2111和虚拟机2112为物理机211的子节点;虚拟机2121、虚拟机2122和虚拟机2123为物理机212的子节点;虚拟机2131、虚拟机2132和虚拟机2133为物理机213的子节点。
[0141]当与多个不同的虚拟化厂商环境分别建立通信通道后,可以通过不同的通信通道分别获取各个虚拟化厂商环境的基础信息。
[0142]接收模块503,用于接收获取目的主机性能数据请求,所述获取目的主机性能数据请求包括所述目的主机的目的主机地址。
[0143]目的主机包括目的物理机和/或目的虚拟机,这里为了与上述主机相区别,才命名为目的主机,目的主机是上述各个主机中的一个或多个主机。
[0144]性能数据可以包括CPU的属性信息、网卡的属性信息、外设的属性信息等等。
[0145]第二获取模块504,用于从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址。
[0146]当目的主机为物理机时,目的主机地址表示物理机的IP地址,当目的主机为虚拟机时,目的主机地址为虚拟机原生ID。
[0147]与所述目的主机对应的目的虚拟化厂商环境地址可以依据节点关系信息获取。
[0148]目的通信通道建立模块505,用于与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商环境建立目的通信通道。
[0149]第三获取模块506,用于通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据。
[0150]具体的,可以调用所述目的虚拟化厂商环境的API接口,然后通过所述目的通信通道获取具有所述目的地址的目的主机的性能数据。
[0151]在基础信息包括主机的状态信息时,在接收模块503接收到获取目的主机的性能数据请求后,数据处理装置还可以包括:判断模块,用于判断所述目的主机的状态信息,当所述状态信息为启动状态时,触发第二获取模块504。或者在第二获取模块504从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址之后,在第三获取模块506通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据之前,可以包括判断模块,用于判断所述目的主机的状态信息,当所述状态信息为启动状态时,触发第三获取模块506。
[0152]因为目的主机处于未启动状态时,是无法从目的主机中获取性能数据的。但是本发明实施例中基础数据可以不包括主机的状态信息,因为当目的主机处于未启动状态时, 不能获取目的主机的性能数据,则用户可以重复多次接收模块503至第三获取模块506,总可以在目的主机处于启动状态时,获得目的主机的性能数据。
[0153]优选的,基础数据包括主机的状态信息。
[0154]本发明实施例提供的数据处理装置中,对于每一虚拟化厂商环境,第一获取模块 502都可以通过通信通道建立模块501与之建立的通信通道获得该虚拟化厂商环境的基础信息,在接收模块503接收到获取目的主机的性能数据请求时,第二获取模块504可以依据基础信息获得该目的主机的目的虚拟化厂商环境地址,并通过目的通信通道建立模块505 建立与目的虚拟化厂商环境的目的通信通道,从而第三获取模块506通过该目的通信通道获得目的主机的性能数据。通过本发明实施例所提供的数据处理为装置可以查看不同的虚拟化厂商环境中各个主机的性能数据,不需要在各个物理机上安装第三方监控软件,也不需要登录各个物理机,从而减少了管理人员的管理工作量,且提高了物理机的运行效率。
[0155]为了可以更加直观的查看目的主机的性能数据,在上述数据处理装置实施例中, 可以预先依据性能数据的属性信息定义封装对象,具体的,数据处理装置还可以包括:分类模块,用于将所述目的主机的性能数据依据属性信息进行分类;实例化对象模块,用于对于每一类性能数据,将所述性能数据对与其属性信息对应的封装对象进行赋值,获得实例化封装对象;生成图表模块,用于对于每一实例化封装对象,接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表。
[0156]例如将主机的CPU的性能数据定义为一个封装对象,将主机的网卡的性能数据定义为一个封装对象,将主机的外设的性能数据定义为一个封装对象。或者将CHJ或网卡或外设中不同的数据定义为不同的封装对象。对此本发明实施例不作具体限定。
[0157]不同的物理机或虚拟机对应的同一类型的性能数据的封装对象中的参数可以相同,例如不同物理机对应的CPU数据的封装对象中参数可以相同。在进行定义时,可以只定义一 CPU封装对象。在将不同物理机或虚拟机的CPU数据对CPU封装对象进行赋值后,可以得到多个实例化的CPU封装对象。当然也可以对同一类型的性能数据分别定义一封装对象。即如果需要获得3个物理机的CPU的性能数据,则相应的定义3个CPU封装对象。[〇158]目的主机可能包括多个物理机和/或多个虚拟机,假设目的主机包括物理机1、物理机2以及虚拟机1,目的主机的性能数据包括:物理机1的CPU性能数据、物理机2的CPU数据和网卡数据、虚拟机1的CPU数据。在将上述数据对相应的封装对象赋值后,就可以获得4个实例化封装对象,分别为:物理机1的CPU数据的封装对象、物理机2的CPU数据的封装对象、 物理机2的网卡数据的封装对象、虚拟机1的CPU数据的封装对象。
[0159]对于上述4个实例化封装对象中任一实例化封装对象,可以接收图表类型信息,以所述实例化封装对象中各个数据为源数据,生成与所述图表类型数据对应的图表。[〇16〇] 在获得实例化封装对象后,可以显示一选择图表类型的界面,用户可以通过该界面选择该实例化封装对象对应的图表类型,例如柱状图、条线图、趋势图等等。[0161 ]生成图表模块包括:推送单元,用于将所述实例化封装对象通过websocket推送 web前端;接收单元,用于接收所述实例化封装对象的图表类型信息;读取单元,用于利用 javascript技术封装读取所述实例化封装对象中各个数据;生成单元,用于调用 HighCharts.js文件,以所述实例化封装对象中各个数据为源数据,在jsp页面绘制与所述图表类型信息对应的图表。
[0162] WebSocket是为解决主机端与服务器端(即本发明实施例提供的数据处理方法的应用端)实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,此后服务端与客户端通过此TCP连接进行实时通信。以前的服务器消息推送大部分采用的都是“轮询”和“长连接”技术,这两中技术都会对服务器产生相当大的开销,而且实时性不是特别高造成资源性能消耗。WebSocket技术只会产生很小的开销, 并且具有较高的实时性推送数据能力,便于一些实时性能数据的展示。[〇163] Highcharts.js文件是一个用纯JavaScript编写的一个图表库。能够很简单实时便捷的在web网站或是web应用程序添加有交互性的图表。
[0164]可以理解的是,在上述任一数据处理装置实施例中,在通过通信通道获得虚拟化厂商环境的基础信息之后,由于虚拟化厂商环境中物理机和虚拟机的状态信息可能会发生变化,虚拟机可能被删除,即有可能虚拟化厂商环境的基础信息会发生变化,因此,可以监测虚拟化厂商环境中基础信息,如果发生变化,及时对存储的基础信息进行更新,具体的, 数据处理装置还可以包括:更新模块,用于监测到所述目的虚拟化厂商环境的基础信息发生变更时,依据所述变更信息更新与所述目的虚拟化厂商环境对应的所述基础信息。
[0165]可以通过目的虚拟化厂商环境的API接口中的监听事件对该目的虚拟化厂商环境中的基础信息是否发生变更进行监听。
[0166]在获取主机的性能数据时,该主机的状态必须处于启动状态,如果该主机处于停止或关机状态,则不能获得该主机的性能数据,因此需要分别对各个虚拟化厂商环境的基础信息进行监听。以便能够通过基础信息判断当前是否能否能够成功获取主机的性能数据。
[0167]请参阅图6,为本发明实施例提供的一种数据处理方法中通信通道建立模块的结构示意图,对于每一虚拟化厂商环境,该通信通道建立模块包括:接收单元601、发送单元 602以及第一确定单元603,其中:
[0168]接收单元601,用于接收所述虚拟化厂商环境的验证信息。
[0169]所述验证信息包括所述虚拟化厂商环境地址、用户名和密码。
[0170]对于需要建立通信通道的各个虚拟化厂商环境,其虚拟化厂商环境地址、用户名和密码都是已知的。[0171 ] 发送单元602,用于将所述验证信息发送至所述虚拟化厂商环境。[〇172]第一确定单元603,用于接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建立所述通信通道。[〇173]可以理解的是,本发明提供的数据处理为装置实施例中通信通道建立模块与目的通信通道建立模块中建立通信通道的过程一致,这两个模块可以为同一模块,当然也可以为两个模块,本发明实施例对此不做具体限定,只是在不同阶段使用时,该模块中虚拟化厂商环境地址不同。目的通信通道建立模块包括:发送单元,用于将与所述目的主机对应的目的虚拟化厂商环境的目的验证信息发送至所述目的虚拟化厂商环境;第一确定单元,用于接收到所述目的虚拟化厂商环境反馈的验证成功信息时,确定成功建立与所述目的虚拟化厂商环境的目的通信通道。
[0174] 可以理解的是,查询不同的虚拟化厂商环境或者同一虚拟化厂商环境中物理机、 虚拟机的指令不同。因此,在接收到获取目的主机性能数据请求后,需要确定目的主机对应的目的虚拟化厂商环境类型,以及该目的主机是虚拟机还是物理机,从而依据目的虚拟化厂商环境和目的主机的类型,确定查询指令,再通过目的通信通道获得目的主机的性能数据。具体的,本发明实施例提供的数据处理装置中的第三获取模块包括:第二确定单元,用于依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确定查询所述目的主机的性能数据的目的查询指令;获取单元,用于依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。
[0175]具体的,可以是调用目的虚拟化厂商环境的API接口,依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。
[0176]以 xenserver6.2 环境为例,SDK 查询命令可以为:xe pool-param-set uuid =〈 pool_uuid>other-config:create_min_max_in_new_VM_RRDs;
[0177]获取一物理机的所有统计信息(统计信息可以是指CPU的数据、网卡的数据、外设的数据)的查询指令为:
[0178]http://〈username:password@host>/host_rrd[〇179]获取一虚拟机的所有统计信息(统计信息可以是指CPU的数据、网卡的数据、外设的数据)的查询指令为:
[0180]http://〈username:password@host>/vm_rrd?uuid = <vm_uuid>
[0181]获取物理机上的所有虚拟机统计信息(统计信息可以是指CHJ的数据、网卡的数据、外设的数据)的更新,查询指令为:
[0182]http://<username>:<password>i<host>/rrd_updates?start = < secondssinceepo ch>,此请求将为正在查询的目的主机上的每个虚拟机返回rrdtool xport样式XML格式的数据。为区分导出中的数据与哪个虚拟机相关联,legend字段将以虚拟机的UUID作为前缀。
[0183]如果上述获取物理机上的所有虚拟机统计信息的更新的请求,需要同时获取物理机的统计信息的更新,则使用查询参数host = true,查询指令如下:
[0184]http://<username>:<password>i<host>/rrd_updates?start = < secondssinceepo ch>&host = true〇
[0185]上述请求中,发送查询命令的时间间隔越短则步长越小,则请求查询统计信息的时间段越短,获得的统计信息越详细。
[0186]本发明实施例还提供了一种服务器,该服务器包括如数据处理装置实施例中任一数据处理装置。
[0187]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0188]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据处理方法,其特征在于,包括:对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通信通道;对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获取所述虚拟化厂商环 境的基础信息,所述基础信息包括主机地址以及所述虚拟化厂商环境、所述虚拟化厂商环 境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或虚拟机;接收获取目的主机性能数据请求,所述获取目的主机性能数据请求包括所述目的主机 的目的主机地址;从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环境地址;与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商环境建立目的通信通道; 通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数据。2.根据权利要求1所述数据处理方法,其特征在于,预先依据性能数据的属性信息定义 封装对象,在所述通过所述目的通信通道获取具有所述目的主机地址的目的主机的性能数 据之后,所述数据处理方法还包括:将所述目的主机的性能数据依据属性信息进行分类;对于每一类性能数据,将所述性能数据对与其属性信息对应的封装对象进行赋值,获 得实例化封装对象;对于每一实例化封装对象,接收图表类型信息,以所述实例化封装对象中各个数据为 源数据,生成与所述图表类型信息对应的图表。3.根据权利要求2所述数据处理方法,其特征在于,所述接收图表类型信息,以所述实 例化封装对象中各个数据为源数据,生成与所述图表类型信息对应的图表包括:将所述实例化封装对象通过websocket推送web前端;接收所述实例化封装对象的图表类型信息;利用javascript技术封装读取所述实例化封装对象中各个数据;调用HighCharts.js文件,以所述实例化封装对象中各个数据为源数据,在jsp页面绘 制与所述图表类型对应的图表。4.根据权利要求1至3任一所述数据处理方法,其特征在于,所述与所述虚拟化厂商环 境建立通信通道包括:接收所述虚拟化厂商环境的验证信息,所述验证信息包括所述虚拟化厂商环境地址、 用户名和密码;将所述验证信息发送至所述虚拟化厂商环境;接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建立所述通信通道。5.根据权利要求1所述数据处理方法,其特征在于,所述通过所述目的通信通道获取具 有所述目的地址的目的主机的性能数据包括:依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确定查询所述目的主机 的性能数据的目的查询指令;依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的性能数据。6.—种数据处理装置,其特征在于,包括:通信通道建立模块,用于对于每一虚拟化厂商环境,与所述虚拟化厂商环境建立通信 通道;第一获取模块,用于对于每一所述虚拟化厂商环境,通过与其对应的所述通信通道获 取所述虚拟化厂商环境的基础信息,所述基础信息包括主机地址以及所述虚拟化厂商环 境、所述虚拟化厂商环境中的虚拟机与物理机的节点关系信息,所述主机包括物理机和/或 虚拟机;接收模块,用于接收获取目的主机性能数据请求,所述获取目的主机性能数据请求包 括所述目的主机的目的主机地址;第二获取模块,用于从所述基础信息中获取与所述目的主机对应的目的虚拟化厂商环 境地址;目的通信通道建立模块,用于与具有所述目的虚拟化厂商环境地址的目的虚拟化厂商 环境建立目的通信通道;第三获取模块,用于通过所述目的通信通道获取具有所述目的主机地址的目的主机的 性能数据。7.根据权利要求6所述数据处理装置,其特征在于,预先依据性能数据的属性信息定义 封装对象,所述数据处理装置还包括:分类模块,用于将所述目的主机的性能数据依据属性信息进行分类;实例化对象模块,用于对于每一类性能数据,将所述性能数据对与其属性信息对应的 封装对象进行赋值,获得实例化封装对象;生成图表模块,用于对于每一实例化封装对象,接收图表类型信息,以所述实例化封装 对象中各个数据为源数据,生成与所述图表类型信息对应的图表。8.根据权利要求6至7任一所述数据处理装置,其特征在于,对于每一虚拟化厂商环境, 所述通信通道建立模块包括:接收单元,用于接收所述虚拟化厂商环境的验证信息,所述验证信息包括所述虚拟化 厂商环境地址、用户名和密码;发送单元,用于将所述验证信息发送至所述虚拟化厂商环境;第一确定单元,用于接收到所述虚拟化厂商环境反馈的验证成功信息时,确定成功建 立所述通信通道。9.根据权利要求6所述数据处理装置,其特征在于,所述第三获取模块包括:第二确定单元,用于依据所述目的虚拟化厂商环境类型以及所述目的主机的类型,确 定查询所述目的主机的性能数据的目的查询指令;获取单元,用于依据所述目的查询指令,通过所述目的通信通道获得所述目的主机的 性能数据。10.—种服务器,其特征在于,包括如权利要求6至9任一所述数据处理装置。
【文档编号】G06F9/50GK106020985SQ201610344902
【公开日】2016年10月12日
【申请日】2016年5月23日
【发明人】党艳平, 张通, 胡永伟
【申请人】北京北信源软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1