APP下载

云计算系统可用性分析方法初探

2015-05-13陆伟宙蔡向峰

信息通信技术 2015年2期
关键词:双机计算资源可用性

陆伟宙 蔡向峰 王 晖

广东省电信规划设计院有限公司 广州 510630

概述

近年来,云计算一直是商业和科研机构关注的热点,同时,也在IT界得到广泛的应用,云计算成为业务系统部署的主要方式之一。云计算通过虚拟化等技术,构建统一的资源池,屏蔽底层资源细节,向用户提供服务,从而达到提高设备利用率、节能减排、快速部署业务等目的。由于云计算引入了虚拟化、多租户等技术,对底层的物理资源进行了屏蔽,因此,无法采用传统的可用性分析方法分析云计算系统的可用性,从而造成了云服务使用者的困惑,也给云服务的服务等级协议(Service-Level Agreement, SLA)制定带来了困扰。本文对云计算系统,主要是IaaS(Infrastructure as a Service,基础设施即服务)云计算系统进行分析,探讨其可用性的计算方法。

1 可用性分析

系统的可用性[1-3]是指假设系统在所需的外部资源都已提供的情况下,准备好以一个状态及时在给定时间段内或给定时间间隔内的任何时间段提供所需要的功能。在实际的环境中,往往使用正常使用时间和总运行时间的比值来刻画。即

而IT基础设施库(ITIL)[2]提出使用协议服务时间取代总运行时间,强调系统可以停机进行维护,协议服务时间不包括计划内停机时间,停机时间仅包括故障停机,因此,上面的公式可以改写如下:

如果用平均故障间隔时间(Mean Time Before Fail,MTBF)和平均修复时间(Mean Time To Repair,MTTR)对可用性A进行估算,则有公式(1):

一般而言,单个系统组件,例如物理服务器等的平均故障间隔时间可以通过现网测试、压力测试等方式进行评估,平均修复时间则可根据运维能力进行估算。整个系统的可用性与系统的构成方式有关,并不等于组件的可用性简单叠加。

服务可靠性与服务可用性在概念上有一定的重叠。广义的服务可靠性包括了服务可用性,例如微软对可靠性的定义是在成本效益方面,确保服务能力、服务可用性、服务连续性、数据完整性和保密性等复合业务需求[4]。而狭义的可靠性的定义是指一个项目在规定条件和时间内完成规定功能的能力[2-3]。狭义的服务可靠性以最大可接受的服务时延内得到成功响应的数量与总请求数的比例进行计算。例如一个Web系统,由于服务器故障或者拥塞导致响应时间大于可接受服务时延都会产生不成功的响应,都可以视作服务可靠性降低。当多个服务器持续故障则可导致整个系统不可用。本文主要关注系统可用性。

常见的系统可用性评估方法可以分为基于组合的方法和基于状态的方法两大类[3-4]。基于组合的方法是针对系统和组件之间的逻辑关系的一种分析方法,主要的方法有可靠性框图法(Reliability Block Diagram,RBD)[1-2,5]、可靠图法(Reliability Graph,RG)[1-2,5]和故障数树分析(Fault Tree,FT)[1,5]等。可靠性框图法[1-2,5]是典型的基于组合的方法,它利用串并联的方式表示组件与系统的逻辑关系,串联的组件中只要有一个组件失效系统就会发生故障,并联组件中只要还有一个组件可以正常工作系统就正常,如图1(a)、图1(b)所示。

图1 串联结构与并联结构

假设一个n组件的系统可用性为A,各组件的可用性为Ai,串联结构和并联结构的可用性可用公式(2)表示:

基于状态的可用性评估方法[1-2,5]根据状态与状态之间的变化关系确定系统的可用性,一般利用随机理论分析,主要方法包括基于Markov过程的方法[1-2]和基于Perti网的方法[1]。典型方法基于Markov过程的方法定义了状态和状态跳转两类要素,并使用这两类要素描述系统所处的状态和动态行为。图2显示了一个三组件串联的系统对应的Markov模型,其中状态0表示正常,状态1表示异常,λ和μ分别表示组件的失效率和维修率,从图中可以看出仅有状态000是正常的状态,其余状态系统都不可用。基于Markov模型的可用性分析通过计算稳态下正常状态的概率,确定系统的可用性。基于Markov模型的可用性分析隐含假设是系统在每个状态的时间都服从指数分布,而在实际器件或产品在它的正常生命期内的可靠性函数是服从指数分布的,因此,基于Markov模型的可用性分析得到广泛的应用。近年来,Kwon和Chuob等人[6-7]在离散Markov模型基础上,引入了得分值的概念,即对正常工作状态赋值为1,异常工作状态赋值为0,通过计算稳态过程的对应状态分布概率,再计算总得分得到可用性。这类模型称为Markov Reward Model,并已应用到软件可用性评估中。

