一种统计XenServer池虚拟机总流量的方法与流程

文档序号:14993371发布日期:2018-07-20 22:57阅读:568来源:国知局

本发明涉及云计算流量计算领域,尤其涉及一种统计xenserver池虚拟机总流量的方法。



背景技术:

现有的xenserver所提供的虚拟机流量统计是performance模块,这个模块只提供了单台虚拟机的实时流量统计,如果想要得到整个池的所有虚拟机的总流量只能通过分别获取每台虚拟机的流量然后进行累加,但是该方法存在两个问题:一是效率低下,一台物理主机能虚拟十几台虚拟机,一个xenserver池就有几百上千台虚拟机,每台虚拟机都要进行一次统计最后再累加,效率非常低下;二是统计的数据存在误差,因为每台虚拟机都要进行一次统计,这样就会造成获取次数多并且在不同虚拟机会存在时间差一级总体的统计延时,这些时间误差在实时统计上都是能造成很大的数据误差,从而导致统计的数据不靠谱。并且xenserver所提供的performance模块得到的流量数据和实际存在一定的误差,这样就进一步加大了数据统计的误差。



技术实现要素:

本发明的目的在于提出一种统计xenserver池虚拟机总流量的方法,实现对xenserver池虚拟机的总流量进行了精确的、高效率的实时统计。

为达此目的,本发明采用以下技术方案:

一种统计xenserver池虚拟机总流量的方法,物理主机的虚拟机接在openvswitch的端口的流入流量与虚拟机的流出流量相同,虚拟机接在openvswitch的端口的流出流量与虚拟机的流入流量相同;

包括统计xenserver池虚拟机总流量的过程:

步骤a:选择统计xenserver池虚拟机总流量的时间节点,向数据库查询该xenserver池下所有物理主机及其ip地址;

步骤b:开启线程池,分别获取物理主机的虚拟机接在openvswitch的端口的当前总流入流量和当前总流出流量;

步骤c:将物理主机的虚拟机接在openvswitch的端口的当前总流入流量相加,得到物理主机的总流入流量;将物理主机的虚拟机接在openvswitch的端口的当前总流出流量相加,得到物理主机的总流出流量,并在设定的时间间隔阈值内进行重复测量,获取流量流速;

步骤d:分别获取每一台物理主机的总流入流量和总流出流量,将每一台物理主机的总流入流量相加,得到xenserver池的总流出流量;将每一台物理主机的总流出流量相加,得到xenserver池的总流入流量。

优选的,通过使用snmp获取物理主机的虚拟机接在openvswitch的端口的当前总流入流量和当前总流出流量;

包括获取物理主机流量的过程:

步骤b1:开启线程池,使xenserver池中每一台物理主机以多线程的形式通过snmp使用if-mib::ifdescr、if-mib::ifinoctets、if-mib::ifoutoctets三个oid,获取物理主机每个名称以vif.开头的网络接口的当前总流入流量和当前总流出流量;

步骤b2:将所有以vif.开头的网络接口的流入流量、流出流量分别相加,得到物理主机的以vif.开头的网络接口的总流入流量和总流出流量,并将结果保存到内存。

优选的,包括计算流量流速的过程:

步骤c1:获取第一次的物理主机的总流入流量和总流出流量;

步骤c2:设定在时间间隔阈值后获取第二次物理主机的总流入流量和总流出流量;

步骤c3:用第二次获取的物理主机总流入流量减去第一次获取的物理主机总流入流量,再除以时间间隔阈值,得到总流入流量的流速;用第二次获取的物理主机总流出流量减去第一次获取的物理主机总流出流量,再除以时间间隔阈值,得到总流出流量的流速。

优选的,统计出的xenserver池的总流出流量和总流入流量以接口的形式返回结果作实时显示并被保存大数据模块中。

附图说明

图1是本发明的统计xenserver池虚拟机总流量的流程图;

图2是本发明的计算流量流速的流程图;

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

本实施例的一种统计xenserver池虚拟机总流量的方法,物理主机的虚拟机接在openvswitch的端口的流入流量与虚拟机的流出流量相同,虚拟机接在openvswitch的端口的流出流量与虚拟机的流入流量相同;

