APP下载

负载均衡技术在统一采集平台中的应用研究与实现

2013-03-12郭涛峰张攀翔高建军臧佳艳

电信科学 2013年12期
关键词:统一服务器负荷

张 渊 ,郭涛峰 ,张攀翔 ,高建军 ,臧佳艳

(1.中国移动通信集团广东有限公司 广州 510623;2.亿阳信通股份有限公司 北京 100093)

1 引言

随着移动通信和高性能网络技术的飞速发展,3G网络、智能网以及LTE的不断推广和普及,在用户数量增加的同时开通的业务也呈多样化发展,数据业务量逐渐呈现上升趋势。而随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,数据采集的负荷越来越高,使得单一采集设备根本无法承担。网管相关部分为了应对采集机高负荷的状况,频频增加价格昂贵的小型机,用来解决采集效率降低、采集机高负荷下频频宕机的问题,以期提升采集层的稳定性,保障支撑业务能够顺利运行。然而,这种单纯增加采集机硬件的方式,却很难成为一种高性价比、适应长远发展的解决方案。

传统的数据采集模式,各专业间的采集都是单独建设,呈离散分布,由于各专业网业务需求不一样,采集的数据量也存在差异,这势必造成专业间资源不能充分利用,不能互补。为了解决这种问题,统一采集平台在移动规划OSS 2.0中首次被提出,从架构上突破了传统网管数据采集的建设模式,将各专业网中的NE/OMC/EMS作为一个大的设备源池,采集的数据统一由统一采集平台提供,从而避免多应用系统重复采集、数据“孤岛”等情况存在。

统一采集平台如何实现各专业间数据采集硬件资源的充分利用、负荷均匀分配,是达到OSS 2.0规划中采集层“统一”的关键,而负载均衡技术为解决这些问题提供了一个技术支撑点。负载均衡建立在现有网络结构之上,提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

2 研究现状

2.1 负载均衡技术现状

近年来随着云技术的快速发展,基于云平台的集群计算逐步成为一种高性价比的并行/分布式计算资源。负载均衡是集群系统中的重要技术,而动态负载均衡技术的应用更符合实际环境的需要,通过动态平衡各个节点间的负载提高集群系统的性能。

目前,负载均衡技术主要应用在以下几个方面:DNS负载均衡、代理服务器负载均衡、地址转换网关负载均衡、协议内部支持负载均衡、NAT负载均衡、反向代理负载均衡、混合型负载均衡等。其中,混合型负载均衡常用于大型网络,由于多个服务器群内的硬件设备、各自的规模、提供的服务等存在差异,考虑对每个服务器群采用最合适的负载均衡方式,然后在多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把多个服务器群当作一个新的服务器群),从而达到最佳的性能。统一采集平台的软硬件环境、提供的服务等与混合型负载均衡基本一致,因此本研究基于该负载均衡应用开展。

2.2 原有采集层状况

传统的网管采集系统依赖于网管系统,采取“烟囱”式的模式独立建设。业务平台上的应用众多,而每个应用的建设在不同阶段由不同的厂商来实施,采用不同的架构,基本上都是以“烟囱”式进行运维管理,每个应用独占物理服务器、存储和网络等资源。每个应用为了保证服务质量,在扩容时一般都按照峰值时的需求,造成正常情况下一大部分资源被浪费,没有被充分利用;而部分发展缓慢的业务资源难以及时回收,也造成资源浪费;专业网内及网间的采集机资源也无法得到合理利用。

这种模式下,即使硬件资源投资逐年提升,仍无法得到良好的应用效果,系统的稳定性得不到保证。采集机运行负荷不均、资源孤立等因素,导致个别采集机经常性宕机的情况时有发生。

而突破网间及网内资源的独立限制,将离散的采集机有效地控制起来,并且合理利用和分配硬件资源的技术,成为采集层急迫解决的难题。

2.3 解决思路

为解决以上诸多现状问题,统一采集平台引入了采集节点任务动态负载均衡技术。本文从动态负载均衡原理、任务调度算法、资源池搭建和部署、不同场景下的负载均衡处理和设计机制、核心控制切换机制以及权重因子和负荷监控等方面着手研究,使负载均衡技术能够真正运用到统一采集平台中。