图2 三组件串联系统对应的Markov模型

基于组合的可用性分析方法相对简单,模型表达清晰易于理解,但其描述能力较弱,且需要组件彼此独立;基于状态的分析方法比较复杂,模型表达能力强,没有组件独立的要求,但需要状态持续时间服从指数分布。

2 云计算系统可用性

云计算系统的架构如图3所示,通常包括管理节点、网络资源、计算资源、存储资源四个组件。其中,管理节点包括管理服务器,它对所有资源进行统一的管理;网络资源包括核心交换机、接入交换机、防火墙、负载均衡器等网络设备;计算资源由多台服务器组成,若干台服务器构成集群;存储资源包括FC SAN存储和IP SAN存储等。由于云计算系统部署在机房物理环境中,电源、空调等机房基础设施的故障会影响云计算系统的使用,因此,在考虑云计算系统可用性的时候除考虑上述四个组件的可用性外,还需要考虑机房基础设施的可用性。

云计算系统由于引入了虚拟化层,虚拟化带来资源调配的灵活性,提升了系统的可用性。在云管理平台的调度下,云计算系统的一个组件失效后将被另一个组件迅速取代,对上层应用完全透明。例如,VMware的高可用功能(High availability, HA)使得承载虚拟机的物理主机出现故障后在HA集群中的另一台物理主机上重新启动对应的虚拟机,实际上提供了温备的功能;容错功能(Fault Tolerance)使得虚拟机1:1热备等。温备、热备等功能的大量使用使得可用性评估更为复杂,传统的可用性评估方法需要进行改进才能用于云计算系统的可用性测算。

图3 云计算系统典型架构

近几年,学术界和业界对云计算系统的可用性评估进行探讨,主要基于RBD和Markov Model并结合云计算特点进行优化。Bauer和Adams探讨了云计算系统和服务可靠性和可用性的设计、计算、评估和优化方法[2],认为云计算系统的可用性和可靠性风险来自于云计算系统的基本特征,如按需自助服务、网络接入、资源池化等;在可用性评估方面,采用RBD方法对端到端的云服务进行了可用性评估。Wang[8]等人提出基于可用性和调度成本分析的资源调度方法,对虚拟机的可用性进行评估,其方法主要是计算虚拟机所在的主机的可用性,并没有分析整个云系统的可用性。Dantas、Matos等针对Eucalyptus云计算平台进行可用性分析[9],对Eucalyptus云计算平台组件的不同组合方法进行可用性分析,其方法主要基于RBD。Chuob、Pokharel等人[7]提出分层的模型,在集群层面和节点层面采用改进的Markov模型对系统的可用性进行分析。陈怀临[10]在更高层面提出一种定量分析云计算系统可用性的方法,提出采用单独可用性(Standalone Availability,SA)和部署可用性(Deployment Availability,DA)的概念分别表示构成系统组件完全可用和非完全可用情况下系统的可用性,对不同层面的SA和DA的关系进行了分析,并具体分析了不同承接关系下的IaaS、PaaS、SaaS系统的可用性计算方法。

3 云计算系统可用性分析方法

从图3可以看出,云计算系统逻辑架构上可以分为管理节点、网络资源、计算资源和存储资源四大部分。由于这四大部分资源由不同的硬件构成,如果单独考虑机房基础设施故障,可以认为云计算系统四大部分彼此独立。采用可靠性框图法RBD对云计算系统进行分解,如图4所示。

图4 云计算系统的RBD图

云计算系统的可用性可以用公式(3)表示:

其中Acloud表示整个云计算系统的可用性,Ainfrastructure表示机房基础环境的可用性,Amanagement表示云计算系统管理节点的可用性,Anetwork表示云计算系统网络的可用性,Acompute表示云计算系统计算资源的可用性,Astorage表示云计算系统存储资源的可用性。由于各个组件都能对整个系统的可用性造成影响,因此,整个系统的可用性是各组件可用性的乘积。对于每个组件,可采用RBD分解方法拆分成多个更细的资源模块,可以拆分到能映射物理设备的模块为止。例如计算资源拆分成集群,集群可以继续拆分成服务器资源等(如图5所示)。

