专业共建新闻动态

将人、设备、环境、资源以及社会等因素,
在信息化的背景下进行整合,以云计算
、物联网、移动互联技术为基础,
通过多平台的信息传递手段提供教学、学习、校务管理等服务;

立即联系我们

使用 OpenStack 实现云计算和存储

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

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


IaaS 和云基础架构

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

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

虽然 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 是一个项目集合,整体提供了一个完整的 IaaS 解决方案。表 1 展示了这些项目及其起作用的方面。

其他重要的方面还包括 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 的创作者之一 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 管理的是包含计算和存储资源的庞大的服务器网络,以及将它们连接在一起的虚拟网络胶。

(原文作者M. Tim Jones,原文来源于developerWorks 中国


[转载请注明出处,并附上原文链接 ]