1. Eucalyptus 安装及实例映像制作
--- 云计算及其应用的开源实现研究
摘要:
本文对比分析了当前有代表性的云计算参与企业所采用的云计算实现方案和技术特点。总结云计算是
一种能够提供动态资源池、虚拟化和高可用性的计算平台,包含两个方面的含义:底层的基础设施平台和
构建在这个平台之上的应用程序。读者通过此文可以了解云计算的当前发展状况以及未来的研究趋势。文
章通过集成整合开源云计算平台(Eucalyptus)和开源内容管理系统(Liferay),剖析具有特定应用的云
计算平台构建过程,并着重介绍了在基于虚拟技术的云计算平台中,如何使用虚拟技术(XEN)制作基于
Linux 系统的可定制服务的实例映像(AMI)文件,使用 AMI 工具运行制作的实例(虚拟服务器)和部署应
用服务等技术要点,使读者能够明确掌握云计算搭建过程及云计算实例应用的快速部署及迁移。
关键词: 云计算;虚拟技术;映像;开源
中图法分类号: TP393 文献标识码: A
Research on the Realization of Open Source Cloud Computing and its Applications
Abstract: This paper compares and analyses the technical characteristics and the solutions of the cloud
computing adopted in some current representative enterprises. It summaries that cloud computing is a computing
platform that support for virtualization, dynamic-resource-pool and high availability, including the low-layer
infrastructure and the application based on it. From this paper, readers will comprehend the current status and
future trends of cloud computing. Through the integration on both Eucalyptus system - an open-source cloud
computing platform - and Liferay system - an open-source content management system-, the detailed build process
of the application-specific cloud platform is described, especially, creating the linux-based service-customized
machine image file (AMI) by the xen virtual tools in the virtualization-based cloud platform, and starting and
running the virtual machines by AMI tools, to let readers capture the build process of cloud platform with rapidly
deploying & migrating the application.
Key words: cloud computing; virtual technology; machine image; open-source
1、引言
世界之所以精彩,是因为不断地有新的事物出现。在当今 IT 领域,云计算是最为新鲜、最为热门的话
题,其通过提供灵活、自助服务式的 IT 基础架构,促使信息处理方式发生了革命性的转变[1]。云用户不
2. 需要了解有关“云”的技术构架和专业知识就可以轻松便捷地完成应用的部署或迁移。本文将以开源云计
算平台(Eucalyptus)和内容管理系统(Liferay)为例,从云计算概念、云计算平台构建、服务集成应用
等三方面,详述云计算平台的应用部署和实现过程。
2、云计算概述
IBM 公司于 2007 年底宣布了云计算计划[2],云计算的概念出现在大众面前。但到目前为止,云计算到
底是什么?众说纷纭,业界还没有统一明确的云计算定义。本文这部分将探讨 IBM 公司给出云计算定义,
并例举业界主要的有代表性的云计算实例。
2.1 云计算定义
在 IBM 的技术白皮书“Cloud Computing”[3]中,云计算是这样定义的:
“云计算一词用来描述一种系统平台或者一类的应用程序。云计算平台可以按需进行动态地部署、配
置、重新配置以及撤销服务器。云中的服务器可以是物理的或虚拟的服务器。通常高级的云还包含诸如存
储区域网络(SANs)、网络设备、防火墙以及其他安全设备等计算资源。
云计算也可以是一类通过互联网进行访问的可扩展的应用程序。这些云应用使用大型的数据中心以及
强大的服务器来运行网络应用程序与网络服务。用户可以通过一个合适的互联网接入设备以及一个标准的
浏览器访问一个云计算应用程序。“
2.2 云计算实例
从上述定义看出,云计算有两个方面的含义:一方面描述了云计算基础设施;另一方面描述了云计算
应用程序,并给出云计算是一种能够提供动态资源池、虚拟化和高可用性的计算平台。很多大公司企业则
分别提出了自己对云计算的理解,运用不同的技术和系统框架来实现上述云计算的应用目标(见表 1)。
亚马逊弹性计算云(EC2)[4] 允许用户使用客户端通过 SOAP over HTTPS 协议与 Amazon 弹性计算
云内部的实例进行交互,弹性计算云中的每一个实例代表一个运行中的虚拟机。用户可以自己创建一个新
的包含应用、运行库、数据和相关配置文件的亚马逊实例映像(AMI) 也可以从开放的实例映像库
, (AMIs)
中的选择一个,并上载运行它。亚马逊弹性计算云以实例的运行时间收费。通过这种模式,弹性计算云平
台为用户或者开发人员提供一个运行 Linux 应用程序的虚拟集群计算环境。用户具有充分灵活性,同时用
户对自己的虚拟机具有完整的访问权限,包括针对此虚拟机操作系统的管理员权限。
Google 云计算是一套专属的云计算平台[5],这个平台是为 Google 最重要的搜索应用提供服务的[6],
现在扩展到了其他应用, Google 应用引擎
如: (App Engine) Google 应用引擎 [7]允许用户运行使用 Python
。
程序语音编写的 web 应用程序。除了支持 Python 标准运行库,Google 应用引擎还支持用于数据存储、Google
3. Accounts、URL 提取、图像处理和邮件服务的应用程序接口(APIs),提供基于 web 的管理控制界面。每
个 Google App Engine 应用程序都会拥有足够的 CPU、带宽和存储空间来免费支持每月五百万
次左右的页面访问量。
表 1 有代表性的云计算平台之间的主要特性对比
Google SUN
亚马逊(EC2) 微软(Azure) IBM(蓝云)
(App engine) (Cloud APIs)
平台类型 基础设施 应用程序 应用程序 基础设施 应用/基础设施
服务类型 计算、存储 Web 应用 Web/non-Web 应用 计算、存储 计算
Sun xVM hypervisor,
基于 Xen 的系统级 应 用 级 虚 拟 (App fabric controller 的系 Xen/PowerVM 系
虚拟技术 VMware vSphere,
虚拟 Container) 统级虚拟 统级虚拟
Microsoft Hyper-V
亚马逊 EC2 命令行 基于 Web 的管理控 IBM WebSphere
接口 Azure portal Sun web portal
工具 制台 portal
Web APIs 有 有 有 有 有
增值服务 有 无 有 有 有
与旧软件
兼容 不兼容 兼容 兼容 兼容
的兼容性
用户群 开发人员 终端用户 开发人员 开发人员 开发人员
可定制的 linux 实
编程框架 Python Microsoft .NET Sun Cloud APIs Linux-img, hadoop
例映像(AMI)
Microsoft Azure [8]旨在提供整套的开发、运行、监控的云计算环境,使软件开发人员通过微软数据中
心就可以轻松创建、运行、管理和布署 Web / non-web 应用。Microsoft Azure 支持包含多种专有开发工具
和多种协议的复杂合集,包括 Live Services, Microsoft .NET Services, Microsoft SQL Services, Microsoft
SharePoint Services, and Microsoft Dynamics CRM Services,还支持如 SOAP 和 REST 等网络程序接口,使程
序开发人员可以在微软或非微软的工具和技术之间自如转换。
Sun Cloud[9]的基础是资源模型以及访问/操纵这些资源的 API。Sun Cloud 所定义的资源模型都是围绕
着云资源而展开的,并且提供了对云本身及其组件的访问。API 将使人们能够与开放云平台和 Sun Cloud
更好合作,更加轻松地开发出应用软件以及云环境。Sun Cloud 有两项服务,存储服务和计算服务,计算服
务的核心是虚拟数据中心(VDC),支持拖放、API 以及通过浏览器分配计算资源的命令行界面。存储服务
支持用于文件访问和存储的 WebDAV 协议。
IBM 的“蓝云”[10]计算平台是一套软、硬件平台,通过架构一个分布式、可全球访问的资源结构,
使得数据中心使用类似于互联网的计算环境。
“蓝云”大量使用了 IBM 先进的大规模计算技术,结合了 IBM
自身的软、硬件系统以及服务技术,支持开放标准与开放源代码软件。“蓝云”基于 IBM Almaden 研究中
9. 要面对很多方面的问题。除了安全性和保密性外,还有云计算服务泛在的可行性、与原有数据的兼容性、
云计算环境开发服务标准的制定等等,都是云计算发展过程中必需解决的。本课题组还将在进一步的云计
算应用研究中,进行云计算存储、大数据计算应用等测试和研究,如结合开源存储系统(Fedora)的应用
及开源分布计算(Hadoop)的应用等等。
参考文献:
[1]Rajkumar Buyya, Chee Shin Yeo, Srikumar Venugopal, James Broberg, Ivona Brandic.Cloud computing and emerging IT platforms: Vision, hype, and
reality fordelivering computing as the 5th utility. Future Generation Computer Systems, Volume 25, Issue 6, June 2009, Pages 599-616
[2] Sims K. IBM introduces ready-to-use cloud computing collaboration services get clients started with cloud computing. 2007.
http://www-03.ibm.com/press/us/en/pressrelease/22613.wss
[3] Boss G, Malladi P, Quan D, Legregni L, Hall H. Cloud computing. IBM White Paper, 2007. http://download.boulder.ibm.com/
ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf
[4] Amazon. Amazon elastic compute cloud (Amazon EC2). 2009. http://aws.amazon.com/ec2/
[5] Barroso LA, Dean J, Hölzle U. Web search for a planet: The Google cluster architecture. IEEE Micro, 2003,23(2):22−28.
[6] Brin S, Page L. The anatomy of a large-scale hypertextual Web search engine. Computer Networks, 1998,30(1-7):107−117.
[7] Google app engine.2009. http://appengine.google.com
[8] Microsoft azure.2009. http://www.microsoft.com/azure/
[9]Sun Cloud.2009.http://www.sun.com/cloud/
[10]Blue cloud.2009.http://www.ibm.com/cloud/
[11] Barham P, Dragovic B, Fraser K, Hand S, Harris T, Ho A, Neugebaur R, Pratt I, Warfield A. Xen and the art of virtualization. In: Proc. of the 9th ACM
Symp. on Operating Systems Principles. New York: Bolton Landing, 2003. 164−177.
[12] Citrix systems, citrix XenServer: Efficient virtual server software. XenSource Company. http://www.xensource.com/
[13] IBM. IBM virtualization. 2009. http://www.ibm.com/virtualization
[14] Apache. Apache hadoop. http://hadoop.apache.org/core/
[15] Ghemawat S, Gobioff H, Leung ST. The Google file system. In: Proc. of the 19th ACM Symp. on Operating Systems Principles. New York: ACM Press,
2003. 29−43.
[16]Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters. In: Proc. of the 6th Symp. on Operating System Design and
Implementation. Berkeley: USENIX Association, 2004. 137−150.
[17]Dean J, Ghemawat S. Distributed programming with Mapreduce. In: Oram A, Wilson G, eds. Beautiful Code. Sebastopol: O’Reilly Media, Inc., 2007.
371−384.
[18]Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters. Communications of the ACM, 2005,51(1): 107−113.
[19]Eucalyptus.2009.http://open.eucalyptus.com/
[20]Liferay.2009.http://www.liferay.com
[21] 陈海勇,伏汉荚.基于Jetspeed的网格门户系统的设计[J].微计算机信息,2005,21(30):61—63.
[22] 闫明,马玉祥.基于J2EE企业架构的解决方案[J].现代电子技术,2OO5,28(1):21—25.