OpenStack是一个由Rackspace公司和美国国家航空航天局(NASA)共同开发的云计算平台项目,可以为公有云和私有云服务提供云计算基础架构平台。OpenStack使用的开发语言是Python,采用Apache许可证发布该项目源代码。OpenStack支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等),通过调用各个底层Hypervisor的API来实现对客户机的创建和关闭等操作,使用libvirt API来管理QEMU/KVM和LXC、使用XenAPI来管理XenServer/XCP、使用VMware API来管理VMware,等等。
OpenStack项目发展迅猛,目前有超过150家公司和成千上万的个人开发者已经宣布加入该项目的开发。支持OpenStack开发的一些大公司,包括AT&T、Canonical、IBM、HP、Redhat、Suse、Intel、Cisco、WMware、Yahoo!、新浪、华为等一批在IT业界非常知名的公司。
OpenStack的使命是为大规模的公有云和小规模的私有云都提供一个易于扩展的、弹性云计算服务,从而让云计算的实现更加简单和云计算架构具有更好的扩展性。OpenStack的作用是整合各种底层硬件资源,为系统管理员提供Web界面的控制面板以方便资源管理,为开发者的应用程序提供统一管理接口,为终端用户提供无缝的透明的云计算服务。OpenStack在云计算软硬件架构的主要作用与一个操作系统类似,具体如图10-6所示。
由图10-6可见,OpenStack作为IaaS层的云操作系统,主要管理计算、网络和存储三大类资源。
(1)计算资源管理
OpenStack可以规划并管理大量虚拟机,从而允许企业或服务提供商按需提供计算资源;开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过Web访问这些资源。
(2)存储资源管理
OpenStack可以为云服务或云应用提供所需的对象及块存储资源;因对性能及价格有需求,很多组织已经不能满足传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能。
图10-6 OpenStack架构
(来源:OpenStack官网)
(3)网络资源管理
如今的数据中心存在大量的设置,如服务器、网络设备、存储设备、安全设备,而它们还将被划分成更多的虚拟设备或虚拟网络,这会导致IP地址的数量、路由配置、安全规则将爆炸式增长。传统的网络管理技术无法真正实现高扩展、高自动化地管理下一代网络,因此OpenStack提供了插件式、可扩展、API驱动型的网络及IP管理。
作为Amazon的追随者,OpenStack在技术架构上也与AWS有很多相似之处。OpenStack也是由几个独立的核心功能组件所构成,如图10-7所示。
(1)计算服务Nova
Nova是OpenStack云计算架构控制器,OpenStack云内实例的生命周期所需的所有活动由Nova处理。Nova作为管理平台管理着OpenStack云里的计算资源、网络、授权和扩展需求。但是,Nova不能提供本身的虚拟化功能,相反,它使用Libvirt的API来支持虚拟机管理程序交互。Nova通过Web服务接口开放所有功能并兼容亚马逊Web服务的EC2接口。
(2)对象存储服务Swift
Swift为OpenStack提供了分布式的、最终一致的虚拟对象存储。和亚马逊的Web服务——简单存储服务(S3)类似,通过分布式的穿过节点,Swift有能力存储数十亿计的对象,并具有内置冗余、容错管理、存档、流媒体的功能。Swift是高度扩展的,不论大小(多个PB级别)和能力(对象的数量)。
(3)镜像服务Glance
Glance提供了一个虚拟磁盘镜像的目录和存储仓库,可以提供对虚拟机镜像的存储和检索。这些磁盘镜像常常广泛应用于OpenStack Compute组件之中。虽然这种服务在技术上是属于可选的,但任何规模的云都可能对该服务有需求。
(4)身份认证服务Keystone
它为OpenStack上所有服务提供身份验证和授权。它还提供了在特定OpenStack云服务上运行服务的一个目录。(www.xing528.com)
图10-7 OpenStack核心功能
(来源:51CTO博客)
(5)网络服务Neutron
Neutron的发展经历了Nova-Network→Quantum→Neutron 3个阶段,从最初的只提供IP地址管理、网络管理和安全管理功能发展到现在可以提供多租户隔离、多2层代理支持、3层转发、负载均衡、隧道支持等功能。Neutron提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。
(6)块存储服务Cinder
Cinder为虚拟化的客户机提供持久化的块存储服务。该组件项目的很多代码最初是来自Nova之中(就是the nova-volume service)。不过请注意,这是块存储(或者Volumes),而不是类似于NFS或者CIFS文件系统。Cinder是Folsom版本OpenStack中加入的一个全新的项目。
(7)控制面板Horizon
Horizon为OpenStack的所有服务提供一个模块化的基于Web的用户界面。使用这个Web图形界面,可以完成云计算平台上的大多数操作,如启动客户机、分配IP地址、设置访问控制权限等。
(8)计量服务Ceilometer
Ceilometer用于对用户实际使用资源的进行比较细粒度的度量,可以为计费系统提供非常详细的资源监控数据(包括CPU、内存、网络、磁盘等)。
(9)编排服务Heat
Heat使用Amazon的AWS云格式(CloudFormation)模板来编排和描述OpenStack中的各种资源(包括客户机、动态IP、存储卷等),它提供了一套OpenStack故有的RESTful的API,以及一套与AWSCloudFormation兼容的查询API。
(10)Hadoop集群服务Sahara
Sahara是基于OpenStack提供快速部署和管理Hadoop集群的工具,随着版本的演进,如今Sahara已经可以提供分析及服务层面的大数据业务应用能力(EDP),并且也突破了单一的Hadoop部署工具范畴,可以独立部署Spark、Storm集群,以更加便捷地处理流数据。
(11)裸金属服务Ironic
OpenStack Ironic就是一个进行裸机部署安装的项目。所谓裸机,就是指没有配置操作系统的计算机。从裸机到应用还需要进行以下操作:硬盘RAID、分区和格式化;安装操作系统、驱动程序;安装应用程序。Ironic实现的功能,就是可以很方便地对指定的一台或多台裸机执行以上一系列的操作。例如,部署大数据群集需要同时部署多台物理机,就可以使用Ironic来实现。Ironic可以实现硬件基础设施资源的快速交付。
(12)数据库服务Trove
Trove是OpenStack数据服务组件,允许用户对关系型数据库进行管理,实现了MySQL实例的异步复制和提供PostgreSQL数据库的实例。
后面几节将重点介绍OpenStack的3个核心开源项目,即Nova(计算)、Swift(对象存储)和Glance(镜像)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。