一种云计算可用性定量计算模型
1 可用性定量计算模型
云计算的可用性可以是一个很宽泛的概念,为避免因涉及过多因素而造成量化计算不可行的问题,本文将首先对其进行较为严格的定义,进而提出自己的量化计算模型。
1.1 云计算可用性定义
传统电信业对可用性的定义为系统处在可工作状态的时间占总时间的比例[4],如式(1):
Availability=MTTF/(MTTF+MTTR) (1)
其中Availability为可用性,MTTF(mean time to failure)为平均故障间隔,MTTR(mean time to repair)为平均恢复时间。
但这种简单的定义无法体现云计算可用性的内在复杂性,根据目前主流的云计算模型[2],可将其划分为三个层面:IaaS(Infrastructure as a Service),PaaS(Platform as a Service),SaaS(Software as-a Service)。云计算可用性应考虑到包括IaaS,PaaS和SaaS的可靠性、延时、网络攻击以及三个层面之间的连接故障等可能导致用户的需求不能满足的因素,相应的,其整体的可用性可表示为式(2):
Availability=∏(AvailabilityIaaS,AvailabilityPaaS,AvailabilitySaaS)
(2)
而三个层面单独的可用性,同样可用式(1)进行计算,具体的计算方法在下节进行讨论。
1.2 分层结构可用性
本节将对云计算分层结构的可用性进行具体说明。首先定义几个同时适用于三层结构的概念:
(1)服务单元SU(Service Unit)。能够独立向上一层(IaaS的上一层为其它IaaS、PaaS或用户,PaaS的上一层为其它PaaS或用户,SaaS的上一层为其它SaaS或用户)提供服务的单元。位于同一层的SU相互独立,单个SU失效不影响其它SU的功能和性能。对IaaS来说,SU可以是RAID(Redundant Array of Independent Disks)阵列[5]中的单块硬盘或某个数据中心;对PaaS来说,SU可以是某个网站镜像或数据库实例;对SaaS来说,SU可以是某个软件实例。
(2)服务集合SS(Service Set)。由多个SU和数个(1个或多个)控制单元(CU,Control Unit)组成,作为一个逻辑整体(SU)向上一层提供服务,其结构如图1所示。CU用来监测组成SS的多个SU的状态,控制能够提供最优服务的SU向上一层提供服务。当SS具有多个SU时,本文称其具有抗单点失效性[6]。为简单分析,本文将CU作为一个整体考虑,不考虑其单点失效性。
图1 SS结构逻辑结构
(3)绝对可用性AA(Absolute Availability)。在设定下层可用性为100%的假设下,本级的可用性定义为AA。
(4)实际可用性PA(Practical Availability)。PA需要递归定义,设第i-1层的实际可用性为PAi-1,则第i层的PAi=AAi*PAi-1。
对属于同一层同一个SS的SU来说,有AAsui=AAsuj=Ω,Ω为一个常量(如99%,99.99%等)。
对含有N个SU的SS来说,其AAss=Max(AAsu1,AAsu2,…,AAsuN),即SS的CU会选择可用性最高的一个AU向上一级提供服务。
在云计算的实际的分层部署中,设第i层的向上一层提供服务的SS实际可用性为PAssi,则第i+1层的SU实际可用性可表示为式(3):
PAsu(i+1)=AAsu(i+1)*PAssi (3)
同样的,则第i+1层的SS实际可用性可表示为式(4):
PAss(i+1)=Max(AAsuk*PAssi) 其中0<k
即每一层的真实可用性取决于本身的可用性和下一层所提供的可用性。
1.3 部署结构
为对云计算可用性进行量化计算,需要对其部署结构进行明确。本文主要考虑以下三种结构,下文图2、图3和图4中的每个方框代表一个SS。
(1)线型结构。线型结构的部署拓扑如图2所示,IaaS,PaaS和SaaS均只部署了一个SS依次向上提供服务,该种结构在每一层都存在单点失效的问题,可用性保证能力较差,但其结构简单、部署维护难度低,加之成本较为低廉,也存在一定比例的实际应用。