(KVM连载) 6.5.1 OpenStack简介

6.5      OpenStack云计算平台

6.5.1 OpenStack简介

在计算设备(包括PC、智能手机、平板电脑等)、互联网技术非常普及的今天,从技术热点上看,云计算无疑是其中最热门的概念之一。公共云计算服务的主要优势是,给用户提供按需付费的弹性的计算能力,以及简化软硬件计算环境的搭建,让用户更专注于自身的计算任何或应用程序的开发。而私有云计算服务的主要优势是,让一个公司或组织的计算资源得到充分整合,从而实现按需分配计算资源而提升现有硬件资源的利用率,而且更加方便管理、减低资源管理成本。

云计算的强烈需求,一方面推动了包括VMware、KVM、Xen等虚拟化技术的迅速发展,另一方面也促进云计算管理平台的产生和发展。在众多的开源云计算平台中,OpenStack、CloudStack、CloudFoundry、OpenNebula、Eucalyptus等无疑是其中的佼佼者,本节将简单介绍其中的OpenStack云计算平台。

OpenStack是一个开源的基础架构即服务(IaaS)云计算平台,可以为共有云和私有云服务提供云计算基础架构平台。OpenStack使用的开发语言是Python,采用Apache许可证发布该项目源代码。OpenStack支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等),通过调用各个的底层Hypervisor的API来实现对客户机的创建和关闭等操作,使用libvirt API来管理QEMU/KVM和LXC、使用XenAPI来管理XenServer/XCP、使用VMwareAPI来管理VMware,等等。OpenStack开源项目是在2010年由Rackspace公司和美国国家航空航天局(NASA)发起的云计算项目。OpenStack项目在这两年发展得非常的快,目前,有超过150家公司和成千上万的个人开发者已经宣布加入到该项目的开发。在支持OpenStack开发的一些大公司中,包括了AT&T、Canonical、IBM、HP、Redhat、Suse、Intel、Cisco、WMware、Yahoo!、新浪、华为等一批在IT业界非常知名的公司。

OpenStack的使命是为大规模的共有云和小规模的私有云都提供一个易于扩展的、弹性云计算服务,从而让云计算的实现更加简单和云计算架构具有更好的扩展性。也可以说,OpenStack是一个云计算操作系统,它给用于提供仅仅通过一个使用Web交互接口的控制面板(Dashboard)来管理一个或多个数据中心的所有计算资源池、存储资源池、网络资源池等硬件资源。OpenStack的作用是整合各种底层硬件硬件资源,为系统管理员提供Web界面的控制面板以方便资源管理,为开发者的应用程序提供统一管理接口,为终端用户提供无缝的透明的云计算服务。OpenStack在云计算软硬件架构的主要作用域一个操作系统类似,如图6-21所示(该图来源于OpenStack的官方网站)。

图6-21 OpenStack在云计算架构中的位置

OpenStack项目从2010年10月开始,大约每半年正式发布一个版本,本书写作时,OpenStack的最新版本是在2012年9月27日发布的代号为“Folsom”的版本,下一个版本计划在2013年4月发布。在目前最新的OpenStack(代码“Folsom”)中,主要包含了7个核心组件:计算、对象存储、块存储、镜像、网络、身份认证、控制面板。在OpenStack中,这7个核心组件的逻辑架构,如图6-22所示(来源于OpenStack官方网站上的管理员手册[5])。

图6-22 OpenStack中7个核心组件的逻辑架构

1)计算(Compute,代号为“Nova”)

根据需求提供虚拟的服务器。Rackspace和HP公司提供商业云计算服务正是建立在Nova之上,在Mercado Libre和NASA(Nova项目的起源地)内部也是使用的Nova。

2)对象存储(Object Storage,代号为“Swift”)

提供的对象存储服务,允许对文件进行存储或者检索(但不是通过挂载文件服务器上目录的方式来实现)。目前已经有好几家公司开始提供基于Swift的商业存储服务,这些公司包括KT公司、Rackspace公司(Swift项目的发源地)和Internap公司,而且,有很多大公司内部也使用Swift来存储数据。

3)块存储(Block Storage,代号为“Cinder”)

为虚拟化的客户机提供持久化的块存储服务。该组件项目的很多代码最初是来自于Nova之中(就是the nova-volume service)。不过请注意,这是块存储(或者volumes),而不是类似于NFS或者CIFS文件系统,Cinder在最新的“Folsom”版本OpenStack中才加入的一个全新的项目。

4)镜像(Image,代号为“Glance”)

提供了一个虚拟磁盘镜像的目录和存储仓库,可以提供对虚拟机镜像的存储和检索。这些磁盘镜像常常广泛应用于OpenStack Compute组件之中。虽然这种服务在技术上是属于可选的,但任何规模的云都可能对该服务有需求。

5)网络(Network,代号为“Quantum”)

在接口设备之间提供“网络连接即服务”的服务,而这些接口设备主要是由OpenStack的其他服务(如Nova)进行管理的。该服务允许用户创建自己的网络,然后添加网络接口设备。Quantum提供了一个可插拔的体系架构,使其能够支持很多流行的网络供应商和新的网络技术。Quantum是在OpenStack的Folsom版本中才加入的新项目。

6)身份认证(Identity,代号为“Keystone”)

为OpenStack上的所有服务提供身份验证和授权。它还提供了在特定OpenStack云服务上运行的服务的一个目录。

7)控制面板(Dashboard,代号为“Horizon”)

为OpenStack的所有服务提供一个模块化的基于Web的用户界面。使用这个Web图形界面,可以完成云计算平台上的大多数的操作,如启动客户机、分配IP地址、设置访问控制权限等。

除了上面介绍的7个核心组件,OpenStack计划在2013年4月发布代号为“Grizzly”的版本中,加入下面的两个组件。其中,一个是代号为“Ceilometer”的项目,用于对用户实际使用资源的进行比较细粒度的度量,可以为计费系统提供非常详细的资源监控数据(包括CPU、内存、网络、磁盘等)。另一个是代号为“Heat”的项目,使用Amazon的AWS云格式(CouldFormation)模板来编排和描述OpenStack中的各种资源(包括客户机、动态IP、存储卷等),它提供了一套OpenStack故有的RESTful的API,和一套与AWS CloudFormation兼容的查询API。

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*