包括统计xenserver池虚拟机总流量的过程:

步骤a:选择统计xenserver池虚拟机总流量的时间节点,向数据库查询该xenserver池下所有物理主机及其ip地址;

步骤b:开启线程池,分别获取物理主机的虚拟机接在openvswitch的端口的当前总流入流量和当前总流出流量;

步骤c:将物理主机的虚拟机接在openvswitch的端口的当前总流入流量相加,得到物理主机的总流入流量;将物理主机的虚拟机接在openvswitch的端口的当前总流出流量相加,得到物理主机的总流出流量,并在设定的时间间隔阈值内进行重复测量,获取流量流速;

步骤d:分别获取每一台物理主机的总流入流量和总流出流量,将每一台物理主机的总流入流量相加,得到xenserver池的总流出流量;将每一台物理主机的总流出流量相加,得到xenserver池的总流入流量。

根据xenserver虚拟机接在openvswitch的端口的流入流量等于xenserver虚拟机的流出流量以及xenserver虚拟机接口接在openvswitch的端口的流出流量等于xenserver虚拟机的流入流量这一特征,通过对xenserver池内物理主机的流量进行累加,从而得到xenserver池内虚拟机的总流量,实现精准的实时统计,提高了统计效率和统计数据的精准度,是统计数据更加可靠,不需要依靠performance模块对单个虚拟机的流量进行单个统计,解决了统计效率低下的问题,也解决了存在实时数据误差,导致数据统计不准的问题。

优选的,通过使用snmp获取物理主机的虚拟机接在openvswitch的端口的当前总流入流量和当前总流出流量;

包括获取物理主机流量的过程:

步骤b1:开启线程池,使xenserver池中每一台物理主机以多线程的形式通过snmp使用if-mib::ifdescr、if-mib::ifinoctets、if-mib::ifoutoctets三个oid,获取物理主机每个名称以vif.开头的网络接口的当前总流入流量和当前总流出流量;

步骤b2:将所有以vif.开头的网络接口的流入流量、流出流量分别相加,得到物理主机的以vif.开头的网络接口的总流入流量和总流出流量,并将结果保存到内存。

通过snmp技术对xenserver池虚拟机接在openvswitch端口的流量数据统计,可以得到物理主机的流入和流出流量,名称已vif.开头的网络接口即为虚拟机接在openvswitch的端口,正是基于这点,方可根据xenserver虚拟机接在openvswitch的端口的流入流量等于xenserver虚拟机的流出流量以及xenserver虚拟机接口接在openvswitch的端口的流出流量等于xenserver虚拟机的流入流量这一特征进行实时流量统计,该技术点为实现数据统计提供了基础。

优选的,包括计算流量流速的过程:

步骤c1:获取第一次的物理主机的总流入流量和总流出流量;

步骤c2:设定在时间间隔阈值后获取第二次物理主机的总流入流量和总流出流量;

步骤c3:用第二次获取的物理主机总流入流量减去第一次获取的物理主机总流入流量,再除以时间间隔阈值,得到总流入流量的流速;用第二次获取的物理主机总流出流量减去第一次获取的物理主机总流出流量,再除以时间间隔阈值,得到总流出流量的流速。

通过设置时间间隔阈值,一般为20s,可以准确测量出流量的速率,同时也相当于多次对流量数据进行测量统计,确保数据的准确性。

优选的,统计出的xenserver池的总流出流量和总流入流量以接口的形式返回结果作实时显示并被保存大数据模块中。

通过保存在大数据模块中,结合大数据模块实现流量历史数据的记录,方便分析不同云节点的流量使用情况。

有益效果:

1、通过snmp技术对xenserver池虚拟机的总流量进行准确的实时统计,并且结合大数据技术实现了流量历史记录。提高了统计效率和统计数据的精确度,使统计的数据更加可靠。

2、对xenserver池虚拟机总流量进行稳定可靠的数据统计有利于云环境中的网络运维,可以监控到云节点的带宽利用率,以及出现网络拥堵时由于快速定位到xenserver池,通过对大数据的流量历史数据,可以分析不同云节点的流量使用情况。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

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