3 应用研究

3.1 原理阐述

负载均衡建立在现有网络结构之上,提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间。网络负载均衡则将工作负载在这些主机间进行分配。对于其他服务,只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通信量流到一个主机上,并在该主机发生故障时将通信量移至其他主机。

负载均衡技术能够解决网络拥塞问题,就近提供服务,实现地理位置无关性,能够为用户提供更好的访问质量,提高服务器的响应速度,提高服务器及其他资源的利用效率,并且能够避免网络关键部位出现单点失效。

3.2 任务调度算法研究

一个负载均衡算法通常包含以下3个组成部分。

·信息策略:制定任务放置策略的制定者使用的负载和任务量以及信息分配方式。

·传送策略:基于任务和计算机负载,判断是否要把一个任务传送到其他计算机上处理。

·放置策略:对于适合传送到其他计算机处理的任务,选择任务将被传送到目的计算机。

负载均衡的3个组成部分之间以不同的方式相互作用。放置策略利用信息策略提供的负载信息,仅当任务被传送策略判断为适于传送之后才行动。

目前,关于负载均衡任务调度的算法有:轮询(round robin)、加权轮询 (weighted round robin)、最少连接(least connections)、加权最少连接(weighted least connections)、随机 (random)、加权随机 (weighted random)、源地址散列(source hashing)、源地址端口散列(source&port hashing)、目的地址散列(destination hashing),但后两种算法的实现相对比较复杂,应用并不广泛。

(1)轮询算法

新的连接被依次轮询分发到各个实服务器上,如第1个连接分发到第1台服务器,第2个连接分配到第2台服务器,依次轮询。轮询算法适合于服务器组中所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

(2)加权轮询算法

根据服务器的不同处理能力,为每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。根据实际服务器的配置情况和处理能力,给每台实际服务器制定一个整数类型的权值,此整数值用来标识服务器处理用户请求的能力。在加权循环轮转分配用户请求时,优先请求分配权值大的服务器,权值大的服务器将被赋予更多的请求,一段时间后,各服务器处理请求数趋于各自权值的比例。加权轮询算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

(3)最少连接算法

最少连接算法对内部需负载的每一台服务器都有一个数据记录,记录当前服务器正在处理的连接数量,当有新的服务连接请求时,把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。最少连接算法适合长时处理的请求服务,如FTP。

(4)加权最少连接算法

将加权与最少连接算法配合,根据连接数与加权比例计算当前新连接应该发往哪个服务器。

(5)随机算法

将新连接随机分发给具体的实服务器。

(6)加权随机算法

使加权与随机算法配合,根据随机数与加权比例计算当前新连接应该发往哪个服务器。

(7)源地址散列算法

根据新连接的源IP地址进行散列的结果决定将该新连接发往哪个实服务器。一般来说,来自相同客户端的新连接会被散列到相同的实服务器。

统一采集平台的负载均衡部署在管理服务器上,其任务调度采用一种类似加权轮询采集机的方式,这种算法对负荷影响因素的分析相对全面,得出的均衡结论更加准确,应用也相对更广泛。在统一采集平台中,负载权重因子包括任务权重因子、采集机硬件负荷因子。其中,采集机负荷因子涵盖CPU占用率、硬盘总量、内存占用率、线程总数、采集机采集能力、最大负荷值、CPU上下文切换率;任务权重因子包括采集机支持最大任务数、运行队列中的任务数等。通过对两大类权重因子的复杂运算和分析,确保高性能的服务器得到更多的使用率、服务器运行的各种任务得到动态均衡分配和监控,从而避免低性能的服务器负载过重,同时提升任务执行的及时性和采集平台自身的稳定性。在加权轮询算法的实现上,统一采集平台要经过4个策略处理步骤,分别为传送策略、选择策略、放置策略、信息策略,具体介绍如下。

