DCIM平台相关技术面对海量数据,DCIM管理系统不能仅依靠少数几台机器的升级(Scale-up,纵向扩展)满足数据量的增长,必须做到横向可扩展(Scale-out),既满足性能的要求,也满足存储的要求(包括结构性数据、非结构形式、半结构性数据);由于服务需求的多样性,平台既要支持传感器数据流的实时分析与处理又要支持复杂查询与深度分析所需的高性能、低延迟需求。平台需具有高度容错性,大数据的容错性要求在作业(Job)执行过程中,一个参与节点失效不需要重做整个作业。机群节点数的增加会增加节点失效概率,在大规模机群环境下,节点的失效不再是稀有事件。因此在大规模机群环境下,系统不能依赖于硬件来保证容错性,要更多地考虑软件级容错,同时增加系统的可用性。系统的开放性也是十分重要的,各子系统之间数据交换、共享以及服务集成是必不可少的。DCIM平台特性说明高度可伸缩性横向大规模可伸缩,大规模并行处理实时性对数据中心基础设施传感数据流、告警事件的实时处理高性能、低延迟分析快速响应复杂查询与深度分析、实时分析结果高度容错性系统在硬件级、软件级实现容错开放性系统之间可实现数据共享、服务集成可以按如下参考框架来构建DCIM平台的数据处理技术和层级图10-5DCIM大数据平台参考架构1.大数据接入子系统可以利用事件驱动的架构(Event-DrivenArchitecture)支持大型数据中心中各垂直子系统大规模TCP/IP连接的高并发处理,使用消息队列模式的订阅/发布模式。同时利用负载均衡和反向映射等技术,构建接入服务器集群,实现高容错。2.流数据处理子系统来自设备和子系统的大量数据需要得到实时处理,需要引入分布式的、容错的实时计算“流处理(Streamprocessing)”系统。除了接受接入子系统传入的实时数据流,还提供对数据流的连续查询和混合查询支持。连续查询用于实时持续不断地监控,用户可以指定连续查询的滑动时间窗口,对于进入窗口且符合查询条件的事件进行报警监控。混合查询用于不仅需要涉及动态流数据还需要访问静态历史和空间数据的复杂查询。3.复杂事件处理子系统接入的现场监控系统数据在上传到DCIM大数据平台时包含大量的事件,流数据处理引擎也会根据定义的规则产生大量的事件,而这些事件存在密不可分的相关性。为更智能的处理这些海量事件,将事件相关性分析、联动等业务决策从应用程序代码中分离出来,一个智能的复杂事件处理引擎(ComplexEventProcess)是最佳的选择。CEP接受从流数据平台过来的数据输入,解释业务规则,并根据业务规则做出业务决策,实现事件过滤、合并、分流、定位、告警等服务。图10-6复杂事件处理可用成熟功能的CEP引擎实现以下功能:可接入多种异构数据源,通过适配器转换为统一数据格式;在内存中实时处理数据流,相比起传统事件引擎首先将数据存储至数据库后再根据业务规则加载处理的轮询方式有更好的性能;支持持续查询语言的规则数据库,其结构化查询语言类似SQL,提供映射、过滤、关联、聚合、模式匹配、延时和时间窗口等反式(Reactive)处理;支持订阅/发布机制,主动推送处理结果给事件订阅者;4.分布式存储子系统DCIM采集到的数据经过流数据平台处理后必须做存储处理。为应对巨量设备接入后产生的海量数据,需要分布式数据库和分布式文件系统技术,将廉价可靠的PC服务器存储设备集合起来协同工作,形成一个分布式、高容错的云存储平台,为后期的分析处理提供便利。NoSQL分布式数据库NoSQL(NotOnlySQL),泛指非关系型的数据库,是随着互联网应用兴起的新型的大规模、分布式数据存储系统。相比现有的关系数据库系统具备以下优势:灵活的可伸缩性对于传统的关系数据库,当数据量大幅增加时,服务提供商必须增加更多的服务器和存储服务器来扩展这些数据库.但想在通用硬件上对传统的关系数据库做“横向伸缩”的扩展并不是件容易事。而NoSQL数据库被设计来解决这个问题,它的透明伸缩能力能够非常便捷通过加入新节点来增加存储,避免了升级导致的服务暂停,有效地节省了数据库的扩展升级成本。超大规模数据分布式存储在数据中心监控领域,随着数据中心建设的规模越来越大,需要监控的对象越来越多,存储的监控数据量已经超出了传统数据库所能承载的范围。而这种“大数据”可以通过NoSQL系统来进行分布式存储,有效解决了超大数据的存储问题。灵活的数据模型对于大型生产性的关系数据库而言,变更管理是一件很令人头痛的事情。即使只对一个RDBMS的数据模型做很小的改动,也需要十分小心地管理,甚至还需要停机或降低服务水平。而NoSQL数据库在数据模型约束方面非常宽松,甚至可以说不存在数据模型约束。NoSQL的主键值数据库(Key-valuedatastore)和文档数据库可以让应用程序在一个数据元素里存储任何结构的数据。应用程序变更和数据库模式的变更并不需要作为一个复杂的变更单元来管理。目前业界知名的开源NoSQL数据库包括HBase,Casssandra,MongoDB等。分布式文件系统互联网兴起后,最知名的分布式文件系统是HDFS(HadoopFileSystem)。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是一个的主从结构,一个HDFS集群是由一个名字节点,它是一个管理文件命名空间和调节客户端访问文件的主服务器,还有一些数据节点,它来管理对应节点的存储。HDFS内部将一个文件分割成一个或多个块,这些块被存储在一组数据节点中。名字节点用来操作文件命名空间的文件或目录操作,如打开,关闭,重命名等等。它同时确定块与数据节点的映射。数据节点来负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指令。一个数据块可以被复制多分,因此任意节点的硬件或软件失效不会影响整个系统的数据操作,从而保证整个文件系统的健壮性。上述的HBase数据库就是构建在HDFS的基础上。DCIM系统中海量的设施传感数据可以选择存储在HBase或者自定义格式直接存储在HDFS上。5.大数据分析子系统想要从数据中提取有用的信息,必须拥有能对大规模历史数据进行分布式和并行分析的平台。大数据分析子系统在分布式并行计算技术、复杂事件处理技术和机器学习的基础上,针对采集到的历史数据做智能处理和分析,并对未来可能发生的故障做出预测分析。MapReduce是目前最流行的基于上述分布式存储系统上的并行计算模型,通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性。但是MapReduce是一种编程模型,需要较高的编程技巧。近几年业界又发展出SQLonHadoop的技术,用户可以使用简单易用SQL来检索和分析存储在分布式文件系统或NoSQL数据库存储的海量数据。业界知名的SQLonHadoop技术Hive,Tez/Stinger,Impala,Spark,Phoenix,Hawq/等。基于DCIM历史数据分析的需要,可以灵活选择直接用MapReduce来做分析,还是采用某种SQLonHadoop技术来做多维度分析。为了深度挖掘DCIM系统产生的海量数据,可以通过机器学习领域经典算法的实现,如聚类、分类、推荐过滤、频繁子项挖掘等发现数据的相关性和规律。其中Mahout是最知名的基于Hadoop之上的分布式数据挖掘和机器学习工具。同时在数据处理的基础之上,可以采用第三方的报表服务引擎来提供增强的基础设施资产信息和动态数据的可视化分析。基础报表类型包括:资产查询和统计报表机架资产部署报表资产超期限预警报表容量管理统计报表变更计划记录报表告警记录和统计报表实时数据记录和统计报表控制命令记录和统计报表网络管理报表能效统计报表电力单线图报表温场分析报表其他定制化报表报表引擎应支持各种主流关系型数据库或NOSQL数据库,提供表格、饼图、曲线、柱图、雷达图、仪表盘等格式Web报表。报表引擎支持手动查询、定时或事件触发输出报表,可导出PDF、EXCEL和HTML等格式文件,并通过Email发送。为增加报表呈现性能,报表引擎应支持服务器和客户端的数据分页。针对中大型DCIM,需要对数据表进行分类和分时段部署,并增加预先数据ETL处理生成中间数据库,以加快数据查询速度。