OpenStack架构
OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则
按照不同的功能和通用性划分不同项目,拆分子系统
按照不同的功能划分不同服务,并且服务之间相互隔离,只通过API作为统一交互入口相互对接
按照功能和通过性划分不同服务,将一个整理功能,拆分为各个子服务/子功能。方便管理、排障
按照逻辑计划、规范子系统之间的通信
API之间进行交互会有特定/通用的方式,对不同组件之间的通讯方式进行规范
通过分层设计整个系统架构
分层(以架构为单位),三层①全局组件②辅助组件③核心组件
以单个核心组件/服务进行分层①API②子功能模块③其他
不同的功能子系统间提供统一的API接口
各组件之间通过统一的API接口进行交互、通讯、数据传输、调用
OpenStack概念架构图
以架构维度来看,分为:全局组件、核心组件、辅助组件
全局组件:Keystone、Ceilometer、Horizon
全局的认证、监控、控制台管理
辅助组件:Ironic、Trove、Hert、Sahara(提供了一些必要的管理与服务)
Ironic:裸金属(裸机),把资源调用过后给它创建一个操作系统,这样就组成了一个可以使用的操作系统,使用的一个节点和虚拟机,管理和控制基础硬件资源
Trove:数据库/管理数据库的服务,可以管理关系型和非关系型数据库,数据库存储信息和数据,存储OpenStack最为核心的实例数据,存储各组件的数据,各组件的调用数据和使用情况以及各种日志
Hert、Sahara:做数据的分析编排和处理,精细化的管理和编排更为合理的使用利用数据
核心组件(为实例/虚拟机服务):Glance、Nova、Swift、Neutron、Cinder
创建虚拟机需要网络资源、镜像资源和存储资源
Glance为虚拟机提供了镜像
Neutron提供了网络
Swift、Cinder为虚拟机提供了存储,Cinder为虚拟机提供持久化存储,同时也会备份一份在Swift里面
Nova会把创建虚拟机所需要的资源(Glance、Swift、Neutron、Cinder)调用过来,然后提供给虚拟机