1 引言
任何一项新技术或者新的服务模式的成功,往往是因为其出现在恰当的时间,并且有合适的外因和内因来推动(例如:杀手级的应用),就像WWW的成功应用推动了互联网的普及一样,云计算也不例外。
2001年,Google在搜索引擎大会上首次提出云计算的概念,2007年年底,Google的一名工程师再次提出了云计算,自此,云计算开始得到工业界、学术界、和各国政府的广泛响应.但云计算的历史渊源可以追溯到元计算(Metacomputing)、普适计算(pervasive computing)、按需计算(On demand computing)、效用计算(Utility computing)、自主计算(Autonomiccomputing)、网格计算(Grid computing)等等,严格意义上讲,云计算并不是一种完全意义上的新技术,而是一种新的服务模式,云计算将应用和计算机资源包括硬件和系统软件虚拟化之后包装成服务,通过按需付费(pay-as-you-go)的方式穿越Internet来满足用户各种不同的需求,用户可以不再需要购买昂贵的计算机系统,不再因为需要短时间使用某个软件而不得不购买该软件的使用版权,这种服务模式在过去的十多年中有过充分的探讨,这两年的的重新兴起并以一个新的技术名词出现,并不是因为产生了某种技术上的突破,而是由于信息数字化导致数据的爆炸性增长所带来的一系列问题让我们不得不重新思考计算机系统发展的新走向,另外,由于技术进步所带来的部分老技术的重新复苏也对云计算的发展起到了推波助澜的作用。
本文介绍云计算发展的背景和主要动力,探讨云计算的特点和优势,并从云体系结构的角度,探讨了云基础设施下的云计算、云存储和云传输所面临的挑战和机遇。
2 云计算的背景和推动力
来自IDC的报告显示,在2011年将有1800EB(Exabyte)的数据被产生,数据年增长率达到60%,在这些数据中,很大一部分是由个人产生的,这些数据中的绝大部分将存储在世界各地的大型数据中心,然而,能耗和地板空间(floorspace)成为当前设计和管理大型数据中心所面临的重要挑战,例如,2005年美国新建立的数据中心需要消耗的能量相当于加利福尼亚州所消耗能量的10%(大约5GW),需要花费大约40亿美金,英国的1500个数据中心每年消耗的能量和英国第十大城市莱卡斯特所需要的能量相当,2010年,英国单个数据中心每年在能量上的花费达到大约740万英镑。
图1 数据中心的热密度趋势
另外,消耗的能量除了供各种计算机组件工作外,还产生大量的热量,由于大部分计算机组件只能在一定的温度环境下才能保证足够的可靠性,因此,还需要额外的能量驱动制冷设备,Netapp的调查表明大型数据中心中制冷系统的能耗仅次于服务器,图1列出了数据中心主要设备的热密度趋势.可以认为,数据中心的能耗问题处于一个恶性循环的状态。
再者,由于数据的增长导致数据中心对新设备需求的不断增加,但是数据中心的可扩展性完全受限于其地板空间,在数据中心的空间未扩展的情况下,随着单位地板面积内计算机设备的不断增加,传统数据中心的设备容量必将达到极限。
然而,与以上数据形成鲜明对比的是,许多大型企业的IT基础设施的利用率大约只有35%,在某些企业中可能会低至15%,Google也报告称其服务器的利用率往往在10%到15%之间,一方面是由于数据增涨导致现代数据中心正面临着能耗、地板空间、和可扩展性等问题的严峻挑战;另一方面则是IT基础设施资源利用率的极度低下,这使得工业界不得不重新思考所面临的问题,并努力寻求解决的方法。
虚拟机技术的重新复苏也为云计算的的发展起到了推波助澜的作用,虚拟机技术出现在上世纪70年代,并主要用在IBM360的大型机中,计算机硬件技术的发展基本上遵循摩尔定律,现在采用商用化的组件组成的桌面电脑其性能已足以支持多个操作系统的并行运行,由于虚拟机技术可以实现计算资源的按需分配,因此,完全可以利用商用化的计算机组件来构造云环境,在这样一个大的背景下,云计算在经历了数轮技术的洗礼之后被重新提上议程。
3 云体系结构
计算机从诞生到今天,经历了几次大的体系结构上的变迁,从上世纪50年代到70年代初期,基本上是独立专用的大型机系统一统天下;70年代初期到80年代中期,开始有些小型机系统与自有网络;80年代中期到90年代初期,开始出现服务器与PC客户机通过局域网互连;90年代初期至今,服务器与PC客户机通过局域网、广域网或Internet相连;当前正在推动的云计算则意味着从PC机时代重返大型机时代,但现在的大型机(即云)不再是定制的专用超级计算机,而是由地理上分布的、异构的资源通过虚拟化技术聚合在一起,并能够对用户提供按需的资源分配,以提高IT基础设施的资源利用率。
图2 云环境的解析图
图2表示了云环境的解析图,正如引言中提到的云计算是一种服务模式,现在学术界和工业界已经达成共识的是按服务类型大致可将云计算分为三类:将软件作为服务(Softwareas a service,SaaS)、将平台作为服务(Platform as a service,PaaS)、和将基础设施作为服务(Infrastructure as a Service,IaaS),SaaS是指将应用软件统一部署在云环境下,用户可以根据实际需要通过定制或租用的方式使用基于Web的软件来完成所需的工作,PaaS则将开发环境、硬件资源等组合成平台并以服务的方式提供给用户,用户则可以在该平台上开发应用程序并通过互联网供其他用户使用,IaaS主要是指以服务方式提供各种IT资源,可以包括计算、存储和网络.
图3 云基础设施架构图
图灵在1936年通过一个读写磁头、一个有限状态控制器、和一条双向可无限延长的、被分成一个个方格的磁带(方格里写有符号)构造了自动计算机的理论模型,即图灵机,此后,冯·诺伊曼基于图灵机进一步提出存储程序的概念,指出计算机由控制器、运算器、存储器、输入设备和输出设备组成.自此,冯·诺伊曼结构奠定了现代计算机的基本架构,即,计算机系统结构的研究基本上可以简单归类于3个问题:计算、存储与传输,三者相互影响.
那么到底该如何来构造云基础设施的体系结构?我们认为现在广泛谈论的云计算是一个相对广义的名词,严格意义上来讲,现在的云计算确切的名字应该叫云环境,作为云环境最核心的部分,云基础设施应该遵循冯·诺伊曼体系结构,将其可以划分为云计算、云存储和云传输,上页图3表示了云基础设施的架构图,硬件资源包括服务器/集群、网络设备和存储系统经过虚拟化之后对外提供按需的计算、数据存储和传输。
云在体系结构上一个重要的特点是将地理上分布、大规模、异构的资源进行虚拟化,并能够对用户提供按需服务。
很多针对计算机相关的资源的访问往往都表现出一种突发性的行为,其主要表现为在短时间内有大量的事件发生.例如邮件服务器往往在早上9点至10点相对繁忙,这是因为绝大部分人上班的第一件事情往往是处理昨天的邮件,而在晚上0点左右最空闲,因为大部分的人这时候都休息了,这种突发性访问的直接后果就是导致短时间内的资源竟争,从而造成拥塞和响应时间的延迟,甚至有可能产生拒绝服务,一个简单的例子如下:假设某个电子邮件服务器由集群系统构成,大部分时间只需要处理3000个请求每秒,但在突发时段必须要处理10000个I/O请求每秒,如果每个集群节点磁盘的处理能力为1000个I/O请求每秒,则意味该系统在一般情况下只需要3个集群节点并行处理就可以满足要求(理想情况).然而,在突发时段必须要10个集群节点并行工作才能保证服务质量,否则就会产生巨大的访问延迟,甚至数据丢失,这表示在非突发时段,我们不得不提供大量的资源以保证突发时段服务器系统的服务质量。
在云环境下,如果能够较为准确的预测负载的情况,进行合适的负载迁移和资源调度,可以很大程度上解决这个问题.例如,由于时差,中国时间早上9点在英国则是下午5点,云环境下,在两个不同国家的网络用户在不同的时间段会表现一种完全不同的行为,此时,可以将英国境内的部分云资源调度给中国使用,来解决在中国出现的数据的突发性访问,也可以将英国的部分负载迁移到中国境内的云资源上,从而让在较长一段时间内不被访问的部分资源转入低能耗状态以节省能量,因此,和通用的计算机系统结构不同的是,云的成功在很大程度上决定于云的规模效应,同时,一个设计良好的云基础设施应该能够合理地安排计算、存储和传输,使得其规模和性能能够同步扩展,下面我们来探讨云计算、云存储、云传输各自面临的问题以及可能的解决方法。
4 云计算
云计算系统被认为是可以替代超级计算机和专用的计算集群,而且更可靠、可扩展,其中一个很重要的卖点就是scaleby credit card,就是说在经济许可的情况下,可以立即进行扩展或者进行临时的扩展,此外,网格计算的一种基本工作模式是用户向网格提交作业,然后由调度器在网格环境下寻找合适的资源来处理相应的作业,待作业处理完成之后再将结果返还给用户,网格环境下的作业可以分成两种:批处理的作业和交互式处理的作业,网格环境下的作业处理方式可以较好地应对大计算量、批处理的作业,但是,对于交互式的作业却显得有些力不从心,同时,网格的这种处理模式也很单一,缺乏灵活性,如果能够将计算资源按需地分配给用户,由用户自主地管理和使用资源,则可以极大的简化系统的管理,同时赋予用户极大地灵活性,但是,在网格环境下实现计算资源的按需分配一直是一个旋而未解的问题,对于云计算而言,最关键的问题是如何对用户申请的计算资源实行按需分配,并能进行有效的扩展和管理。
4.1 云计算实例分析
近年来,由于计算机硬件性能的大幅提升(根据Moore定律,CPU性能和内存容量每18个月就可翻一番),使得虚拟机技术获得了良好的发展基础和广泛的应用前景,虚拟机通过软件来模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,虚拟机具有很多优点:
1)可以充分共享计算机资源以提高资源的利用率,多个操作系统可以同时存在和运行于同一台计算机上(在单个服务器上有可能同时运行数百个虚拟机器),操作系统的部署灵活方便,并且能够有效隔离操作系统和资源;
2)虚拟机中的操作系统崩溃后恢复比较容易,并不会对同一个物理平台上的其它操作系统造成影响,而且比较容易实现操作系统的数据重放和回滚。
由于虚拟机技术可以在同一个计算机硬件平台上运行多个操作系统和相应的应用程序,并且有效地保证彼此之间的隔离和安全,因此,如果在同一个硬件平台上运行多个虚拟机,将可以极大地提高硬件资源的利用率,例如,一个典型的数据中心往往有邮件服务器、FTP服务器、数据库服务器等.为了保证服务的连续性和隔离单个服务器的失效对其它服务器的影响,通常将每个应用运行在一个独立的计算机平台上.利用虚拟机技术,在硬件资源许可的条件下,完全可以在同一个平台上运行多个应用,另外非常重要的一点是,虚拟机技术提供了按需使用计算资源的一种手段和方式。
图4 亚马逊的EC2提供的5个实例
云计算服务商亚马逊的EC2(Elastic Computing Cloud),GoGrid都是通过虚拟机技术来提供按需计算服务,用户只需要给出具体的参数要求,云计算平台就能分配一个相应的虚拟计算机,图4表示亚马逊的EC2所提供的实例类型,其中ECU是亚马逊自己定义的一个CPU的性能单位,一个ECU相当于1,0-1,2 GHz 2007 Opteron or Xeon 的性能,用户可以使用图4中5个实例中的任何一个来构造自己的系统,同时用户还可以根据需要向已有的系统中增加或者删减实例,以实现系统的弹性扩展。
EC2作为最有代表性的云计算平台之一,2008年,Walker分别利用macrobenchmark和microbenchmark对利用EC2构造的虚拟集群和已有的高性能集群进行了性能的测试比较。
他利用NAS并行Benchmark测试了在不同的集群上运行科学计算应用的性能,也利用了mpptest microbenchmark测试了在不同的集群上运行MPI的性能,他的测试结果表明在传统的高性能计算集群和利用EC2构造的集群之间还存在着较大的性能差距,因此,他认为利用商用化的云计算平台来构造高性能的集群计算环境还有很长的路需要走。
2009年,Ostermann等人再次利用亚马逊的EC2来进行了科学计算方面的测试,在利用Benchmark测试过程中,好几次由于亚马逊云计算平台方面的原因导致测试未能完成,这时只能进行手工的干预,他们的测试结果表明在云计算平台上来进行计算密集型的科学计算,其性能和可靠性方面都还有待进一步地提高,尽管该平台为科学家提供了一种临时、短时间内的计算资源的解决方案。
个人认为,现有的云计算平台应该能满足个人用户的需求,但是,对于大规模的计算密集型的应用,还有很多问题有待解决。
4.2 云计算系统面临的挑战
虚拟机技术也带来了一系列的问题,正如前面提到的,虚拟机技术最初使用在IBM360的大型机中,大型机中往往采用专门的通道来来保证外部设备的访问和性能,但是,将该技术移植到基于商用组件的X86环境下,由于缺乏专用的通道和通道处理机来应对I/O访问,虚拟机环境下的I/O问题已经成为当前虚拟机系统中面临的最大问题,在传统的计算机系统中,应用程序通过系统调用产生异步I/O操作后直接返回,待I/O操作完成后会产生中断给操作系统,并将I/O操作产生的数据交给应用程序,然而在虚拟机环境下,该过程被极大地复杂化了,以图5为例,在第二个域中的应用程序通过系统调用产生异步I/O,该I/O指令会进入虚拟机管理程序(Hypervisor),该管理程序将该I/O操作转给第零个域,然后返回到第二个域的操作系统(因为是异步I/O)和上层的应用程序,此时第零个域的操作系统将进行实际的I/O操作,待I/O完成后,会产生一个虚拟中断给第零个域的操作系统,该操作系统给虚拟化软件发出相应的虚拟中断,待虚拟化软件完成I/O后,会给第零个域的操作系统返回一个系统调用来唤醒第二个域的操作系统,然后虚拟机管理程序将I/O完成的中断交给第二个域的操作系统,最后将I/O操作产生的数据交给第二个域中的应用程序,由此可见,在虚拟机环境下的I/O操作必将成为整个系统的瓶颈。
图5 基于XEN的一个典型的虚拟机环境
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云基础设施下的体系结构、挑战与机遇(上)