要旨
OpenStack项目是一个为所有类型的云开源的云计算平台,旨在实现简单,大规模可伸缩,功能丰富。云计算开发人员和技术人员来自世界各地创建OpenStack项目。
OpenStack提供了一个“基础架构即服务”(IaaS)通过一组相互关联的服务解决方案。每个服务提供了一个应用程序编程接口(API),促进了这种集成。根据您的需要,您可以安装部分或全部服务。
下表描述了OpenStack OpenStack服务组成的体系结构:
OpenStack Services(服务)
服务 |
项目名称 |
介绍 |
界面操作 |
提供了一个基于web的自助服务门户与底层OpenStack交互服务,如启动一个实例,分配IP地址和配置访问控制。 |
|
计算服务 |
管理部署在openstack环境下的计算实例,职责包括启动、调度、销毁虚拟机 |
|
网络服务 |
为其他openstack服务提供网络连接,比如openstack的计算。为用户提供了一个API来定义网络和附件。有一个可插式架构,支持许多流行的网络供应商和技术。 |
|
对象存储服务 |
通过RESTful HTTP API存储和检索任意非结构化数据对象。它是高度容错数据复制和扩展架构。它的实现并不是像一个文件服务器挂载目录。在这种情况下,它写的对象和文件到多个驱动器,确保数据在服务器集群复制 |
|
块存储服务 |
提供持续的块存储运行实例。它的可插入驱动程序体系结构促进块存储设备的创建和管理。 |
|
身份认证服务 |
提供了一个为其他OpenStack服务身份验证和授权服务。为所有openstack服务端点提供了目录 |
|
镜像服务 |
存储和检索虚拟机磁盘映像。OpenStack计算中利用这种实例配置。 |
|
检测服务 |
监控和测量OpenStack云计费,基准测试,可伸缩性和统计目的 |
|
协调服务 |
协调多个组合云应用程序通过使用AWS CloudFormation原生热模板格式或模板格式,通过OpenStack-native REST API和CloudFormation-compatible查询API。 |
|
数据库服务 |
提供可伸缩的、可靠的云Database-as-a-Service关系和非关系数据库引擎的功能。 |
|
数据处理服务 |
通过指定参数如Hadoop版本,集群拓扑和节点硬件细节。提供功能来提供和规模在OpenStack Hadoop集群 |
Conceptual architecture(概念架构)
下面的图显示了OpenStack服务之间的关系:
Logical architecture(逻辑架构)
设计、部署和配置OpenStack,管理员必须理解逻辑架构。
如概念架构所示,OpenStack包含几个独立的部分,叫OpenStack服务。所有服务通过一个共同的身份验证服务。通过公共api单个服务相互作用,除特权管理员命令是必要的。
在内部,OpenStack服务是由几个过程。所有服务至少有一个API的过程,它侦听API请求,进行预处理并将它们传递给其他地区的服务。除了身份认证服务,实际工作是由不同的流程。
对于一个服务之间的通信过程,使用了消息中间件。服务的状态是存储在数据库中。部署和配置OpenStack云时,你可以选择在几个消息中间件和数据库解决方案,如RabbitMQ,MySQL,MariaDB,SQLite。
用户可以通过基于web的用户界面实现访问OpenStack仪表板,通过命令行客户端和通过发行API请求通过浏览器插件等工具或卷曲。
应用程序开发有几种sdk。最终,所有这些访问方法REST API调用各种OpenStack服务。
下面的图显示了最常见的,但不是唯一的可能,OpenStack云架构: