Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Eucalyptus安装及实例映像制作

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 9 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Eucalyptus安装及实例映像制作 (20)

Anzeige

Eucalyptus安装及实例映像制作

  1. 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. 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. 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 研究中
  4. 4. 心的云基础架构,支持 Xen[11,12]和 PowerVM[13]虚拟化技术,Linux 操作系统映像以及 Hadoop[14] (Google File System[15]以及 MapReduce[16,17,18]的开源实现)文件系统的并行构建。 3、云计算平台构建 Amazon 是互联网上最大的在线零售商,也是业界最早提供远程云计算平台服务的公司。2006 年推出 的新一代主机租赁(hosting)服务,为独立软件开发人员以及开发商提供云计算服务平台,并得到了快速 发展。Amazon 将他们的云计算平台称为弹性计算云(elastic compute cloud,简称 EC2)。 本文这部分,将通过开源云计算平台(Eucalyptus),向读者展示如何搭建和实现自己的类似亚马逊弹 性计算云(Amazon EC2)的云计算应用平台,实际体验云计算的魅力和应用潜力。 3.1 开源云计算平台(Eucalyptus)搭建 Eucalyptus [19]项目全称是 Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems 是 Amazon EC2 的一个开源实现,它与商业服务接口兼容,由加利福尼亚大学(Santa Barbara)大 学建立的开源项目,是实现云计算环境的弹性需求的软件,通过其在集群或者服务器组上的部署,并且使 用常见的 Linux 工具和基本的基于 web 的服务。使用 FreeBSD License,意味着可以直接使用在商业软件应 用中。该系统使用和维护十分方便,使用 SOAP 安全的内部通信,且把可伸缩型作为主要的设计目标,具 有简单易用,扩展方便的特点。这个软件层的工具可以用来通过配置服务器集群来实现私有云,并且其接 口也是与公有云相兼容,可以满足私有云与公有云混合构建扩展的云计算环境。和 EC2 一样,Eucalyptus 依赖于 Linux 和 Xen 进行操作系统虚拟化。因为 Eucalyptus 是加利福尼亚大学为进行云计算研究而开发 的,您可以从该大学的网站上下载它,或者通过 Eucalyptus Public Cloud 体验它,不过后者有一些限制。 Eucalyptus 系统构架如下:(见图 1) Eucalyptus 的结构包括:Instance Manager、Group Manager 和 Cloud Manager 三部分,采用层状结构。 Instance Manager(实例管理) :每一个安装有虚拟机的节点上都有一个 Instance Manager。它控制虚拟 机的运行。Group Manager(分组管理):管理一组 Instance Manager,管理 Instance Manager 收集的实例信 息,对应于一个由虚拟集结点组成的虚拟网络。 Cloud Manager(云管理):管理一组 Group Manager,是云 的入口点,供云最终用户或系统管理员使用。 上述三部分的物理部署结构如下图:
  5. 5. 云管理 共用网 分组管理 分组管理 专用网 专用网 实 实 实 实 实 实 实 实 例 例 例 例 例 例 例 例 管 管 管 管 管 管 管 管 理 理 理 理 理 理 理 理 机群 A 机群 B 图1 Eucalyptus 系统物理部署结构 3.2 系统安装硬件需求 Eucalyptus 运行所需要的硬件: Eucalyptus 的一个较为完整的安装、配置需要 4 台机器。2 台做 cluster 节点,安装 Instance Manager,1 台安装 Group Manager,1 台安装 Cloud Manager。 Eucalyptus 各部分在硬件上的部署: Eucalyptus 的三个主要构件 Instance Manager、Group Manager 和 Cloud Manager 分为前端(front-end) 和节点(node)端两部分。Group Manager 和 Cloud Manager 属于前端,节点端即 Instance Manager。 3.2 系统安装前准备 Eucalyptus 系统安装首先需要 LINUX 基础环境、JAVA 与 ANT 环境、PERL 脚本、XEN 虚拟环境等; 其次,与 Eucalyptus 系统交互过程需要安装 EC2 兼容命令行工具集;最后,Eucalyptus 系统的安装和启动 过程要以“root”身份进行。另外还要注意以下几点: 1、由于 Eucalyptus 系统管理员是以邮件方式验证 Eucalyptus 用户身份的,因此系统前端设备须有发邮 件功能; 2、节点端设备须将系统网络接口配置为桥方式,以保障虚拟机之间和外网络的连通; 3、Eucalyptus 系统所处的网络环境中须有 DHCP 服务器,以保障 Eucalyptus (虚拟)实例可通过 DHCP 服务器获得 ip 地址。 3.3 系统安装
  6. 6. 在前端设备安装 eucalyptus-cloud and eucalyptus-cc 程序包,并启动 Group Manager 和 Cloud Manager 服务;在节点端设备安装 eucalyptus-nc 程序包,并启动 Instance Manager 服务。 3.4 系统配置 在前端设备通过“euc-conf”命令添加集群和节点设备名组成云,Eucalyptus 平台设定一个云可以有多 个集群,每个集群可以有多个节点设备,从而形成服务器之间的高可用性和可扩展性;通过在浏览器进入 “https:// <front-end-ip-address>:8443/” 云计算平台入口,第一次进入时,须初始化云计算平台设置,包括 管理员密码修改、(x.509)安全证书下载和 EC2 API and AMI 管理工具安装;通过 AMI 管理工具上载 Eucalyptus 系统默认的 linux 系统映像实例及绑定 AMI-ID 等等。至此,Eucalyptus 云计算平台搭建完成。 3.5 运行实例 Eucalyptus 云计算用户(这里指开发人员)通过“https:// <front-end-ip-address>:8443/”注册、验证和安 装 EC2 API and AMI 管理工具后:运行“ec2-run-instances AMI-ID”命令启动实例(虚拟服务器),并得到 实例的 ip 地址;运行“ssh root@<ipaddress_of_instance>”进入实例,这时用户可以像操作本地系统一样操 作 这 个 实 例 , 如 : 安 装 配 置 mysql 数 据 库 程 序 或 启 动 运 行 诸 如 httpd 、 mail 、 ftpd 等 服 务 ; 运 行 “ec2-describe-instances”命令检测实例状态;运行“ec2-terminate-instances”命令关闭实例(虚拟服务器)。 4、在云计算平台上集成服务/应用 细心的读者可能已经发现,上述 Eucalyptus 云计算平台安装后的实例是空的裸系统。如果用户可以将 自己特定的应用制作成实例映像文件,并上载运行,无疑将充分发挥云计算的优势,实现应用的快速部署 和迁移。本文这部分,就以开源内容管理系统(Liferay)应用和 Centos 系统为例,向读者展示如何将内容 管理系统(Liferay)应用制作成实例映像文件,上载至 Eucalyptus 云计算平台,启动运行,实现门户集成 服务应用的快速部署。 4.1 开源内容管理系统(Liferay)应用 Liferay Portal[20]作为一个优秀开源的 Portal 项目,利用了大量的第三方组件和优秀的框架,采用了最 先进的技术, Hibernate, 如 Struts,Spring 等开源框架,EJB,JMS,SOAP,AJAX 等技术,实现了 JCP JSR168 规范中提出的 Portal 功能,在开源 Portal 系统中有比较典型的代表性。Liferay 代表了完整的 J2EE 应用[21], 使用了 WEB,EJB 以及 JMS 等技术,特别是其前台界面部分使用 Struts 框架技术,基于 XML 的 Portlet 配置文件可以自由地动态扩展,支持访问 Web 服务来获取一些远程信息,使用 Apache Lucene 实现全文检 索功能。Portal 系统所提供的单点登录、权限控制、个性化定制、内容集成、文件管理等独特的功能,已经 大大占据公众的眼球,并在信息集成和消除信息孤岛方面发挥了重要的作用[22]。 使用 Liferay 企业能够很方便地建立自己的门户网站,个性化自己的外观。通过定制 portlet,能够更加 高效地管理和处理企业的信息。Liferay 还在不断的完善和发展中,已渐渐成为行业领先的 Portal 系统,受
  7. 7. 到越来越多的关注。 4.2 定制基于 Centos 系统的 Eucalyptus 实例映像 根据 Eucalyptus 系统要求,Eucalyptus 实例映像包括三部分:内核(kernel)、内存(ramdisk)、文件系 统(filesystem) 。制作实例映像的办法主要有三种:除了最灵活最常用的“dd“方法外,还有“debootstrap” 和“vmbuilder”等第三方工具可以使用。这里将以“dd”方法为例,制作 Centos+Liferay 的实例映像文件。 在制作文件系统映像文件时嵌入开源内容管理系统(Liferay)。 4.3 定制内核文件 在 Centos 系统环境下,安装并配置 xen 环境,修改/boot/grub/menu.lst 文件,重启后将在/boot/路径中 得到内核文件“vmlinuz-‘uname-r’xen“。 4.4 定制内存(ramdisk)文件 通过 mkinitrd 命令创建内存(ramdisk)文件“centos-ramdisk.img“。 4.5 定制文件系统映像文件 A、创建空的系统映像文件 $ dd if=/dev/zero of=centos-root.img bs=1M count=1999//创建系统映像文件; $ mkfs.ext3 centos-root.img //格式化系统映像文件; B、进入映像文件、配置并安装 Centos 基础系统 $ mkdir rootdisk//创建挂接目录; $ mount -o loop centos-root.img DIR/rootdisk/ //挂接系统映像文件到目录; $ cd rootdisk //进入系统映像文件; $ mkdir etc & vi DIR/etc/fstab //配置文件系统信息; $ mkdir dev & for i in console null zero; do /sbin/MAKEDEV -d DIR /rootdisk/dev -x $i; done //配置系统设 备; $ mkdir -p lib/modules & cp -a /lib/modules/’uname-r’xen/ DIR/rootdisk/lib/modules/ //配置内核模块; $ mkdir -p etc/sysconfig/network-scripts & vi ifcfg-eth0 //配置网络; $ mkdir -p var/lock/rpm & vi DIR/yum-xen.conf //配置程序包和 yum 源; $ yum -c DIR/yum-xen.conf --installroot= DIR/rootdisk -y groupinstall base //安装基础系统; $ cd /root & umount DIR/rootdisk //退出系统映像文件; C、嵌入整合开源内容管理系统(liferay) 下面我们就将 Liferay 系统嵌入到上述已经安装有 Centos 基础系统的实例映像文件(centos-root.img) 中,实现 Centos 与 Liferay 的整合集成。Centos+Liferay 整合方案的主要思路就是在 xen 虚拟环境中完成
  8. 8. Liferay 系统安装和服务功能配置。主要集成过程如下: $ xm create -c centos52 // 在 XEN 环境下,运行系统映像实例(基础系统); $ yum install -y java-1.6.0-openjdk-devel //安装 Java 环境; $ wget & unzip liferay-portal-tomcat-6.0-5.2.3.zip //下载解压 liferay 程序; $ cd tomcat/bin & $ chmod +x *.sh & $ ./startup.sh //运行 Tomcat,启动 liferay 服务; $ ./shudown.sh & $ init 0 //退出系统映像实例,完成整合; 4.6 上传 liferay+centos 系统实例映像 通过“ec2-bundle-image、ec2-upload-bundle、ec2-register 命令分别上传内核文件 “ “vmlinuz-‘uname-r’xen “、内存(ramdisk)文件“centos-ramdisk.img“、系统映像文件“centos-root.img”。 “ec2-run-instances ID”启动 liferay+centos 系统实例映像,在任意主机的浏览器中输入: http:// ipaddress_of_instance:8080。 我们将看到 liferay 系统的欢迎界面(如图 2)。 6 结语 本文通过介绍云计算概念,对比探讨当前有代表性的云计算平台,集成整合开源云计算平台和开源内 容管理系统,详述具有特定应用的云计算平台的具体搭建和实现过程,使读者能够明确掌握云计算实质、 云计算搭建及云计算实例应用的快速部署。相信随着云计算的实际应用的深入及相关实践经验的不断积累, 在不久的将来,工业界和学术界对云计算的研究无疑会成为一个热点。当然,云计算要实现普及应用还需
  9. 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.

×