使用 OpenStack 实现云计算和存储

简介: Infrastructure as a Service (IaaS) 云平台种类繁多,例如像 Nebula 和 Eucalyptus 这样为人熟知的解决方案。而此领域的一个新来者已展示了其不俗的增长,不仅包括用户数量的增长,还包括支持公司的数量的大量增长。在本文中,我们将了解这个开源平台 OpenStack,发现它是否真的是一种开源云操作系统。

Infrastructure as a Service (IaaS) 云平台种类繁多,例如像 Nebula 和 Eucalyptus 这样为人熟知的解决方案。而此领域的一个新来者已展示了其不俗的增长,不仅包括用户数量的增长,还包括支持公司的数量的大量增长。在本文中,我们将了解这 个开源平台 OpenStack,发现它是否真的是一种开源云操作系统。

云和公共 Infrastructure as a Service (IaaS) 背后的理念并不算很新。实际上,Amazon Elastic Compute Cloud (Amazon EC2) 到今年已经有六岁了。有所改变的是,现在已经主要将 IaaS 作为一种私有云计算,以满足具有敏感数据的企业计算。私有云计算将 IaaS 的理念应用到私有基础架构。虽然这么做缺少公共云(现收现付服务)的经济优势,但它充分利用了云计算的核心原理,使企业数据中心内有了可伸缩和弹性的基础 架构。

让我们先来快速介绍一下 IaaS 及其基础架构,然后再深入研究这个领先的开源解决方案:OpenStack。

IaaS 和云基础架构

云计算架构常常都着重于虚拟化后按需向用户公开的一组公共资源。这些资源包括功能各异的计算资源、持久的存储资源,以及将这些资源组合在一起并将它们有条件地公开到互联网的可配置联网资源。

IaaS 实现的基础架构(参见 图 1)就遵循了这样的模型,并添加了其他元素,比如计量(为计费的目的来说明使用的情况)。物理的基础架构则通过由各种技术(包括系统管理程序(用于平台虚拟化)、虚拟网络和存储)实现的虚拟层提取自应用程序和用户。


图 1. IaaS 的高级视图

使用 OpenStack 实现云计算和存储

虽然 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 项目和组件

项目组件描述
HorizonDashboard用户和管理员仪表盘
NovaCompute/block device虚拟服务器和卷
GlanceImage serviceVM 磁盘映像
SwiftStorage as a Service对象存储
Quantum/MelangeNetworks安全虚拟网络

其他重要的方面还包括 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 下使用。

相关推荐