目录
一、了解OpenStack项目
二、理解OpenStack架构
一、了解OpenStack项目
1.1 什么是OpenStack?
•OpenStack是一系列开源软件项目的组合。
•OpenStack是目前非常流行的开源云操作系统
•OpenStack是基础设施资源的系统管理平台。
•OpenStack对数据中心的计算、存储和网络资源进行统一管理。
•OpenStack作为虚拟机、裸金属服务器和容器等的云基础架构和基础设施平台。
1.2 OpenStack示意图
1.3 OpenStack项目及其组成
1.4 核心项目
•仪表板(Dashboard)——Horizon
•计算服务(Compute Service)——Nova
•网络(Networking)——Neutron
•对象存储(Object Storage)——Swift
•块存储(Block Storage)——Cinder
•身份服务(Identity Service)——Keystone
•镜像(Image Service)——Glance
二、理解OpenStack架构
OpenStack 云平台服务的提供主要是依靠 Nova、Glance、Cinder 和 Neutron 四个核心模块完成的, 四个辅助模块Horizen 、Ceilometer 、Keystone、Swift 提供的访问、监控、权限和对象存储功能。
服务进程之间的通讯通过消息队列来实现(目前rabbitmq是默认的实现技术,兼容多个OpenStack的版本)
2.1 OpenStack的概念架构图
全局组件:keystone提供身份验证,ceilometer提供全局计量服务,horizon提供一个web管理界面,与openstack底层交互
核心组件:都是为虚拟机提供服务,需要neutron网络支持,glance镜像支持,swift&cinder存储支持,nova统一申请调用,最后提供给虚拟机做统一支持
外部组件:sahara&heat大数据用的,分别是数据编排和数据分析;ironic裸金属服务,trove数据库管理服务包含了sql数据库和nosql数据库
2.2 OpenStack逻辑架构图
OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通要管理权限的命令,每个服务之间均可通过公共API进行交互。
每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的。
至于一个服务进程之间的通信,则通过AMQP。
消息代理,服务的状态存储在数据库中。
2.3 Openstack组件之间的通信机制
基于AMQP——每个项目内部各个组件之间的通信。
基于SQL——各个项目内部的通信。
基于HTTP——通过各项目的API建立的通信。
通过Native API实现通信——OpenStack各组件和第三方软硬件之间的通信。
2.4 Openstack物理部署架构
openstack是分布式系统,必须从逻辑架构映射到具体的物理架构。将各个项目和组件以一定的方式安装到实际的服务器(节点)上,部署到实际的存储设备上,并通过网络将它们连接起来,就形成了openstack的物理部署架构。
openstack的部署方式:
单节点部署:所有的服务和组件都放在一个物理节点上,通常用于开发、学习、测试、验证。
多节点部署;所有的服务和组件分别再不同的物理节点上
下面对多节点部署作介绍
控制节点:管理openstack架构,又称为管理架构
网络节点:负责各节点之间的通信和交互
计算节点:承载实例负责具体需求的处理,主要负责虚拟机实例运行,为用户创建并运行虚拟机实例,并为虚拟机实例分配网络
存储节点:提供存储服务
网络节点(Neutron)的网络类型
提供者网络(Provider networks)
自服务网络(Self-service networks)