2. 牡丹江医学院 教育技术与信息中心 黑龙江 牡丹江 157011
2. Center of Educational Technology and Information, Mudanjiang Medical University, Mudanjiang 157011, China
云监控是对云对象状态和表现的指标持续系统地收集、分析和评价[1],是有效管理云资源及应用的前提,按监控视角可分为面向提供商的监控和面向用户的监控,按监控对象层级可分为物理层监控和虚拟层监控,虚拟层又可分为基础设施层、平台层、应用层[2].云资源规模庞大、动态性强、监控视角和对象层级多样,使云监控面临严峻挑战.特别在由经纪人按需组合多个提供商资源的多云环境,云监控需同时服务于经纪人和各租户,跨提供商获取相关监控指标,面临跨域、跨平台、跨网络等诸多挑战.
目前,工业界已经有了提供商专用的监控服务[3-4]和独立的云监控服务[5-7].学术界提出了不少云监控方法[1, 8-11],但这些方法大多针对单云环境设计.部分学者展开了多云监控研究,例如Dastjerdi等[12]选择提供商专用监控服务或独立云监控服务进行多云监控,但这些外部监控未必能提供所需指标,也将引入更多指标时延.Tovarňák等[1]提出了适用单云和多云的事件驱动监控模型,基于收集指标生成简单事件,由各事件处理代理分别对简单事件进行关联,产生多种复杂事件供订阅,仅考虑了租户监控需求.Kertész等[13]提出了一个基于分布式经纪人的多云协作框架,使用一个轻量级云指标监控服务,方法仅适用于文中提出的多云框架.Smit等[14]提出了一个多云应用级监控框架,指标被推送到系列流处理器产生监控数据流,数据流被传输到存储引擎、通告引擎和聚合引擎处理产生高级指标,框架仅服务于租户并完全使用第三方监控服务.文献[11]基于OMG DDS中间件设计了多云监控框架,在被监控VM相同位置物理机实例化一个发布者,利用libvirt库访问物理机获取VM指标,需要获取物理机访问权限,因此框架具有较大局限.总之,现有方法或者不能订制指标、或者不能满足多方监控需求、或者仅适用特定多云平台、或者并非专为多云设计,不能较好满足多云监控需求.本文基于多云监控需求分析,提出了一种可扩展、自适应资源弹性、平台独立并提供传输服务质量(QoS)支持的多云监控方法SEPQMS(scalable, elastic-adaptive, platform-independent and QoS-enabled monitoring solution).主要工作及贡献如下:1) 使用监控代理实施对云资源及应用监控指标的收集和推送,实现了监控指标的灵活订制和监控装置的动态部署.2) 基于对象管理组织(OMG)的实时应用数据分发服务(DDS)标准规范OMG DDS[15],提出了多云监控方法SEPQMS的主体框架.3) 选择基于自适应通信环境(adaptive communication environment, ACE)[16]、ACE对象请求代理(the ACE ORB, TAO)[16]和Open DDS中间件,实现了SEPQMS的原型.
1 多云环境的资源及应用监控需求多云环境与单云环境在结构及运行管理上的差异,使多云监控具有许多独特的需求特征.监控主体及其指标需求:监控主体包括经纪人和租户,经纪人需监控掌握多云资源分布、资源类型数量细节及资源使用信息,以便实施费用管理和弹性提供资源等;租户需监控部署组件及依赖资源相关指标,掌握组件性能表现并推断其根源.监控指标传输QoS需求:来自不同提供商资源及部署组件的监控指标,需利用公网传输,传输QoS控制是需考虑的问题.同时满足多方需求的统一监控体系:若分别为经纪人、租户独立构建监控系统,将产生许多重叠监控设施,而租户和经纪人监控的资源对象是重叠的,建设统一的监控体系是合理选择,将大大减小建设开销、降低维护难度.平台无关性:多云监控涉及多个提供商资源,很可能使用不同虚拟系统,VM支持的操作系统往往也不同,这要求多云监控体系必须满足平台无关性、安全性、可扩展性.弹性适应和自治能力:需安全隔离各租户监控数据流,具备良好扩展性,能适应或大或小的应用和资源规模,并能够按需订制监控指标,另外,还需具备较好弹性适应性,自动适应监控对象动态增减,且应具备较强自治性,减少系统维护管理任务.
2 多云监控方法SEPQMS 2.1 OMG DDS概述OMG发布的分布式实时应用数据分发服务标准OMG DDS[15](简称DDS),已被广泛接受采用.对于分布式应用,面向消息的数据分发模型,特别是发布/订阅模型,与C/S模式相比,提供了更好的性能和灵活性.DDS正是以数据为中心,使用发布/订阅模型的数据分发标准,支持传输QoS控制.DDS结构包含核心层,即发布/订阅层(DCPS)和可选的数据本地重构层(DLRL).DCPS模型主要实体有:数据域,是数据流分隔范围,仅限同一域内实体间才可相互通信;主题,发布者和订阅者通过主题通告发布和接收信息,主题使用唯一名称和数据类型,可附加QoS约束控制分发;发布者,管理所属数据写入器,负责发布主题,按QoS约束建立数据通信通道;订阅者,管理所属数据读取器,负责发布订阅主题,接收主题数据并转发;数据写入器,唯一对应一个发布主题,主题样本生成时,它通过发布者将数据传输给订阅者;数据读取器,唯一对应一个订阅主题,当订阅者获得主题数据后,将其转发给相应数据读取器.
2.2 SEPQMS监控方法设计原则1) 采用DDS发布/订阅模型.多云资源及应用组件数量多、动态性强、布局分散,DDS模型能够适应发布者和接收者的动态变化以及较大规模监控布局,可提供传输质量支持满足如实时性、完整性等需求.已有的一些高质量开源DDS标准中间件,能够简化系统实现,增强稳定性和可靠性.2) 冗余设计的集中式主题注册匹配模式.分布式主题注册匹配模式全局广播主题信息,通信信道的不充分可靠,很可能造成部分节点信息不完整,主题广播还会增加网络流量.集中式模式使用绑定固定IP的注册匹配服务器,发布者、订阅者主动提交主题注册,服务器执行注册和匹配并返回结果,能保证信息完整并减少流量开销,性能瓶颈、单点故障可通过服务器冗余设计等方法解决.3) 用插件式监控代理收集指标.安装监控代理是广泛采用的指标收集方式[2, 8-9,17],监控代理以插件方式容纳、管理数个指标探测器(Probe),可动态部署,按需安装和配置Probe并处理和推送收集的指标.Probe实施指标收集,内置通用功能并对外提供可自定义扩展的抽象接口.4) 监控数据安全隔离和发布者、订阅者的部署.将各租户的应用、资源及相关实体划分到单独DCPS数据域,保证租户应用安全.发布者、订阅者是框架核心实体,如果让一个发布者管理太多监控代理,将承受过大通信及处理压力,而部署太多发布者必导致系统出现过多节点和大量连接需要维护.权衡考量,以应用组件为单位部署发布者,而订阅实体类型相对较少,以应用为单位部署订阅者即可.
2.3 SEPQMS监控方法的主体框架结构1) 概述.SEPQMS多云监控方法主体框架如图 1所示.主要包含注册匹配服务器Cen_ Reg_ Match_ Server、订阅者Subscriber、发布应用PublishApp、监控代理Mon_Agent等设施.PublishApp与Mon_Agent部署结构如图 2所示.在第三方BROKER中,部署冗余设计的注册匹配服务器,为每个应用部署一个Subscriber,分配一个数据域dom,实例化应用管理、资源弹性、费用管理3个订阅实体.为每个应用组件部署一个PublishApp,当组件部署于多个VM时,PublishApp部署于负载平衡器,否则部署在组件相同VM中.PublishApp包含发布者Publisher、监控代理管理Mon_Admin和监控指标管理Metrics_Admin组件.
![]() |
图 1 SEPQMS的主体框架结构 Figure 1 Structure framework of SEPQMS |
![]() |
图 2 发布应用与监控代理部署结构图 Figure 2 Deployment structure of publish application and monitor agent |
2) 发布/订阅主题注册匹配及监控数据分发流程.如时序图 3所示.新发布者和订阅者主动向服务器提交主题注册请求.服务器收到请求后分别在发布主题表和订阅主题表加入新主题;对新发布主题遍历订阅主题表进行匹配,对新订阅主题遍历发布主题表进行匹配,然后返回注册匹配结果.
![]() |
图 3 发布/订阅主题注册匹配及监控数据分发流程 Figure 3 Registration and matching of subject and monitoring data distribution process |
发布应用收到主题匹配结果,首先更新本地订阅主题表,然后按照订阅主题及附加QoS需求,由监控指标管理组件定义指标订阅规则,生成监控代理配置调整参数,例如监控代理ID、指标类型、更新周期等,监控代理管理组件根据配置参数配置调整监控代理.监控代理按照更新的监控配置,配置调用Probe执行指标收集,然后汇集Probe监控指标进行结构处理后向发布应用推送,指标管理组件对推送的指标,按主题指标订阅规则进行过滤、聚合等生成主题样本,提交给数据写入器,数据写入器通过发布者与订阅者连接通信传输主题数据,订阅者接收发布者的主题数据并转发给订阅实体.
3) 主题数据模型及指标订阅规则语言.按DDS规范使用主题及数据类型管理监控数据,根据VM和应用组件相关指标,定义了常用指标数据类型,例如VM的CPU、内存、网络、磁盘使用信息等,如表 1所示.
![]() |
表 1 常用的VM监控指标类型及主题规划 Table 1 Types of VM monitoring metrics and topic planning |
发布应用需根据订阅主题配置监控代理实施指标收集,为此定义了一种指标订阅规则语言,将订阅主题高级指标与监控指标及其监控代理进行关联.例如数据类型为CPUInfo的主题包含avg_cpuUtil等高级指标,avg_cpuUtil等于组件各VM的CPU平均利用率,用三元组{Filter, Members, Period}描述指标订阅规则.用Filter将高级指标映射为一套低级指标,可组合使用算术运算符号(+、-、*、/等)和组函数(AVG、SUM、MIN、MAX等),对低级指标进行过滤聚合;用Members指定相关监控代理ID;用Period指定指标收集聚合周期.使用BNF格式[18-19]描述了订阅规则语言.
4) 两级心跳监控机制.使用两级心跳监控对监控节点实施保活管理,采用被动心跳监控以减小开销,即由发布应用和订阅者主动向服务器周期发送心跳包,而监控代理也周期地向对应发布应用发送心跳包.服务器持续收到心跳包则维护节点状态为UP,若连续未收到心跳包达指定最大次数,即认为该节点失效,将状态置为DEAD.为自动感知节点位置迁移,在心跳包中嵌入了节点地址信息.
3 基于ACE、TAO、OpenDDS中间件实现原型SEPQMS原型软件分层结构如图 4所示.操作系统之上依次是开源中间件ACE、TAO和OpenDDS[16],及最上层的发布应用、订阅应用、注册匹配应用.底层ACE屏蔽了OS差异,向TAO、OpenDDS和应用程序提供通信功能接口.TAO是CORBA标准中间件,它使用ACE提供的组件和框架构建了对象请求代理(ORB),具有很高性能和可靠性,原型采用TAO实现发布者和订阅者的主题注册服务.OpenDDS是Object Computing公司遵循DDS标准的开源中间件,实现了DDS DCPS核心层及QoS控制,使用ACE和TAO提供的框架和接口,提供“可插拔传输层”实现监控数据传输.基于OpenDDS实现了监控数据发布/订阅功能层,并与原型其他组件如监控代理等实现对接.
![]() |
图 4 SEPQMS原型的分层结构图 Figure 4 Layered structure diagram of SEPQMS prototype |
1) 监控代理与指标探测器:使用Java代理开发平台JADE开发监控代理,结构如图 5所示.它部署启动后,发布应用连接器立即向发布应用请求连接,随后发送其ID、IP、收集指标等元数据并等待监控指令.发布应用根据匹配的订阅主题,生成相应的监控配置参数发送给相关监控代理,而后Probe控制器完成监控配置并启动相关Probe测量.Probe收集指标送至指标队列,之后由监控代理封装为消息,陆续推送给发布代理.
![]() |
图 5 监控代理结构图 Figure 5 Structure diagram of monitor agent |
2) 发布应用和订阅应用.发布应用包含监控代理管理、监控指标管理和OpenDDS发布者、数据写入器等组件.监控代理管理组件管理所属监控代理,处理其连接请求和心跳包、对监控代理进行参数配置等.指标管理组件负责对匹配主题实施指标订阅,获得监控配置参数,并在收到监控指标后按订阅规则将其映射为高级指标,生成主题样本提交给数据写入器,后者通过发布者与订阅者建立通信,按主题QoS约束将数据传送给订阅者,订阅者接收主题数据并转发给相应数据读取器保存.
4 实验及分析为了对SEPQMS的功能以及主要特性进行检验和评价,选择在几个公有云部署如下代表性应用,搭建真实多云环境.Cassandra DB[20],是一个NoSQL分布式存储系统,采用无中心架构,客户端读写数据时,系统随机调度访问任一节点并同步节点数据,施加较大负载时簇节点CPU利用率增加,这里基于CPU使用率决策资源升级.YCSB[21]是由Yahoo针对NoSQL系统开发的性能测试框架,能产生6种不同负载,利用YCSB产生对Cassandra的负载,任选部署YCSB的A、C、E这3种负载.
选择在3个公有云安排如下:分别部署10个VM,8个部署Cassandra数据库,2个部署YCSB客户端,3个云分别部署YCSB的A、C、E负载,使用规格不一、操作系统各异的VM.具体如下:在Amazon新加坡数据中心,部署10个m1.small(使用CentOS)EC2实例,实施YCSB A负载;在Rackspace香港数据中心,部署10个General1-2实例(使用Debian),实施YCSB C负载;在Linode新加坡数据中心,部署10个Linode2GB实例(使用Ubuntu),实施YCSB E负载;选择Cassandra簇和YCSB客户端的任一VM部署发布应用;部署在YCSB VM的监控代理安装VM及YCSB应用相关Probe,部署在Cassandra VM的监控代理,安装VM及Cassandra应用相关Probe.在本地一台服务器(联想i7、Intel 4核处理器、8 GB内存)实例化2个VM,分别部署主题注册匹配服务器和订阅应用.开发了几个Probes分别对如表 1所示常用15个VM指标,以及Cassandra读写延迟、YCSB吞吐量和延迟指标进行测量.
4.1 检验SEPQMS对监控资源弹性的适应能力3个云中监控设施对资源弹性适应过程完全相似,因此只在一个云中进行实验.在Amazon的10个VM的2个VM部署Cassandra簇,2个部署YCSB,生成不断增大负载,导致Cassandra VM的CPU使用率不断增大,设定当簇CPU平均使用率达75%,即新添1个VM加入Cassandra簇,Cassandra为应付逐渐加大的负载,动态添加更多节点,直到8个VM全部添加.监控代理随新添加VM一同部署,订阅应用对YCSB和Cassandra组件的CPU_Info、Memory_Info、YCSBInfo、CassandraInfo等主题进行订阅.监控代理一经部署初始化后,即与其发布应用连接,接受参数配置,随后开始指标收集和推送.实验显示SEPQMS能够较好满足应用资源弹性提供环境的监控需求.
4.2 实施多云部署,进行跨平台性、监控扩展能力及QoS支持能力、监控开销的检验评价在3个云分别部署YCSB负载A、C、E,各云均包含YCSB和Cassandra组件,将3个云中的6个组件均划分到同一个租户监控数据域,实例化一个订阅实体对6个组件的VM及应用指标主题进行订阅.每个云开始时初始化2个YCSB VM和1个Cassandra VM,然后每10分钟从剩下的7个VM中任选一个初始化加入到Cassandra簇,直到所有Cassandra VM全部初始化并开始收集.为评价监控框架扩展能力,考虑订阅实体作为监控数据汇集点,随VM规模升级,将承受越来越大的处理压力,特别测量了订阅实体的archiving时间,即处理及保存监控数据的平均时间.升级多云应用拓扑由9个VM到30个VM时,观察到archiving平均时间从20 ms上升到40 ms,呈现很缓慢的上升.另外,实验中观察到YCSB和Cassandra节点VM监控代理,以及发布应用、订阅应用的CPU和内存使用率分布如图 6所示.YCSB节点监控代理CPU及内存最大使用率分别是0.7%、2.0%,Cassandra的该值分别为0.3%、1.6%,发布应用的该值分别为1%、2.5%,订阅应用的该值分别为1.5%和3.5%,可以看出,监控设施的资源开销还是比较小的.此外,3个云中VM均采用不同操作系统,SEPQMS有效实现了跨平台监控.实验中还对订阅主题附加了不同的更新周期、最大数据延迟、传输协议配置等QoS选项,实验表明SEPQMS有效实现了对传输QoS的控制.
![]() |
图 6 主要监控实体CPU及内存使用率分布 Figure 6 CPU and memory usage distribution of monitoring entities |
本文在深入分析多云资源及应用监控需求基础上,提出了一种可扩展、能适应资源弹性、与平台无关、并支持传输QoS控制的多云监控方法SEPQMS,实现了系统原型,搭建真实多云环境,部署SEPQMS原型进行了实验,验证了SEPQMS的功能及扩展性、平台无关性、弹性适应性及自治性等主要属性.对监控设施开销的分析表明,引入SEPQMS对多云应用环境的影响很小.
[1] |
TOVARÑÁK D, NGUYEN F, PITNER T. Distributed event-driven model for intelligent monitoring of cloud datacenters [C]//FILIP Z, JASON J J, COSTIN B. Intelligent Distributed Computing Ⅶ. Berlin: Springer, 2014: 87-92. http://link.springer.com/content/pdf/10.1007%2F978-3-319-01571-2_11.pdf
( ![]() |
[2] |
MONTES J, SÁNCHEZ A, MEMISHI B, et al. GMonE: a complete approach to cloud monitoring[J]. Future generation computer systems, 2013, 29(8): 2026-2040. DOI:10.1016/j.future.2013.02.011 ( ![]() |
[3] |
AMAZON. Amazon cloudwatch[DS/OL].[2016-09-08].http://aws.amazon.com/cn/cloudwatch/.
( ![]() |
[4] |
MICROSOFT. Microsoft azure[DS/OL].[2016-09-08].https://azure.microsoft.com/en-in/marketplace/partners/paraleap/azurewatch/.
( ![]() |
[5] |
VMWARE. VRealize hyperic[DS/OL].[2016-09-08].http://www.cloudstatus.com/.
( ![]() |
[6] |
MONITIS. All-in-one application monitoring platform[DS/OL].[2016-09-08].http://www.monitis.com/.
( ![]() |
[7] |
LOGIC MONITOR. Monitor on-premise, cloud and hybrid datacenters from a single platform[DS/OL].[2016-09-08].http://www.logicmonitor.com/.
( ![]() |
[8] |
AVERSA R, TASQUIER L, VENTICINQUE S. Agents based monitoring of heterogeneous cloud infrastructures [C]//Proceedings of the 10th International Conference on Ubiquitous Intelligence and Computing, and the 10th International Conference on Autonomic and Trusted Computing(UIC/ATC). Vietri sul Mare, 2013: 527-532. http://dl.acm.org/citation.cfm?id=2574179
( ![]() |
[9] |
TRIHINAS D, PALLIS G, DIKAIAKOS M D. JCatascopia: monitoring elastically adaptive applications in the cloud [C]//Proceedings of the 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. Chicago, 2014: 226-235. http://ieeexplore.ieee.org/document/6846458/
( ![]() |
[10] |
LEITNER P, INZINGER C, HUMMER W, et al. Application-level performance monitoring of cloud services based on the complex event processing paradigm [C]//Proceedings of the 5th IEEE International Conference on Service-Oriented Computing and Applications. Taipei, 2012: 1-8. https://www.computer.org/csdl/proceedings/soca/2012/4773/00/06449437-abs.html
( ![]() |
[11] |
AN K, PRADHAN S, CAGLAR F, et al. A publish/subscribe middleware for dependable and real-time resource monitoring in the cloud [C]// Proceedings of the Workshop on Secure and Dependable Middleware for Cloud Monitoring and Management. New York, 2012: 3. http://dl.acm.org/citation.cfm?id=2405189
( ![]() |
[12] |
DASTJERDI A V, TABATABAEI S G H, BUYYA R. A dependency-aware ontology-based approach for deploying service level agreement monitoring services in Cloud[J]. Software practice & experience, 2012, 42(4): 501-518. ( ![]() |
[13] |
KERTÉSZ A, KECSKEMETI G, ORIOL M, et al. Enhancing federated cloud management with an integrated service monitoring approach[J]. Journal of grid computing, 2013, 11(4): 699-720. DOI:10.1007/s10723-013-9269-0 ( ![]() |
[14] |
SMIT M, SIMMONS B, LITOIU M. Distributed, application-level monitoring for heterogeneous clouds using stream processing[J]. Future generation computer systems, 2013, 29(8): 2103-2114. DOI:10.1016/j.future.2013.01.009 ( ![]() |
[15] |
OMG. Data distribution service[DS/OL].[2016-09-08].http://www.omg.org/spec/DDS/.
( ![]() |
[16] |
WASHINGTON UNIVERSITY. Computer science and engineering[DS/OL].[2016-09-08].http://www.cs.wustl.edu/.
( ![]() |
[17] |
KATSAROS G, KOUSIOURIS G, GOGOUVITIS S V, et al. A self-adaptive hierarchical monitoring mechanism for clouds[J]. Journal of systems and software, 2012, 85(5): 1029-1041. DOI:10.1016/j.jss.2011.11.1043 ( ![]() |
[18] |
杨明辉, 郭肇德. 基于扩展的BNF文法的通用语法分析算法[J]. 软件学报, 1992, 3(3): 24-32. ( ![]() |
[19] |
蔡宏果, 元昌安, 罗锦光, 等. 基于server session约束的序列模式增长挖掘研究[J]. 郑州大学学报(理学版), 2010, 42(1): 24-28. ( ![]() |
[20] |
LAKSHMAN A, MALIK P. Cassandra:a decentralized structured storage system[J]. ACM SIGOPS operating systems review, 2010, 44(2): 35-40. DOI:10.1145/1773912 ( ![]() |
[21] |
ABUBAKAR Y, ADEYI T, AUTA I G. Performance evaluation of No SQL systems using YCSB in a resource austere environment[J]. Performance evaluation, 2014, 7(8): 23-27. ( ![]() |