·传送策略用来决定一个采集节点是否适合参与一次任务的迁移,在本次迁移中,采集节点可以作为发送节点,也可以作为接收节点。传送策略使用阈值策略,当一个采集机节点产生一个新的任务时,传送策略判断该节点的负载超过上限阈值TH,它成为发送节点迁移任务;当一个节点的负荷降到下限阈值TL,传送策略决定该节点为可用采集机节点,具备分担采集任务负载。其中,TH与TL值可以在统一采集平台的UI界面中设置。

·选择策略在传送策略之后启动,负责将任务向采集机任务开销较小的服务器上转移。统一采集平台对策略的选择考虑了两种因素:其一,转移的额外开销经计算比较后代价最小;其二,如果被选中的采集任务可以运行足够长的时间,那么可以认为采集节点为可接受选择策略。

·放置策略确定进程迁移目的节点,将任务迁移到系统中负载最轻的节点。统一采集平台的放置策略采取“轮询”方式,一个采集节点向另外的节点询问对方是否适合作为传送目标节点。询问节点的选择基于上一次的轮询信息,通过发送询问的广播分组寻找任意一个负载均衡的可用节点。

·信息策略的选取是采集服务器负载均衡算法的核心,它的选择直接影响到负载均衡的性能,一个好的策略可以使得系统的性能得到很大提高。集群系统的信息策略决定系统节点的信息何时被收集、从何处收集这些信息、具体要收集哪些信息以及收集到的信息的管理方式和处理效率。统一采集平台的负载均衡算法采取周期性收集策略和时间驱动策略;收集到的信息的管理可以采用集中式,也可以采用分散式。

负载均衡的实现过程如图1所示,具体介绍如下。

·管理控制分发任务线程接收到待发任务;

·判断是否为定向任务;

·如果是定向任务,找到定向采集机,直接下发,如果不是定向任务,找到所有适合该任务的采集机;

·计算所有采集机的权重和;

·取当前所有未完成的任务数+子任务数 (以前未完成的任务数+本次待发的任务数);

·循环所有采集机,找出最优采集机,下发任务;

·如果没有找到采集机,进入重新下发任务队列;

·在所有未完成的任务缓存中缓存该任务;

·在该采集机未完成的任务缓存中缓存该任务;

·任务完成后,回收缓存的任务。

循环采集机的流程介绍如下。

·取一个采集机。

·判断CPU和内存中使用率最大的数是否超过设置上限。心跳中的CPU和内存的使用率与采集机的DAL_MD_INFO表采集机最大负荷值字段值比较,如果大于DAL_MD_INFO表中采集机的最大负荷值,则不给该采集机分配任务。

·计算采集机的应分任务,应分任务=采集机权重/所有采集机权重和×(所有未完成的任务数+子任务数);采集机权重值来自DAL_MD_INFO表中的MD_POWER字段;所有未完成的任务数来自于Task Status Manager类中原缓存变量的长度。

·计算与该采集实际未完成的任务数的差值,称任务空闲值,任务空闲值=应分任务-实际未完成任务。

·比较各采集机的任务空闲值,保存任务空闲值最大的采集机名称。

·循环完毕后,返回采集机名称。

3.3 云资源池搭建与硬件部署

经过研究和实践得出,云平台资源池建设过程中,当遵循以下几个原则时,效率最高、方案最可行。

图1 负载均衡流程

·不同CPU指令集的服务器资源池之间无法共享资源,需独立建池;

·结合机房分布,分散设置各资源池;存储设备需与关联服务器设置在同一机房;

·数据实时交互的两大系统需设置相同或相近的机房;

·充分考虑对现有设备的利旧;

·能够通过内网不同安全域实现相同资源池的共享;

·建立与云计算相适应的IT管理工具和IT运维管理体系。

为了兼顾采集效率和经济投入效率,统一采集平台需要支持两种模式下的云资源池搭建方式:完全基于x86构建资源池;考虑硬件利旧,支持x86与小型机(原有)混搭构建资源池。

对应于分布式采集方案,集中采集是将采集机放在网管服务器侧(如图2(a)所示),在网络向万兆比特发展的大趋势下,原则上尽量采用集中采集方式。