在RBD分解后,每个模块的可用性和设备可用性跟设备部署方式有关。设备可用性可以通过对设备进行测量或者通过生产商提供的参数获得。设备的部署方式可以分为三大类。第一类是通过单机部署,或者可以看成单机部署的;第二类是采用双机部署,包括热备双机、温备双机两大类,云计算系统中很少使用冷备双机;第三类是采用多节点部署,一般所有节点都可以对外提供服务。通过分析计算资源、存储资源、网络资源、管理节点和机房基础设施中各模块的设备部署方式,即可计算其可用性,进而分析整个云计算系统的可用性。

图5 计算资源的RBD分解

第一类资源构建方式是单点部署。通过设备自身的冗余来提高可用性,典型的例子是作为共享存储的磁盘阵列,通常是单点部署,通过设备的双引擎、双通道来提高其可用性,因此,其高可用性等同于设备自身的高可用性。另外一个可以看作单点部署的是机房基础设施。机房基础设施的可用性是指机房的电源、空调、机柜等基础设施的可用性,这类基础设施往往通过冗余来实现,比如电源的双路接入、油机系统等,且与是否提供给云计算系统无关。从整体上看,其可用性可以认为等同于传统环境下的机房基础设施可用性,其测试和计算方法与传统环境一致。

第二类资源构建方式是双机部署。通常以热备或温备的方式部署,例如采用双机形式部署的云管理节点、接入交换机、汇聚交换机等。在云计算系统中,资源部署基本上不采用冷备的方式。对于热备双机,实际上构成双机的设备都对外提供服务,因此,对于外界来说热备双机等同一个并联的两组件系统,如果两个组件的可用性分别为A1和A2,其可用性可通过下列公式计算:

对于温备系统,即一个设备正常提供服务,另外一个设备处于待机状态,当主设备发生故障,待机状态的设备需要一定的激活时间才能接管主设备的工作。由于温备双机需要切换,存在一定的停机时间,但远少于单机维护的时间;同时,备机日常处于待机状态;因此,能节约一定的待机成本,也能有效缩减停机时间。对于温备双机,采用文献[9]中的Markov Reward Model(MRM)方法计算其可用度。基于两台设备所处的状态,可以分为正常-待机(Up-Wait,UW)、正常-故障(Up-Fail,UF)、故障-故障(Fail-Fail,FF)、故障-正常(Fail-Up,FU)和故障-等待(Fail-Wait,FW),如图6所示。其中,λ_s1和λ_s2指两台设备工作状态下的故障率,其数值等于这两台设备的MTBF(记为m)的倒数;μ_s1和μ_s2指两台设备的维修率,其数值等于这两台设备的MTTR(记为n)的倒数;λi_s2指备机在等待状态下的故障率,文献[5]认为其比λ_s2小20%,对应MTBF为mi;sa_s2为系统发现主机失效激活备机时间sa的倒数。对于MRM模型,指定正常工作状态的UW、UF、FU的得分值为1,无法工作的状态FF、FW的得分值为0,通过计算该Markov模型的稳定状态,得到在稳定状态下UW、UF、FU这三个状态的概率,对应概率和得分值的乘积之和就是温备双机的可用性。

图6 温备双机的MRM模型

根据上述假设,文献[9]给出温备双机的可用性计算如下:

第三类资源构建方式是多机部署。主要采用这种方法部署的是服务器,多台服务器构成一个集群,多个集群构成云计算系统。假设共有N×K台服务器,分为N个集群,集群所有的服务器均为同一种服务器,其可用性一致。第i个集群的服务器数量为Ki,第i个集群的服务器的可用性为Ai,其中 。那么第i个集群的可用性可以计算如下:

第一种情况,假设所有服务器同构,其可用性均为A,整个计算资源的可用性可以计算如下:

从公式(7)可以看出,在服务器完全同构的情况下,计算资源的可用性仅与单服务器的可用性A和服务器总数N×K有关,与集群数目N和每个集群的服务器Ki无关,可见在服务器同构的情况下,集群构成对计算资源的总可用性无影响。

第二种情况,假设每个集群的服务器存在差异,由公式(6)可知,由于Ai在(0,1)区间,易知Ai和Ki越大,整个集群Aclusteri的可用性也越大。假设可用性最大的集群的可用性为Aclustermax,那么整个计算资源的可用性落在以下区间:

