引言 云计算是一种基于互联网的新型服务模式和计算模式。通过云计算模式,用户能够根据需要方便快捷地获取计算能力、存储空间和软件服务。云计算正在加速信息技术和服务模式的创新,其发展与应用对信息产业发展具有多方面推动作用,对经济社会发展将产生深远影响。我国对云计算发展高度重视,将其列为战略性新兴产业之一新一代信息技术的重要内容。2010年10月,国家发展改革委会同工业和信息化部下发了《关于做好云计算服务创新发展试点示范工作的通知》,确定了北京、上海、深圳、杭州、无锡等五个试点城市,提出了“加强统筹规划、突出安全保障、创造良好环境、推进产业发展、着力试点示范、实现重点突破”的云计算服务创新发展总体思路。2010年12月,国家发展改革委会同工业和信息化部联合印发了《关于做好云计算服务创新发展试点示范下一步工作的通知》,明确了五城市试点示范重点领域。许多国家和地区政府对云计算广阔的市场前景和巨大的产业机遇高度关注,纷纷出台相关战略规划和政策措施,加快推动云计算的发展和应用,抢占未来云计算产业的战略制高点。2011年8月,国家发改委、工信部和财政部联合组织实施了“云计算示范工程”,以重点领域应用和产业化项目为牵引部署了15个项目,以支持云计算核心服务创新、技术研发、安全保障和支撑体系等方面示范工作。在“云计算示范工程”中,中国软件评测中心承担并实施“云计算公共技术服务平台”项目,核心的任务包括研发云计算检验检测工具、建设云计算试验验证环境、研制云计算系列标准等,旨在对不同用户提供检验检测、技术试验、标准化验证、应用推广和决策支撑服务。近年来,国际上一些主流云计算系统和应用时而暴露出不同程度的故障,这些故障本质上反映了云计算系统的可靠性问题,严重制约了云计算的大规模推广和应用,不利于产业快速稳定发展。从技术层面来看,云计算系统具有虚拟化、规模巨大、结构复杂、多种IT技术融合等特点,容易产生任务节点失效、系统内部故障、外部服务中断等问题。在此情况下,云计算系统可靠性研究成为了工业界和学术界关注的热点。研究云计算系统可靠性测评方法,有助于加速国产云计算基础实施、云计算平台和云计算应用的技术研发和产业化推广,既是我国信息产业转型升级、由弱变强的重要支撑,也是保障国家信息安全的必由之路。通过云计算系统可靠性测试领域的建设,可以提供高质量的云计算检验检测服务,推动云计算公共技术服务环境的完善,完善我国云计算产业支撑体系,为我国云计算创新发展和云计算示范工程的推进提供技术支撑与保障。CONTENTS目录目录第一章云计算系统可靠性研究背景31.1云计算系统薄弱性分析31.2云计算系统可靠性测试目标及意义4第二章云计算系统可靠性指标体系及技术42.1云计算系统可靠性定义42.2云计算系统可靠性指标体系52.3云计算系统可靠性技术分析9第三章云计算系统可靠性测试技术研究133.1云计算系统可靠性测试过程133.2基于容错场景的云计算系统可靠性测试方法及参考架构14第四章面向Hadoop的云计算系统可靠性测试工具实现17本期主题:云计算系统可靠性测评指标与测试技术研究3《云计算研究》2012年第1期第一章云计算系统可靠性研究背景1.1云计算系统薄弱性分析云计算是一种基于互联网的新型服务模式和计算模式,将计算任务分布到由大量计算机构成的资源池上,其计算资源(包括计算能力、存储能力、交互能力等)是动态、可伸缩、虚拟化并以服务的方式进行提供。通过云计算模式,用户能够根据需要方便快捷地获取计算能力、存储空间和软件服务。目前云计算已经引起了产业界、学术界以及各国政府的广泛关注。国外的跨国IT企业已经建立了不同类型的云计算系统,主要包括基于GFS、MapReduce和BigTable技术的Google云计算平台,基于Xen和Hadoop的IBM“蓝云”计算平台,Amazon的弹性计算云EC2等;在国内,云计算已经成为战略性新兴产业中新一代信息技术的重要内容,北京、上海、深圳、杭州、无锡五个试点城市已经开展了云计算服务创新发展试点示范工作,百度、阿里巴巴、腾讯、联想、金蝶等大型IT企业也发布了云计算计划并研发了相关的产品。近年来,云计算重大故障事件时有发生,极大地阻碍了产业的良性发展。云计算的可靠性和安全性成为产业发展、技术创新的核心和关键,直接关系到云服务有效性、稳定性、持续性、高效性等方面的改进与提升。然而,由于云计算自身的特殊性,传统方法还难以解决其各技术环节上存在的问题。国际上一些主流云计算系统和应用时而暴露出不同程度的故障,例如2008年7月,Amazon的云存储平台SimpleStorageService(S3)出现服务故障,故障持续达8个小时,许多基于S3文件存储的在线公司蒙受巨大损失,导致许多用户对云计算模式提出质疑;2009年7月,GoogleAppEngine遭遇“数据仓库操作延迟增加、错误率上升”等故障,导致AppEngineStatus网页完全无法访问;2010年4月,亚马逊基于云计算的EC2(弹性计算云)服务在一周内接连发生两起故障,出现大规模的服务中断,造成极大的负面影响和经济损失。这些故障本质上反映了云计算系统的可靠性问题,严重制约了云计算的大规模推广和应用,不利于产业快速稳定发展。作为一种新兴的商业计算模式,云计算模式拥有多租户、按需自服务、资源共享、快速伸缩以及7×24小时工作等能力;从技术层面来看,云计算系统具有虚拟化、规模专业就是实力4巨大、结构复杂、多种IT技术融合等特点,容易产生任务节点失效、系统内部故障、外部服务中断等问题。在此情况下,云计算系统可靠性研究成为工业界和学术界关注的热点。总体上,云计算系统按需自服务、泛在网络访问、资源共享、快速伸缩、服务可度量等特点,导致服务各环节存在一定可靠性隐患,使得云计算可靠性测试工作极具特殊性和挑战性。1.2云计算系统可靠性测试目标及意义无论云计算的理念、市场有多么吸引人,前景有多么美好,只有被大家接受才能发挥它的作用。随着云计算相关技术的发展,软件的开发、部署、运行、交付、维护和演化模式都发生了重要的变化,在这种情况下云计算系统的可靠性难以得到充分的保障。研究云计算系统可靠性测评方法,有助于加速国产云计算基础实施、云计算平台和云计算应用的技术研发和产业化推广,既是我国信息产业转型升级、由弱变强的重要支撑,也是保障国家信息安全的必由之路。通过云计算系统可靠性测试领域的建设,可以提供高质量的云计算检验检测服务,推动云计算公共技术服务环境的完善,完善我国云计算产业支撑体系,为我国云计算创新发展和云计算示范工程的推进提供技术支撑与保障。第二章云计算系统可靠性指标体系及技术2.1云计算系统可靠性定义为了系统地研究云计算系统可靠性测试技术,有必要将传统的系统可靠性概念与云计算系统特征相结合,给出云计算系统可靠性的定义。一般地,系统可靠性是指系统在规定的条件和规定的时间内完成规定的功能的能力。根据系统可靠性的经典理论,剖面分析是系统可靠性测试过程中的关键环节,通常分为寿命剖面和任务剖面两种。由于云计算系统需要7×24不间断的提供在线服务,所以云计算系统剖面应该主要考虑任务剖面,而云计算系统中的任务就是其对外提供的服务,因此应针对云计算不同服务类型建立相应的任务剖面。云服务的任务剖面具体本期主题:云计算系统可靠性测评指标与测试技术研究5《云计算研究》2012年第1期分为:SaaS服务剖面主要指云计算系统在完成规定的某种具体SaaS应用服务的这段时间内所经历的处理事件和环境的时序描述。SaaS有各种典型的应用,如在线邮件服务、网络会议、网络传真、在线杀毒等各种工具型服务,在线CRM、在线HR、在线项目管理等各种管理型服务,以及网络搜索、网络游戏、在线视频等娱乐性应用。针对这些典型应用可以分析出它具体的处理流程和不同步骤的时序关系,活动主体大部分是软件;PaaS服务剖面主要指云计算系统在完成规定的某种具体PaaS服务或者任务的这段时间内所经历的处理事件和环境的时序描述。平台层是云计算体系结构的核心组成部分,它负责对资源的统一分配与调度,使得类型繁多的服务能够在具有复杂底层环境上稳定运行。在此主要考虑直接用户相关的任务,主要包括在线开发平台、服务计费、用户管理,其中在线开发平台应该着重分析其处理流程和时序关系;IaaS服务剖面主要指云计算系统在完成规定的某种具体IaaS服务或者任务的这段时间内所经历的处理事件和环境的时序描述。这一层主要向用户提供虚拟化的计算资源服务、存储资源服务和网络资源服务,根据用户需求进行动态分配与调整,通过虚拟化等技术提供服务。在上述的云计算不同服务的任务剖面基础上,可以定义云计算服务(任务)可靠性,即是指云计算系统在规定的服务剖面(即SaaS服务剖面、PaaS服务剖面、IaaS服务剖面)内完成规定功能的能力。其中规定功能是指针对某一具体类型服务云计算系统提供商在需求规格说明书中声称的技术指标和与用户订立的合同中指定的技术指标,简而言之规定的功能既包含云计算系统自身的声称指标,也包括对用户承诺的指标。具体地,在测试实践过程中可以根据服务剖面定义不同类型的云计算系统可靠性,即SaaS服务可靠性、PaaS服务可靠性和IaaS服务可靠性,在实际应用中,根据需要再具体化定义某一个或几个具体服务的可靠性。2.2云计算系统可靠性指标体系为了准确客观的度量可靠性,须专业就是实力6制定适合的云计算系统可靠性指标。依据系统可靠性理论并结合云计算系统特点,我们认为应该重点从功能业务和系统内部结构两个角度制定云计算系统可靠性指标,即面向云服务的可靠性指标和面向云系统结构的可靠性指标,其中前者针对云计算不同类型服务来定义相应的服务可靠性,对于每一类服务还可进一步具体化;后者可分为四个方面即服务器可靠性、存储可靠性、网络可靠性、虚拟化平台可靠性。这两类指标采用常见的失效率、可靠度、MTTF、可用性等参数,除此之外还考虑了可靠性子属性如成熟性、容错性和易恢复性等作为可靠性参考指标。2.2.1云计算系统可靠性指标制定的原则与依据依据系统可靠性的一般理论,并结合云计算系统自身特性及不同利益方,我们将分别从功能业务和系统内部结构两个角度来制定云计算系统可靠性指标,即面向云服务的可靠性指标是从业务层面来定义云计算系统的可靠性指标;面向云系统结构的可靠性指标是从云计算系统结构入手分别定义几个主要组件的可靠性指标,包括服务器可靠性指标、存储可靠性指标、网络可靠性指标和虚拟化平台可靠性指标四个方面。对于这两类指标分类,我们除了考虑严格的可靠性指标参数,还考虑了可靠性子属性如成熟性、容错性和易恢复性的相关指标,它们虽不是严格的可靠性参数但却与之联系密切,我们把它们当做云计算系统可靠性的参考指标。2.2.2面向云服务的系统可靠性指标体系针对云计算中不同的架构层次可以定义相应的服务可靠性,包括云计算SaaS服务可靠性、PaaS服务可靠性和IaaS服务可靠性,对于每一类服务还可以进行具体化。我们在研究云计算系统可靠性的时候可以根据需要选择某一个或几个具体服务的可靠性。这一分类方法主要围绕“服务”进行,也反映云计算系统提供服务这一本质特性,也相当于从系统的功能属性出发,将云计算系统当成一个“黑盒”不考虑内部组成要素及拓扑结构,主要考虑它完成规定功能或者服务的能力。这个也是主要在使用方利益角度来考虑。假设一种特定的云服务从当前时间到下一次失效时间时间间隔是,具有累积概率密度函数即,下面可)()(tPtF≤=ξξξ本期主题:云计算系统可靠性测评指标与测试技术研究7《云计算研究》2012年第1期以定义是云服务的可靠性参数:●指标名称:可靠度指标定义:指在给定的运行环境下、给定的运行时间内云计算系统无失效提供规定服务的概率,或者说需要时成功完成某一云服务的概率。度量方式:需要通过可靠性模型计算,可靠度函数是指标说明:云服务可靠度是衡量云服务可靠性的最基本的参数。可靠度越大,云服务的可靠性就越高。●指标名称:云服务平均失效前时间(MTTF)指标定义:在一定的运行周期内中,