`

使用OpenStack实现云计算和存储

 
阅读更多
云和公共 Infrastructure as a Service (IaaS) 背后的理念并不算很新。实际上,Amazon Elastic Compute Cloud (Amazon EC2) 到今年已经有六岁了。有所改变的是,现在已经主要将 IaaS 作为一种私有云计算,以满足具有敏感数据的企业计算。私有云计算将 IaaS 的理念应用到私有基础架构。虽然这么做缺少公共云(现收现付服务)的经济优势,但它充分利用了云计算的核心原理,使企业数据中心内有了可伸缩和弹性的基础架构。
推荐阅读:OpenStack简介与入门指南汇总
让我们先来快速介绍一下 IaaS 及其基础架构,然后再深入研究这个领先的开源解决方案:OpenStack。
IaaS 和云基础架构
云计算架构常常都着重于虚拟化后按需向用户公开的一组公共资源。这些资源包括功能各异的计算资源、持久的存储资源,以及将这些资源组合在一起并将它们有条件地公开到互联网的可配置联网资源。
IaaS 实现的基础架构(参见 图 1)就遵循了这样的模型,并添加了其他元素,比如计量(为计费的目的来说明使用的情况)。物理的基础架构则通过由各种技术(包括系统管理程序(用于平台虚拟化)、虚拟网络和存储)实现的虚拟层提取自应用程序和用户。
图 1. IaaS 的高级视图

虽然 OpenStack 是如今最为流行的一种可用的开源云解决方案,但它当然不是最早的一个。实际上,OpenStack 是在公共和私有领域开发的两种旧解决方案的综合。
由位于圣巴巴拉市的加州大学的一个研究项目开发的 Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是更早的一种开源 IaaS 解决方案。其他的解决方案还包括 OpenNebula(一种开源的云计算工具箱)和 Nimbus(另一种面向 IaaS 云的开源工具箱)。OpenStack 集成了美国国家航空和航天局 (NASA) 的部分 Nebula 平台和 Rackspace Cloud Files 项目(云存储)。
云计算的新来者:OpenStack
OpenStack 是 IaaS 空间的一个新来者,在 2010 年末首次发布。尽管此解决方案成熟度不够,而且面市还不到两年时间,但是 OpenStack 现已成为了使用最为广泛的云堆栈之一。OpenStack 不是单一的解决方案,而是一个不断成长的开源解决方案套件(包括核心以及新孵化的项目),并共同形成了一个强大成熟的 IaaS 堆栈。
如 图 2 所示,OpenStack 构建自几个核心技术(多于这里所展示的,但这里所展示的代表关键方面)。左侧是 Horizon 仪表盘,显示了一个可为用户和管理员用来管理 OpenStack 服务的用户界面。Nova 提供了一个可伸缩的计算平台,用来支持大量服务器和虚拟机(VM;以一种系统管理程序不可知的方式)的配置和管理。Swift 实现一个具有内部冗余、可大量伸缩的对象存储系统。在底部的是 Quantum 和 Melange,二者实现了网络连接即服务 (network connectivity as a service)。最后,Glance 项目为虚拟磁盘映象实现了一个存储库(映像即服务 (image as a service))。
图 2. OpenStack 解决方案的核心和附加组件
OpenStack 解决方案的核心和附加组件
如图 2 所示,OpenStack 是一个项目集合,整体提供了一个完整的 IaaS 解决方案。表 1 展示了这些项目及其起作用的方面。
表 1. OpenStack 项目和组件

其他重要的方面还包括 Keystone,它实现了对企业私有云十分关键的身份识别服务(对计算服务器、Glance 内的映像以及 Swift 对象存储区的访问方面的管理)。
OpenStack 架构
OpenStack 用三个核心开源项目(如 图 2 所示)来表示:Nova(计算)、Swift(对象存储)和 Glance(VM 存储库)。Nova(或 OpenStack Compute),提供了跨服务器网络的 VM 实例的管理。它的应用程序编程接口 (API) 为试图无知物理硬件和系统管理程序提供了一种计算编排方法。请注意,Nova 不仅提供了用于管理的 OpenStack API,还为那些习惯该界面的人提供了一种 Amazon EC2-兼容 API。Nova 支持组织所使用的专有系统管理程序,但更为重要的是,它支持像 Xen 和 Kernel Virtual Machine (KVM) 这样的系统管理程序,也支持像 Linux® Container 这样的操作系统虚拟化。出于开发的目的,还可以使用 QEMU 这样的仿真解决方案。
Swift(或 OpenStack Object Storage)项目可通过配置了普通硬盘的标准服务器提供可伸缩的冗余存储集群。Swift 并不代表一个文件系统,它实现的是一个更为传统的对象存储系统,可用于主要是静态数据(一种关键的使用模型是静态 VM 映像)的长期存储。Swift 不具备集中式控制器,它能改善整体的可伸缩性。它在内部管理跨集群的复制(无需独立磁盘冗余阵列)来提高可靠性。
Glance(或 OpenStack Image Service)为 Nova 能够使用(此选项存储在 Swift 内)的虚拟磁盘映像提供了一个存储库。Glance 提供了一个 API 来注册磁盘映像,此外还提供了通过一个简单的 Representational State Transfer (REST) 界面的发现和交付。Glance 很大程度上对虚拟磁盘映像格式不可知,支持各种标准,包括 VDI (VirtualBox)、VHD (Microsoft® Hyper-V®)、QCOW2 (QEMU/KVM)、VMDK/OVF (VMware) 以及原始格式。Glance 还提供了磁盘映像校验和、版本控制(和其他元数据)以及虚拟磁盘验证和审计/调试日志。
此核心 OpenStack 项目(Nova、Swift 和 Glance)是使用 Python 开发的,它们都可以在 Apache License 下使用。
演示 OpenStack
因为有大量独立项目需要安装并配置以便能够相互协作,安装 OpenStack 可能会非常耗时(参见 参考资料 获取完整安装的更多信息)。但是对于好奇的读者来说,有其他一些选项可以极大地简化 OpenStack 的启动和运行。
阅读过我之前文章的读者都知道我是一个 VM 映像迷,热衷于基于 Linux 软件的简化使用。VM 允许您轻松地创建一个新实例来尝试或演示软件。此 VM 是一个自包含的 Linux 实例(有时称作虚拟设备),可以用必要的软件预安装并预配置以供使用。以这种方式配置的软件可极大地简化其使用,让您得以试验那些否则很难掌握或掌握起来很耗时的软件。参阅 参考资料 获取满足您特定的硬件和基础操作系统需求的安装选项。
对于本次展示,我决定使用最新的 Ubuntu 发布版 (12.04) 和 OpenStack Essex 发布版。Essex 的 ISO 版本可以使用 uksysadmin 安装程序进行安装(参见 参考资料)。在 Ubuntu Precise 上成功安装了 OpenStack Essex 后,使用一个外部的 Web 浏览器能够登录 OpenStack 仪表盘。图 3 显示了具有两种容器格式的来宾(Guest) VM 映像的 System Panel Images 选项卡界面。
图 3. 可用来宾映像的 OpenStack Dashboard 视图

此映像可用来创建一个演示实例,正如图 4 所示,创建已经开始。这个实例现在就可以使用了。
图 4. 计算实例的 OpenStack Dashboard 视图
\
现在,有了运行于 OpenStack 之上的计算映像,我可以通过一个简单的 Secure Shell (SSH) 会话使用其 IP 地址 (172.16.1.1) 对其进行访问(参见清单 1,用户输入以粗体显示)。
清单 1. 通过 SSH 访问 OpenStack 计算实例
$ ssh -i Downloads/demo.pem ubuntu@172.16.1.1  
The authenticity of host '172.16.1.1 (172.16.1.1)' can't be established.  
RSA key fingerprint is df:0e:d0:32:f8:6d:74:49:ea:60:99:82:f1:07:5d:3b.  
Are you sure you want to continue connecting (yes/no)? yes  
Warning: Permanently added '172.16.1.1' (RSA) to the list of known hosts.  
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-virtual x86_64)  
 
 * Documentation:  https://help.ubuntu.com/  
 
 System information disabled due to load higher than 1.0  
 
0 packages can be updated.  
0 updates are security updates.  
 
Get cloud support with Ubuntu Advantage Cloud Guest  
  http://www.ubuntu.com/business/services/cloud  
 
The programs included with the Ubuntu system are free software;  
the exact distribution terms for each program are described in the  
individual files in /usr/share/doc/*/copyright.  
 
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by  
applicable law.  
 
 
To run a command as administrator (user "root"), use "sudo <command>".  
See "man sudo_root" for details.  
 
ubuntu@demo1:~$   
ubuntu@demo1:~$ hostname  
demo1  
ubuntu@demo1:~$ ps  
  PID TTY          TIME CMD  
  835 pts/0    00:00:06 bash  
  948 pts/0    00:00:00 ps  
ubuntu@demo1:~$  

所有这些层都运行后,可能很难想象所发生的事情。图 5 展示了整个堆栈,希望能帮助解释清楚。在这个演示中,运行 Mac OS X 的 Mac 提供了基础平台。VirtualBox 运行于 Mac OS X 之上,提供了 OpenStack 的执行平台(运行于 Ubuntu Linux 上)。注意,VirtualBox 是一个类型-2 的虚拟化管理程序。在 OpenStack Linux 层,QEMU 被用作一个来宾系统管理程序,从硬件角度来看,这很理想,但缺乏真正的产品设置所需的性能。
图 5. 在普通硬件上运行的 OpenStack 演示堆栈

没有了对嵌套虚拟化(在另一个系统管理程序之上有效运行一个系统管理程序)的支持,我依赖于 QEMU 作为我在 OpenStack 上运行的来宾系统管理程序。这让我能够在一个来宾系统管理程序上运行一个来宾 VM,该来宾 VM 在一个类型-2 的虚拟化管理程序上运行。虽然这种设置可能会很慢,但它充分展示了一个在普通计算机系统上运行的 IaaS 堆栈。注意,如今某些 AMD 处理器可提供一种有效的支持嵌套虚拟化的方式。
虽然使用 QEMU 对于性能而言并不理想,但它与 KVM (Linux as a hypervisor) 极为兼容,因而很容易在两个系统管理程序之间迁移(除了在这两者之前兼容的 VM 映像)。在这种情况下,让 QEMU 之所以理想的原因是它可以在未提供虚拟化支持的硬件上执行。注意,我的平台在这个例子中是具有虚拟化功能的,但是由于我在 VirtualBox(一个凭借自身力量的虚拟化管理程序)上运行,嵌套虚拟化的缺乏让我不得不使用一个不依赖虚拟化扩展的来宾系统管理程序。不管在哪种情况下,我都使用 libvirt 来管理 VM(启动、停止、监视等),所以,在一个有虚拟化功能的硬件上迁移到 KVM 简单至极,只需在 OpenStack 配置文件内进行两行修改即可。
使用 OpenStack 的其他方式
即便您没有自己的集群,也可采用其他选项来享受 OpenStack 带来的益处。OpenStack 的创作者之一 Rackspace,就提供了它寄予厚望的云的 Linux。Rackspace 的 OpenStack 云平台提供了 OpenStack 在公共云基础架构的灵活性和可伸缩性方面的优势。
为了简化 OpenStack 面向私有云的安装,很多公司都关注于简化 OpenStack 在私有集群内的使用。比如,Piston Cloud Computing 公司就提供了 Piston Enterprise OS 这种基于 OpenStack 的私有云操作系统。Mirantis 则向企业提供了专业的构建 OpenStack 基础架构的服务。
OpenStack 的前景
OpenStack 将继续集成新的功能,提高了 IaaS 解决方案的定义。OpenStack 旗下有许多其他项目可用,但还有很多仍在孵化进程中。Keystone 项目提供的身份识别服务统一了跨 OpenStack 组件的身份验证,同时又集成了现有的身份验证系统。还存在目的各异的社区项目,比如负载均衡即服务 (Atlas-LB);云安装和维护系统 (Crowbar);云可配置和可伸缩的关系数据库 (RedDwarf);面向云编排的基于REST 的 API (Heat);以及涵盖了监视、计费等的云管理工具 (Clanavi)。在 OpenStack 项目内外还有无数其他项目正在开发当中,只要 OpenStack 的构建势头不减,这个列表每天都在增长。
OpenStack 并非没有竞争,随着旧项目的不断发展,新的项目也会出现。例如,CloudStack(在 2009 年首次发布)具有几个产品安装,但缺乏 OpenStack 所具备的开源贡献者支持的级别。
结束语
继 Linux 发展成为能符合所有使用模型的通用操作系统之后,OpenStack 也正在向代表云操作系统的方向前进。与管理有限集的核心和本地资源不同,OpenStack 管理的是包含计算和存储资源的庞大的服务器网络,以及将它们连接在一起的虚拟网络胶。
自它在 2010 年末首次发布以来 (Austin),OpenStack 项目已经又发布了四个版本,最新的一个版本在 2012 年 4 月发布 (Essex)。对于每次发布,OpenStack 都继续推动新的、改进了的功能,这也提高了其他 IaaS 解决方案的竞争门槛。如今,在 Apache 旗下,OpenStack 成为云堆栈内的标准实在不足为奇。
分享到:
评论

相关推荐

    基于OpenStack构建云计算基础架构平台的研究.pdf

    云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。它的出现极大地提升了计算能力,聚合了分散的资源,帮助用户实现高效率的业务计算能力。云计算技术...

    基于Openstack的云计算技术与应用专业Web云盘设计与实现.pdf

    学习和利用Openstack Swift技术建立Web云盘系统,对于掌握云计算核心技术、实现用户管理、文件夹管理、文件管理和回收站管理等功能,进而方便个人及团队数据的远程管理和存储成本的节约具有重要的意义。 文章中提到...

    基于OpenStack的云计算和大数据实验教学平台应用研究.pdf

    基于OpenStack的云计算和大数据实验教学平台能够在使用软硬件资源的基础上,通过虚拟化技术,实现资源的集中管理和自动化部署。教师和学生都可以通过该平台快速搭建实验环境,满足大数据实验教学的需求。平台还能够...

    基于OpenStack的教学云计算平台的构建与应用.pdf

    2. 计算资源的弹性分配:OpenStack能够根据用户的需求,动态调整计算资源,实现资源的快速构建、弹性收缩和按需使用。 3. 自动化部署和管理:OpenStack支持自动化部署,可以减少人工配置的需要,并且通过OpenStack...

    基于Openstack部署云计算管理平台.pdf

    她在研究中涉及了云计算及Openstack部署的重要知识点,不仅介绍了云计算和Openstack的基本概念,而且详细阐述了如何基于Openstack进行多节点的云平台部署,重点讲解了工作原理和关键组件的安装部署,并对各个组件...

    OpenStack开源云计算方案.pptx

    对于企业来说,选择OpenStack意味着可以自主掌控技术路线,培养自运维和自集成能力,同时通过资源池化实现计算、存储和网络的高效利用。此外,OpenStack的高可伸缩性和简易性使其能够适应企业规模的变化,提供高可靠...

    OpenStack与云计算介绍.pptx

    总之,OpenStack是云计算生态系统中的重要一环,它为构建和管理云基础设施提供了强大的工具,而云计算则是一种革命性的计算模型,改变了我们使用和提供计算资源的方式,为企业和个人带来了更高的效率和便利。

    OpenStack开源云计算与云数据库实践.pdf

    此外,文档还提到了云资源的监控和计量系统,这些系统可以对计算、存储和网络资源进行实时监控,并实现秒级计费,这对于提供PaaS服务和实现精细的成本控制至关重要。同时,云安全保障体系也是OpenStack的重要组成...

    本科毕业论文---基于openstack的云计算数据中心管理系统的设计与开发论文正文.doc

    本文首先介绍了云计算的背景及其相关技术,并深入了解 OpenStack 的架构和其各种服务,掌握各种服务实现原理,以及探讨 OpenStack 如何实现对云计算数据中心的管理,最后动手搭建 OpenStack 云平台和尝试对功能的...

    《OpenStack云计算基础架构平台应用》试卷试题及答案.docx

    ### OpenStack云计算基础架构平台应用知识点解析 #### 一、OpenStack概述与核心组件 - **Dashboard**: OpenStack中的Dashboard提供了Web管理界面,方便用户通过浏览器进行操作和管理。它并不提供OpenStack的认证...

    行业分类-设备装置-基于OpenStack的云计算实验平台.zip

    《基于OpenStack的云计算实验平台》 ...总之,基于OpenStack的云计算实验平台是一个集学习、实践和创新于一体的平台,通过深入了解和实践,不仅可以掌握云计算的核心技术,还能为应对未来数字化挑战做好准备。

    本科毕业论文---基于openstack的云计算数据中心管理系统的设计与开发正文.doc

    本文首先介绍了云计算的背景及其相关技术,并深入了解 OpenStack 的架构和其各种服务,掌握各种服务实现原理,以及探讨 OpenStack 如何实现对云计算数据中心的管理,最后动手搭建 OpenStack 云平台和尝试对功能的...

    基于OpenStack的云计算实验平台建设与应用.pdf

    综合来看,基于OpenStack的云计算实验平台的建设与应用涵盖了一系列的配置管理、用户权限管理、桌面云系统构建和大数据应用环境优化的知识点。通过这些关键步骤的实施,可以有效地构建一个既稳定又高效的云计算实验...

    带你精通OpenStack的云计算架构部署实验

    OpenStack是一种开源的云计算平台,它提供了一套丰富的服务,用于构建私有云和公有云基础设施。这个“带你精通OpenStack的云计算架构部署实验”是针对初学者设计的,旨在帮助他们理解并掌握OpenStack的部署和管理。...

    基于OpenStack云计算的资源调度算法研究.pdf

    本文针对OpenStack云计算平台的资源调度问题,采用改进的遗传算法来实现更为智能化的资源调度,以提高资源利用率、降低运营成本,并尽力满足服务质量(Quality of Service, QoS)需求。 OpenStack是当下流行的开源...

Global site tag (gtag.js) - Google Analytics