OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。最新版本Mitaka共16个核心项目(即OpenStack服务)。
Openstack体系结构图(仅包括了几个重要的组件)
1.1计算服务Nova
计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。
1.2对象存储:Swift
对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中。
1.3块存储:Cinder
块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
1.4镜像服务:Glance
镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。
1.5身份服务:Keystone
身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
1.6网络服务:Neutron
网络服务(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
1.7UI面板:Horizon
Openstack UI面板(Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。对于很多用户来说,了解Openstack基本都是从Horizon开始。从这个角度来看,他在Openstack各个项目里,显得非常重要。
1.8监控服务:Ceilometer
这是实现监控和计量的组件。Ceilometer项目创建时最初的目的是实现一个能为计费系统采集数据的框架。在G版的开发中,社区已经更新了他们的目标,新目标是希望Ceilometer成为OpenStack里数据采集(监控数据、计费数据)的唯一基础设施,采集到的数据提供给监控、计费、面板等项目使用。
1.9集群服务:Heat
对于云计算来说,自动化管理是一个必不可少的部分。AWS的EC2是通过提供CloudFormation格式的模版来实现Orchestration 。Heat是这部分功能的开源实现。Heat不仅100%兼容CloudFormation格式,同时支持自己的Hot (Heat Orchestration Template)格式。
https://wiki.openstack.org/wiki/Heat
1.10 数据库服务:Trove
对于云计算平台来说,只有计算、网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据库承载的往往是应用最核心的数据。此外,在大数据分析越来越盛行的背景下,对数据库的可靠便捷管理也变得更为重要。因此,DBase as a Service(DBaaS,数据库服务)也就顺理成章地成为了云计算平台为用户创造价值的一个重要服务。
对比Amazon AWS中各种关于数据的服务,其中最著名的是RDS(SQL-base)和DynamoDB(NoSQL),除了实现了基本的数据管理能力,还具备良好的伸缩能力、容灾能力和不同规格的性能表现。因此,对于最炙手可热的开源云计算平台Openstack来说,也从Icehouse版加入了DBaaS服务,代号Trove。直到Openstack Mitaka版本,Trove已经经过了5个版本的迭代发布,目前已经成为Openstack官方可选的核心服务之一。
1.11 大数据处理服务:Sahara
2013年4月,OpenStack社区知名厂商Mirantis正式宣布了基于OpenStack的开源BDaaS(BigData-as-a-Service)项目——Sahara(原名Savanna),正式开始了在OpenStack上构建大数据服务能力的努力。
Sahara旨在为用户提供简单部署Hadoop集群的能力,比如通过简单的配置:Hadoop版本、集群结构、节点硬件信息等。在用户提供了这些参数后,Sahara迅速把Hadoop集群部署起来。同时也支持集群的扩容和减容。
1.12 裸机服务:Ironic
OpenStack管理虚拟机已经非常成熟,通过Nova我们可以快速自动化地创建虚拟机。但是在这之前需要搭建物理环境,需要人工地管理多台设备,OpenStack并没有提供物理环境的管理,我们依然需要解决这些基础环境的搭建问题,由此Ironic应运而生,解决物理机的添加、删除、电源管理、操作系统部署等问题。Ironic让OpenStack不仅停留在软件层面解决云计算问题。供应商可以对应自己的服务器开发Ironic插件。
1.13 消息服务Zaqar
Zaqar的消息和通知服务为Openstack允许构建可伸缩、可靠和高性能的应用程序。开发人员可以通过REST API在他们的云应用的不同的组件中通过不同的通信模式,如生产者/消费者或发布者/订阅者来传输消息。
1.14 共享文件系统Manila
Manila项目全称是File Share Service,文件共享即服务。是OpenStack的子项目之一,用来提供云上的文件共享,支持CIFS协议和NFS协议。
1.15 DNS即服务Designate
OpenStack Designate提供了DNSaaS(DNS即服务)的功能,其目标就是要赋予OpenStack提供这种云域名系统的能力,云服务商可以使用Designate就能够很容易建造一个云域名管理系统来托管租户的公有域名。