一、OpenStack概述
OpenStack作为开源、可扩展、富有弹性的云操作系统
(1)设计原则
- 按照不同的功能和通用性划分不同的项目,拆分子系统
- 按照逻辑计划、规范子系统之间的通信
点到点对接API
通信过程:HTTP HTTPS 消息代理rabbitmq - 通过分层设计整个系统架构
- 不同的功能子系统间提供统一的API接口
(2)概念架构
图中分为全局组件、核心组件、外部组件
- 全局组件:keystone提供身份验证,ceilometer提供全局计量服务,horizon提供一个web管理界面,与openstack底层交互
- 核心组件:都是为虚拟机提供服务,需要neutron网络支持,glance镜像支持,swift&cinder存储支持,nova统一申请调用,最后提供给虚拟机做统一支持
- 外部组件:sahara&heat大数据用的,分别是数据编排和数据分析;ironic裸金属服务,trove数据库管理服务包含了sql数据库和nosql数据库
(3)原生架构
简单理解此图:
Openstack原生架构的组件
组件之间点到点通过API接口进行通讯
单个项目组件内部有很多功能模块,他们通过消息代理进行交互
- OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通要管理权限的命令,每个服务之间均可通过公共API进行交互。
- 每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的
- 至于一个服务进程之间的通信,则通过AMQP
- 消息代理,服务的状态存储在数据库中
(4)通信关系
基于AMQP协议通信
- 用于每个项目内部各个组件之间的通信
基于SQL的通信
- 用于各个项目内部的通信
基于HTTP协议进行通信
- 通过各项目的API建立的通信关系,API都是RESTful Web API
通过Native API实现通信
- Openstack各组件和第三方软件之间的通信
(5)物理架构
控制节点:管理openstack架构
网络节点:负责各节点之间的通信和交互
计算节点:承载实例负责具体需求的处理
存储节点:提供存储服务
网络节点
二、实验搭建
- 所需实验机三台 计算节点C1、计算节点C2、控制节点CT
名称 | 需求 |
---|---|
系统 | CentOS 7.6 |
CPU | 双核双线程/开启虚拟化功能 |
内存 | 8G |
硬盘 | 300G |
内存 | 8G |
网卡1 | NAT模式 |
网卡2 | VMnet1 |