中云内参(4):关于云计算可用性的定性与定量研究

云计算 驱动中国 陈怀临 2,523 次阅读 0 条评论
分享 Q

【中云网独家】 作者:陈怀临 中云网首席顾问

2.2 云计算分层结构可用性

本小节考察云计算分层结构中IaaS, PaaS和SaaS可用性的内在联系. 首先提出并定义云计算中可用单元AU(Availability Unit), 可用集(Availability Set ), 单独可用性SA(Standalone  Availability)和部署可用性DA(Deployment Availability)的概念, 然后定性和定量分析各种相关模型的可用性.

2.2.1 定义

根据Berkeley关于云计算模型的定义,一个云服务可以简单划分为SasS, PaaS和IaaS三层结构. 在这3层结构中,本文定义如下概念:

可用单元AU(Availability Unit):  某一层提供给上一层服务的最小基本服务单元. 是云计算服务的最小粒度. 同一层中可用单元之间互相独立,一个可用单元的失效不会影响其他单元. 常见的AU的例子为AWS的Availability Zone[9]和Windows AZure的Region[10]. 一个AU是一个逻辑概念, 对于IaaS而言, 可以是一个数据中心; 对于PaaS, 可以是一个WEB, 数据库的实例; 对SaaS, 可以是一个软件应用.

可用集合AS(Availability Set): 同一层中一个或者多个AU的联合, 并作为逻辑上的一个整体提供服务给上一层. AS具备一个仲裁(Arbiter)的功能模块. Arbiter用来实时监测该AS中的AU可用性, 并根据相应的算法, 仲裁哪个AU可以提供最好的, 或者最适合的服务. 当一个AS具备多于一个的AU时, 该AS被认为具备非单点失效属性. Arbiter本身可以是一个分布式的结构, 例如基于LVS集群的负载均衡[11], 或者AWS的LBS服务[12]等. 本文假设Arbiter本身具备足够的弹性, 因此不讨论Arbiter的单点失效问题.  另外, 不失一般性, 本文假设Arbiter的算法基于提供最大可用性的算法, 即在一个可用集里, Arbiter总是试图为服务申请者提供最大的可用性, 简称为BA(Best Availability)算法.

AU和AS的逻辑拓扑关系如下图所示:

对于一个AU和AS, 定义其单独可用性和部署可用性如下:

单独可用性SA(Standalone Availability): 在为其提供服务的下一层AS/AS的可用性是100%的情况下, 一个AU/AS自身的可用性. 例如, 一个PaaS服务在没有迁移到公有云上线之前, 在私有环境下或者实验室环境下的自身可用性.

部署可用性DA(Deployment Availability):  在为其提供服务的下一层AS/AS的可用性是动态变化的情况下, 一个AU/AS表现出来的实际可用性.  例如, 一个SaaS或者PaaS服务被部署在一个第三方的IaaS环境下能实际达到的可用性; 一个IaaS被部署在一个第三方的物理数据中心, 在计算,存储和网络环境变化下所能实际提供的可用性.

2.2.2 AU和AS的SA可用性

假设一个AS里有m个AU, 并形式表达为AS =

, 每一个AU都是等同的服务模块(软件或者硬件), 我们定义AU和AS的SA具有下面的属性.

公式 3                         SAAUi = SAAUj = A

其中A是一个常量, 例如, 99.99%, 或者99.99999%.

由于在任何一个AS里, 每个AU是等同的设计, 和基于同样的部署, 因此, 共同拥有一个相同的单独可用性.

公式 4                         SAAS =  Max(SAAUi  ) = A

一个AS的Arbiter的缺省算法是給上层服务申请提供最大的可用性. 当AS中的AU满足相同的A可用性的时候, 其能提供的最大可用性也是A. 例如, 一个SaaS服务使用了m个PaaS层的AU, 每m个AU的SA是99.9%, 那么这m个AU组成的AS的SA也是99.9%.

从上面的分析可以得出, 在一个AS下, 其内部AU的单独可用性是等价的; 一个AS的单独可用性是等于AU的单独可用性的.

2.2.3 AU和AS的DA可用性

我们认为, 一个云计算服务的实际可用性是依赖于其底层支撑服务的可用性的. 例如, 在一个公有云的IaaS上, 部署一个PaaS服务. 该PaaS服务的实际可用性是随着IaaS服务的可用性变化的.  如果IaaS能提供的可用性是99.9%, 尽管PaaS服务的设计的单独可用性是99.9%, 那么该PaaS对SaaS层的服务可用性是 99.9% * 99.9%, 减少到99.8%. 极端情况是, 如果该IaaS服务下线, 该PaaS服务, 不管其设计的单独可用性大小如何, 其部署可用性都减少为0.

一个AU和为其提供服务的AS的部署可用性关系可以形式表达为:  

公式5:                                  DAAU = SAAU . DAAS

其中, SAAU为这个AU服务的单独可用性; DAAS为这个AU部署的可用集AS的部署可用性.

显然可见, 当DAAS = 100%的时候, DAAU = SAAU;

在得到一个AS中的每个AU的DA可用性依赖于其下层服务可用性的量化关系之后, 可以很容易的定义和推导出一个AS的DA可用性.

假设一个AS里有m个AU, 可以表达为AS =

. 根据公式4, 可以得知每个AU的DA是依赖于底层AS的可用性的, 因此AS中的m个AU可能具备不同的DA可用性. 根据Arbiter的最大可用性算法, 可以导出一个AS对外的DA可用性为:

公式6:                                  DAAS = Max(DAAU1, DAAU2, ...DAAUm)

公式6的内涵是: 一个AS部署可用性等于其集合中具有最好部署可用性的那个AU的部署可用性. 例如, 一个AS含有2个AU, 在一个采样时间段T里, AU1的可用性是90%, AU2的可用性是99.99%. 如果承诺的SLA的可用性是99.5%, 显然, AS的Arbiter会通过AU2向上提供服务, 从而保证99.5%的可用性. 这个AS对外所能观察到的DA是99.99%, 而非90%或者其他.

下面具体讨论云计算基于SaaS, PaaS和IaaS的3层模型并定义其可用性的关系.

不失一般性, 假设一个SaaS AS部署在一个PaaS AS上; 该PaaS AS部署在一个底层的IaaS AS上.  其逻辑结构如图8所示.

从公式5和6, 可以很容易得出如下公式:

公式7:                                  DASaaS AU = SASaaS AU . DAPaaS AS

公式8:                                  DAPaaS AU = SAPaaS AU . DAIaaS AS                                 

其中:

SaaS AU: 一个SaaS的服务单元;

PaaS AU: 一个PaaS的服务单元;

IaaS AU: 一个IaaS的服务单元;

PaaS AS: SaaS AU使用的PaaS的服务单元集合;

IaaS AS: PaaS AU使用的IaaS的服务单元集合.

下面证明, SaaS, PaaS, IaaS的AS的DA可用性存在一个可传递的关系:

*  一个SaaS服务的可用性一定小于等于其依赖的PaaS服务的可用性.

*  一个PaaS服务的可用性一定小于等于其依赖的IaaS服务的可用性.

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友