由公式(8)可以简单地推算计算资源的可用性上下限,为服务等级协议SLA的指定提供参考。

综上所述,在区分几大组件之后,整个云计算系统的评估可以采用以下流程。

步骤1:对云计算系统进行逻辑拆分,将其分成彼此无关的组件;

步骤2:对各个组件进行RBD法拆分,直到每个资源模块能映射到单机、双机、多主机部署方式;

步骤3:根据模块内部设备的部署方式,计算各模块的高可用性。由此推算整个组件的可用性;

步骤4:根据公式(3)计算整个云计算系统的可用性。

4 应用场景

云计算系统的可用性评估方法主要有提高可用性设计和制定SLA两类应用场景。

第一类应用场景是在云计算系统的构建过程中根据可用性要求对组件进行可用性分配和改进设计。根据系统的业务需求确定可用性的要求,根据总体可用性要求对计算资源、存储资源、网络资源和管理节点、机房基础设施各个组件可用性要求进行分配。由于部分组件的可用性提升的幅度不大,例如机房的基础设施,可靠性分配应有所侧重。在分配各组件的可用性后,在满足其他要求的前提下,结合单一设备的可用性、设备部署方式和RBD方法计算现有组件的可用性,若组件可用性不满足要求,增加并行设备数量直到满足要求为止。此外,在单节点无法满足高可用性的SLA要求的情况下,可以考虑采用多节点的方式进一步提高可用性。

第二类应用场景是在云计算系统构建完毕,采用云计算系统各个组件的可用性评估方法,计算现有云计算系统的可用性。由于云计算系统的可用性是SLA的重要组成部分,因此,可用性评估方法有助于云计算系统对外服务前制定SLA。

5 小结

本文针对云计算系统的架构特点提出了一种云计算系统可用性评估方法。该方法分析了云计算系统组件的构成方式,给出了单机部署、双机部署、多机部署三种不同形式的组件的可用性估算方法和可用性区间,进而提出了云计算系统的总体可用性的评估方法。该方法有助于构建高可用性的云计算系统及制定云计算系统SLA。

参考文献

[1]李海泉,李刚.系统可靠性分析与设计[M].北京:科学出版社,2003

[2]BAUER E,ADAMS R.Reliability and availability of cloud computing[M].USA:John Wiley & Sons Ltd,2012

[3]Quality Excellence for Suppliers of Telecommunications Forum——Resource Handbook for Business Improvement[EB/OL].(2010-08-03)[2015-01-19].http://doc.mbalib.com/view/14f748b10727523acdc6bb6b32 8c4129.html

[4]Microsoft Reliability Overview[EB/OL].[2015-01-19].https://msdn.microsoft.com/en-us/library/aa292168(v=vs.71).aspx,2008

[5]蒋乐天.系统可靠性分析方法及软件可靠性技术研究[D].上海交通大学博士学位论文,2003

[6]KWON Y,AGHA G.A Markov Reward Model for Software Reliability[C]//International Parallel and Distributed Processing Symposium,IEEE,2007

[7]CHUOB S,POKHAREL M,PARK J.Modeling and Analysis of Cloud Computing Availability based on Eucalyptus Platform for E-government Data Center[C]//2011 Fifth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing,2011

[8]WANG W,CHEN H,CHEN X. An Availability-aware Virtual Machine Placement Approach for Dynamic Scaling of Cloud Applications[C]//2012 9th International Conference on Ubiquitous Intelligence and Computing and 9th International Conference on Autonomic and Trusted Computing,2012

[9]DANTAS J,MATOS R,ARAUJO J,et al.Models for Dependability Analysis of Cloud Computing Architectures for Eucalyptus Platform[J].International Transactions on Systems Science and Applications,2012,8:13-25

[10]陈怀临.关于云计算可用性的定性与定量研究[EB/OL].[2015-01-19].http://www.valleytalk.org/wp-content/uploads/2013/12/

猜你喜欢

双机计算资源可用性
基于模糊规划理论的云计算资源调度研究
基于辐射传输模型的GOCI晨昏时段数据的可用性分析
改进快速稀疏算法的云计算资源负载均衡
双机、双桨轴系下水前的安装工艺
从可用性角度分析精密空调的配电形式
双机牵引ZDJ9道岔不同步问题的处理
基于Wi-Fi与Web的云计算资源调度算法研究
耦合分布式系统多任务动态调度算法
Loader轴在双机桁架机械手上的应用
医疗器械的可用性工程浅析