openstack的架构分布特点
Openstack采用模块化的设计,每个功能由单一的模块组件提供,模块与模块之间使用标准的RPC远程过程调用机制,接口为Restful API。
各功能模块相互独立,整体构建了一个松耦合的系统架构。也就是其中某个组件出现了问题,仅会影响当前模块功能,不会影响到其他模块,这样对openstack内各模块就可以实现单独的定制、升级。
RPC
RPC定义:Remote Procedure Call(远程过程调用),是从远程主机调用一个过程/函数的机制。
RPC目标:让远程过程(服务)调用透明化;Openstack整体组件间的通信机制采用的就是RPC的方式。
Restful API
Restful api 是openstack各服务调用的接口,简单理解为可以通过网络去调用的函数。
它是一种通过使用URL链接,通过HTTP协议里面,四个表示操作方式的动词:POST、GET、PUT、DELETE来对资源进行统一的操作。
Restful api的四大特点
➢ 使用HTTP方法;调用命令的CRUD(Create, Read, Update, Delete),对应着HTTP的四个动作。
➢ 无状态;无需关注服务端对会话的保存,更易于实现集群、负载均衡等功能,实现组件间的松耦合。
➢ URI命名/组织采用类似目录结构;通过目录的方式,对资源进行管理。
➢ 采用XML、JSON传输信息;易于编程解读。
重要组件介绍
组件 | 项目 | 项目说明 |
---|---|---|
Compute(计算服务) | Nova | 实施服务和关联的库,以提供对可计算资源(包括裸机,虚拟机和容器)的大规模可扩展的按需自助服务访问 |
Identity Service(认证服务) | Keystone | 提供API客户端身份验证,服务发现和分布式多租户授权 |
Image Service(镜像服务) | Glance | 发现,注册和检索虚拟机映像。Glance具有一个RESTful API,该API允许查询VM映像元数据以及检索实际映像。通过Glance提供的VM映像可以存储在从简单文件系统到对象存储系统(例如OpenStack Swift项目)的各种位置。 |
Networking(网络服务) | Neutron | SDN网络项目,在虚拟计算环境中交付网络即服务 |
Dashboard(仪表板) | Horizon | 为OpenStack服务提供基于Web的用户界面 |
Block Storage(块存储) | Cinder | 虚拟化了块存储设备的管理,并为最终用户提供了自助服务API,以请求和使用这些资源,而无需了解其存储实际部署在何处或在哪种类型的设备上。 |
Object Storage(对象存储) | Swift | 高度可用的,分布式的,最终一致的对象存储。组织可以使用Swift来高效、安全和廉价地存储大量数据。 |
Telemetry(计量服务) | Ceilometer | 有效收集,规范化和转换OpenStack服务产生的数据 |
Orchestration(编排服务) | Heat | 基于文本文件形式的模板,为云应用程序协调基础结构资源,可以将其视为代码 |
Database Service(数据库服务) | Trove | 一个数据库即服务供应关系和非关系数据库引擎 |
Data Processing(数据处理) | Sahara | 为用户提供一种简单的方法来在OpenStack上预配数据处理框架(例如Hadoop,Spark和Storm) |