图2 集中式采集和分散式采集示意

对于采集数据量特别大的情况,如信令监测,可考虑采取分散采集方式(如图2(b)所示)。对于多省集中且采用网元直联采集方式的采集平台,首先在属地省进行采集收敛和数据压缩,然后再接入采集平台。

不管是分布式采集还是集中式采集,采集管控均采用集中部署方式,集中进行采集任务调度和采集监控。

(1)计算资源

针对集中采集方案,考虑到云计算的发展趋势,宜考虑统一采用x86主机资源池进行建设。

·部署在云资源池的内联或外联DMZ;

·除考虑利旧小型机外,新增采集机均采用x86主机;

·可按省份、专业、网元划分采集机,根据需要使用虚拟化技术,提高采集节点的利用率,实现采集机N+1高可用方案。

(2)存储资源

·采集共享数据为结构化数据,采用数据库存储;

·采集原始数据文件、日志文件,采用文件存储;

·数据量巨大时,考虑采用分布式数据库和分布式文件系统。

硬件部署如图3所示。

统一采集平台具备系统稳定性、高可用性、可扩展性,在硬件部署上支持采集机集群、管理服务器集群方式。基于云资源池实现采集机集群、动态负载均衡。管理服务器资源池层,支持多台管理服务器互备份的功能。

3.4 负载均衡不同场景的设计机制

3.4.1 常态下的负载均衡实现机制

采集机负载均衡要求将无定向采集机的采集任务,根据采集机负载情况动态分配给负载较低的采集机,主要通过以下方式保障:

·所有采集厂商适配器包在管理监控平台注册并同步到所有采集机上,新增采集机自动获取全部厂商包,以保证非定向采集任务可以被分配到任何一台采集机上;

·采集机定时反馈自身状态信息,包括正在执行的线程数、内存占用、CPU负荷信息,供管理平台计算负载、下发任务;

·管理监控平台的状态监控管理模块,通过接收采集机定时反馈的自身信息判断是否有采集机宕机,如果宕机,则将该采集机所有非定向任务负载分担给正常的采集机,并发出相关告警。

任务分发模块根据采集机的负载情况,将可以负载均衡的任务分发到负载较低的采集机上进行采集,将定向任务发到指定或初次采集的采集机上进行采集。

其内部处理结构如图4所示。

任务类型判断模块:合并后的任务提交到分发通道,任务类型判断模块从通道中读取任务,并根据任务类型、采集机状态和负载均衡算法选择采集机,将采集机信息存入任务对象。

消息发送模块:将任务消息发送到任务采集机队列中,采集机获取后进行相关采集工作。如果是特殊任务,直接从任务中取出采集机信息下发到采集机。

负载均衡算法可以参考的维度包括:CPU占用率、内存占用率、采集机采集能力、采集机未完成的任务数、任务负载权重等。

3.4.2 采集机出现故障时的负载均衡实现机制

图3 硬件部署

图4 任务分发内部处理结构

采集节点实时上报心跳信息给管理服务器,心跳信息中包含系统资源占用情况,包括CPU、内存占用情况,管理服务器通过心跳信息及时掌握各采集节点的状态,管理服务器在3个心跳周期没有收到心跳就置该采集节点为不可用状态,不会再给该采集节点下发任务,而原有分配到该采集机的任务会自动分配到其他采集机上,不会影响数据的正常采集,当采集机恢复后将继续向其分配采集任务。

同时,在采集机节点发生故障时,系统具备可配置节点故障发送机制,能够第一时间以消息(告警)的形式通知运维人员,对采集机故障进行及时干预,避免由于采集任务分担到其他采集机后造成负荷过高而产生更大的故障损失。

出现故障时的处理过程如图5所示。

3.4.3 新增采集机时的负载均衡实现机制

统一采集平台提供了一种采集机自动加载机制,通过可视化界面对新增的采集机进行配置,配置完成后即可直接用于采集数据,过程中不需要重新启动系统和程序。管理监控平台的状态监控管理模块经过轮询方式主动发现新增采集机,建立心跳连接,探测该采集机的自身健康状况,经过负载权衡因子计算后,判断为可用采集机。任务分发模块,将可以采集任务自动分发到新的采集节点上,新增采集机根据任务进行采集。

3.4.4 网络限制,采集机分组机制

由于网络路由限制,允许对采集节点进行分组,在采集节点组内部进行负载均衡,支持将某个采集源的采集定向到某一个采集节点,如对数据网中业务系统的采集,采集机必须部署在专业域内部,部署在网管中心的采集机不能访问,这样就可以把部署在专业域内部的几台采集机分为一个组,采集任务可以在这几台机器之间进行负载均衡。

图5 采集机出现故障时的负载均衡示意

实践证明,采集机对设备访问时有网络限制等场景下,用采集机分组方式解决动态负载均衡面临的问题,效率最好,见表1。

3.5 负载均衡核心控制切换机制

统一采集平台提供一种保障负载均衡稳定性机制,即核心控制能够自动切换。目前,负载均衡控制器程序部署在统一采集平台的“主—备”管理服务器中。

(1)储备切换机制

备用服务器定期(可设置)从主用服务器同步数据,外部自身监控模块实时监控主用服务器的进程状态和心跳信息。当主用服务器出现异常后,核心管理控制器自动切换到备用管理服务器,同时自身监控模块会发送告警给监控类系统,并以短信方式发送给维护人员。此时,可以查看当前时间段数据是否正常,必要时进行数据补采操作。

(2)主备核心控制器间的信息同步

核心控制服务器上部署内存数据库 (HSQLDB)等程序,在备用系统上配置每10 min会把主用核心控制服务器上的HSQLDB、核心服务同步一次。HSQLDB中保存有设备的访问信息和任务信息,核心服务保存有适配器。

表1 刀片机分组模式与不分组模式不同场景下对比

主备切换时,主用核心控制器上已经下发给采集机的任务会在采集机上正常运行,刚生成还没有下发的任务会缓存在HSQLDB中,备用核心控制器启动后会重新下发这些任务,然后按时生成后续的任务。整个过程理论上不会存在任务丢失的情况。

(3)主备核心控制异常监控

主用核心控制器每30 s会输出心跳,外部自身监控模块实时监控该心跳信息,当超过1.5 min没有心跳时就发送告警信息到综合监控系统,同时每5 min扫描1次进程状态,当发现进程缺失时也会发送告警信息到综合监控系统。

3.6 负载均衡权重因子设置及负荷监控

(1)负载均衡权值因子设置

统一采集平台的动态负载均衡权重因子能够灵活配置。系统提供可视化权重配置界面,用户可以根据采集机以及任务负荷的实际情况修改权重值,能够修改的权值因子包括CPU占用率、硬盘总量、内存占用率、线程总数、采集机采集能力、最大负荷值、CPU上下文切换率、采集机支持最大任务数、运行队列中的任务数。

(2)负载均衡运行状况监控

采集任务监控:通过监控采集节点状态,判断任务分发路由,实现负载均衡。采集状态监控包括负载均衡状态监控、采集任务监控、采集机负荷监控。各监控功能除实现后台监控外,还提供前台查看界面。采集任务的启停除通过调度程序后台自动控制外,还可通过前台界面监控任务执行过程,更新任务执行状态,并可以手动干预任务的启停。

负载均衡状态监控:任务负载均衡查询功能监控任务负载均衡状态,包括查询各个采集机的总任务个数、采集机任务数、采集机组任务数等。系统可定期更新状态信息,支持按照监控列进行升序、降序排序,支持监控列的自由设定操作,用户可通过选择需要显示的列,去除不关心的系统状态参数,以保证只监控关心的、重点的运行状态。

采集任务监控:能够监控采集机当前任务正在执行的状态,可选择任务状态、采集机、采集源、任务开始时间、任务结束时间作为查询条件过滤采集任务,任务状态包括新任务、正在执行、成功、失败、全部,可通过图形界面查看任务流程,并可以呈现每个任务执行到的具体步骤以及每个步骤的执行情况和详细信息。

