一、云计算
1.1 概念
租赁、按量计费、弹性伸缩
1.2 资源
网络资源、存储资源、计算资源
1.3 服务模型
- iaas(基础架构即服务)
- paas(平台即服务)
- saas(软件即服务)
二、openstack概述及优点
2.1 Openstack概述
- 开源
- 三中商业模式:公有云、私有云、混合云
- openstack覆盖的技术领域很广
2.2 Openstack优势
- 控制性
完全开源的平台,提供API接口,方便与第三方技术集成 - 兼容性
OPenstack兼容其它公有云,方便用户进行数据的迁移 - 可扩展性
模块块设计,可以通过横向扩展,增加节点,添加资源 - 灵活性
根据自己的需要建立相应的基础设施,增加集群的规模 - 行业标准
众多IT领军企业已经加入到Openstack项目
三、openstack服务
服务 | 项目名称 | 描述 |
Compute (计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。 对Hypervisor进行屏蔽 支持多种虚拟化技术,支持横向扩展 |
Network (网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络的拓扑结构。 是面向租户的网络管理,可以自定义自己的网络,各个租户之间互不影响 |
Identity (身份认证服务) | Keystone | 对用户、租户和角色、服务进行认证和授权 支持多种认证机制 |
Dashboard (控制面板服务) | Horizon | 提供一个Web管理界面 与Openstack底层服务进行交互 |
Image Service (镜像服务) | Glance | 提供虚拟机镜像末班的注册和管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用 支持多种格式的镜像 |
Block Storage (块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备 可进行方便的扩展,按需付费 支持多种后端存储 |
Object Storage (对象存储服务) | Swift | 为Openstack提供基于云的弹性存储 支持集群无单点故障 |
Telemetry (计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源 为Openstack用户提供记账途径 |
四、Openstack架构
4.1 设计的基本原则
- 按照不同的功能划分不同的服务,并且服务之间相互隔离,只通过API作为统一交互入口进行对接
- API 之间进行交互会有特定/通用的方式,对不同组件之间的通讯方式进行规范
- 通过分层设计整个系统架
分层方式一:以架构为单位进行分层(全局组件、辅助组件、核心组件)
分层方式二:以单个核心服务/组件进行分层(API、子功能模块、其他) - 各组件之间通过统一的API接口进行交互/通讯/数据传输/调用
4.2 Openstack概念架构图
4.3 Openstack逻辑架构图
① 首先以逻辑架构来说,Openstack包含三层服务组件:
- 全局组件由keystone(身份验证),ceilometer(计量)和horizon(可视化界面UI)三部分组成;
- 核心组件由glance(镜像)、Neutron(网络)、Cinder(块存储)、Swift(对象存储)和Nova(计算服务)五部分组成;
- 辅助组件由Ironic(裸金属)、trove(数据库)和heat以及sahara(数据编排)组成。
② 各组件之间对接、通讯方式:
- 各组件之间通过统一的API进行对接;
- 各组件之间通过消息代理(RabbitMQ)进行通讯;
- 各组件之间通讯通过restful进行了一个格式的规范,以及合法的验证。
③ 各组件内部分层:
- API作为内外交互的接口,同时也对其它组件发过来的信息做一个预处理(1、统一发往keystone进行验证 2、API根据不同的任务将需求发往后端的子功能模块);
- 实际上API是不处理请求的,请求都是各个组件后端的子功能模块来处理的;
- 各子功能模块之间的相互通讯借助于消息队列;
- 子功能模块处理完的请求再次反馈到API,再通过API对接出去。
4.4 OpenStack组件通信关系
- 基于AMQP协议的通信
用于每个项目内部各个组件之间的通信 - 同于SQL的通信
用于各个项目内部的通信 - 基于HTTP协议进行通信
通过各项目的API建立的通信关系,API都是Restful web API
restful:是一种交互/通讯的规范
因为API是由Apache提供的,web页面的URL/展示页面
API:组件与组件的对接(是点到点的通信) - 通过Native API 实现通信
Openstack各组件和第三方软硬件之间的通信。各组件通过Native API和第三方软硬件的API进行交互,形成OPenstack的扩展性。
4.5 Openstack物理架构
4.5.1 控制节点
作用:
分发任务,主要管理其他节点
控制节点也可以跑实例资源(处理具体任务)
① 支持服务
- MySQL
数据库作为基础/扩展服务产生的数据存放的地方 - RabbitMQ
消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
② 基础服务
- Keystone
认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库 - Glance
镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板 - Nova
计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信 - Neutron
网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板 - Horizon
控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
③ 扩展服务
- Cinder
提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板 - Swift
提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板 - Trove
提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板 - Heat
提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。 - Centimeter
提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
④ 网络接口
通过网络接口管理其他节点的网络
对应的其他节点的管理网络的作用就是接受其他节点管理网络的管理,并将请求转发回去
4.5.2 网络节点
① 基础服务
- Neutron
具体实现
② 网络接口
- 管理网络
接受控制节点的任务调度 - 数据网络
数据库相关的网络管理。包括:数据对接、数据存储,数据同步,和其他节点上的数据网络进行关联 - 外部网络
负责和外部第三方组件做对接、管理、集成等。
4.5.3 计算节点
① 基础服务
- Nova Hypervisor
实例生命周期的管理,负责调用底层VMM的资源给虚拟机使用 - 网络插件代理
通过插件和代理来实现网络二层、三层的具体功能
② 扩展服务
- celiometer Agent
计量客户使用的资源量,并根据这个来按量收费
③ 网络接口
- 管理网络
接受控制节点的网络接口的调度和管理 - 数据网络
数据库相关的网络管理。包括:数据对接、数据存储,数据同步,和其他节点上的数据网络进行关联
4.5.4 存储节点
① 基础服务
- Cinder
提供块存储 - Swift
提供对象存储
② 网络接口
- 管理网络
接受控制节点的网络接口的调度和管理 - 数据网络
数据库相关的网络管理。包括:数据对接、数据存储,数据同步,和其他节点上的数据网络进行关联
4.5.5 网络节点的组成
- 提供者网络
Openstack结构内部网络 - 自服务网络
Openstack架构外部网络
理解:
- Openstack网络类型(以功能划分)有两种,第一个是内部网络,第二个是外部网络
- Openstack的网络功能,是通过插件、代理的方式来实现