运行负荷监控:可监控到采集机运行时对硬件资源(CPU、内存、磁盘)的占用情况,超过阈值后发送告警。采集机定期发送状态信息用于采集机负荷监控,负荷监控的内容包括采集机别名、采集主机IP地址、CPU利用率、CPU总量(G×N)、内存占用(MB)、虚拟机内存总量(MB)、磁盘利用率、磁盘总量(GB)、心跳阈值(s)、心跳时间、采集机主机名称等。

4 应用效果

目前,本文所提及的动态负载技术和研究成果,已在中国移动通信集团广东有限公司(以下简称广东移动)统一采集平台项目中得到了验证和实施。

从实施规模和应用效果看,采集机的数据采集能力得到了一定的提升。目前,统计数据得出:平台日处理原始文件145 GB,每小时KPI任务量超过700个,每小时KPI表数据量超过1100条,每小时counter任务量超过5000个,每小时counter表数据量超过8000万条,任务平均执行时间≤48 s。从数据及时性对比结果看,现网运行的爱立信设备数据采集到KPI的生成时间平均提升26 min,华为设备平均提升28 min,TD设备平均提升20 min,参与测试的OMC平均提升 50 min。基于统一采集平台的采集性能提升离不开动态均衡技术的有效应用。

广东移动统一采集平台动态负载均衡技术现网运行的实际情况介绍如下。

(1)运行负荷监控

通过运行负荷监控功能,系统可以监控到采集机运行时对硬件资源(CPU、内存、磁盘)的占用情况,采集机定期发送状态信息给平台,也可通过“手动刷新数据”按钮实时刷新状态信息,如图6所示。

(2)负载均衡权重因子设置界面

负载均衡权重因子可对采集机的硬件资源情况(如CPU总量、硬盘总量、内存总量、线程总数、采集能力、最大负荷数等)进行设置,如图7所示。

(3)运行负荷阈值查看界面

统一采集平台提供了运行负荷阈值查看功能,可查看的内容包括监控内容、下限值、上限值、系统配置、告警级别名称、告警级别、采集机ID。同时,系统提供自由设定监控列的操作,通过选择需要显示的列,去除不关心的系统状态参数以保证只监控关心的重点的运行状态,如图8所示。

可以查看单台采集机的运行负荷阈值,如图9所示。

图6 运行负荷监控运行

图7 采集机硬件资源情况设置界面

图8 运行负荷阈值设置

5 结束语

图9 单台采集机的运行负荷阈值设置

从任务调研算法、云资源池搭建与硬件部署、负载均衡不同场景(常态、采集机出现故障、新增采集节点、网络限制)的设计机制、负载均衡核心控制切换机制、负载均衡权重因子配置和负荷监控等角度,全面深入地对统一采集平台的动态负载均衡技术进行了分析和研究。动态负载均衡技术是统一采集平台的核心技术,为实现统一采集平台的高效采集、稳定运行、硬件资源合理利用,均衡分配、采集机节点动态加载、灵活配置等方面的需求提供了有力的技术支撑。这些技术成果在实际的环境下得到了良好的应用效果和技术验证,使统一采集平台突破了传统采集模式采集机利用率不合理、“冰山”式投入的困境。虽然取得了一定的应用效果,但仍有提升的空间,未来动态负载均衡技术在大数据采集领域的研究以及优化均衡权重因子算法,仍是统一采集平台的重点研究方向。

1 Qualcomm.DO Advanced Smart Networks Overview,2011

2 郭辉,王智广,周敬利.异构分布式系统中基于负载均衡的容错调度算法.计算机学报,2005(11)

3 邓华锋,刘云生,肖迎元.分布式数据流处理系统的动态负载均衡技术.计算机科学,2007,34(7)

4 李坤,王百杰.服务器集群负载均衡技术研究及算法比较.计算机与现代化,2009(8)

猜你喜欢

统一服务器负荷
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
通信控制服务器(CCS)维护终端的设计与实现
统一数量再比较
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
防止过负荷时距离保护误动新判据
主动降负荷才是正经事
负荷跟踪运行下反应堆一回路控制系统仿真与验证