首页 > 分享 > OpenStack架构分析

OpenStack架构分析

1、总体架构

下图是OpenStack各Services之间的相互关系。

Nova:管理VM的生命周期

Neutron:为其它组件提供网络连接服务,负责创建和管理L2、L3网络。

Glance:管理VM镜像

Cinder:提供块存储服务

Keystone:为其它组件提供认证和权限管理服务

Ceilometer:提供监控告警和计量计费服务

Horizon:为用户提供一个基于Web的自服务Portal

Swift:提供对象存储服务

Trove:提供数据库服务

Ironic:提供裸金属管理服务

Heat:提供资源编排能力

Sahara:提供在OpenStack上构建大数据服务的能力

下图是各Services的组件及相互关系。

下图是部署Openstack所需要的硬件主机要求。

Controller Node

控制器节点为核心节点,运行身份服务,映像服务,计算的管理部分,网络的管理部分,各种网络代理和仪表板。它还包括支持服务,如SQL数据库,消息队列和NTP。

块存储,对象存储,编排和遥测服务的一部分为控制器节点的可选配置。

Compute Node

计算节点为核心节点,运行Nova的Compute部分。可以部署多个计算节点。

Block Storage Node

块存储节点为可选节点,包含块存储和共享文件系统服务为虚机提供磁盘。可以部署多个块存储节点。

Object Storage Node

对象存储节点为可选节点,包含对象存储服务用于存储帐户,容器和对象的磁盘。服务需要两个节点,可以部署多个对象存储节点。

下图为各服务组件部署总揽:

2、Nova

2.1、Nova功能

Nova是OpenStack最核心的Service,负责维护和管理云环境中的计算资源。主要有如下功能:

虚拟机生命周期管理

虚拟机资源动态调整

虚拟机迁移

主机管理

集群管理

密钥对管理

2.2、Nova架构

nova-api

接收和响应客户的 API 调用。

除了提供 OpenStack 自己的API,nova-api 还支持 Amazon EC2 API和特殊管理API。

nova-scheduler

虚机调度服务,负责决定在哪个计算节点上运行虚机

nova-compute

管理虚机的核心服务,通过调用 Hypervisor API 实现虚机生命周期管理。

Hypervisor

常用的 Hypervisor 有 KVM,Xen, VMWare,Hyper-V,Docker,LXC 等

nova-conductor

nova-compute 经常需要更新数据库,比如更新虚机的状态。

出于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor。

nova-console

用户可以通过多种方式访问虚机的控制台:

nova-novncproxy,基于 Web 浏览器的 VNC 访问

nova-spicehtml5proxy,基于 HTML5 浏览器的 SPICE 访问

nova-xvpnvncproxy,基于 Java 客户端的 VNC 访问

nova-consoleauth

负责对访问虚机控制台提供 Token 认证

nova-cert

提供 x509 证书支持

Database

Nova 会有一些数据,比如虚机构建时间和运行时状态信息,需要存放到数据库中,一般使用 MySQL。

Message Queue

Nova 包含众多的子服务,这些子服务之间需要相互协调和通信。为解耦各个子服务,Nova 通过 Message Queue 作为子服务的信息中转站。OpenStack 默认是用 RabbitMQ 作为 Message Queue。

2.3、Nova部署方案

在控制节点上部署nova-api、nova-scheduler、nova-console、Database、Message Queue、nova-cert、nova-conductor和nova-consoleauth组件;

在计算节点上部署 Hypervisor和nova-compute组件。

2.4、Nova各模块协同工作的例子:虚机创建

客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我创建一个虚机” API 对请求做一些必要处理后,向 Messaging(RabbitMQ)发送了一条消息:“让 Scheduler 创建一个虚机” Scheduler(nova-scheduler)从 Messaging 获取到 API 发给它的消息,然后执行调度算法,从若干计算节点中选出节点 A Scheduler 向 Messaging 发送了一条消息:“在计算节点 A 上创建这个虚机” 计算节点 A 的 Compute(nova-compute)从 Messaging 中获取到 Scheduler 发给它的消息,然后在本节点的 Hypervisor 上启动虚机。 在虚机创建的过程中,Compute 如果需要查询或更新数据库信息,会通过 Messaging 向 Conductor(nova-conductor)发送消息,Conductor 负责数据库访问。

3、Glance

3.1、Glance功能

Glance提供的是Image Service,具体功能如下:

提供REST API让用户能够查询和获取镜像及元数据 支持多种存储方式存储镜像,包括普通文件系统、Swift、Amazon S3等等 支持快照功能。例如,对虚拟机实例进行快照操作,以创建新的镜像

3.2、Glance架构

glance-api

glance-api是系统后台运行的服务进程。对外提供REST API,响应image查询、获取和存储等操作请求。如果请求与image metadata相关,它会把请求转发给glance-registry;如果请求与image自身存取相关,则把请求转发给该image的store backend。

glance-registry

glance-registry负责处理和存取 image 的 metadata,例如 image 的大小和类型。Glance支持的image格式包括:Raw、vhd、vmdk、VDI、ISO、QCOW2、aki、ari、ami。

database

Image的metadata保存在database中,默认使用MySQL。

Glance-Store

Glance自己并不存储image,真正的image存放在backend中。

Glance支持的backend包括:

A directory on a local file system(默认配置) GridFS Ceph RBD Amazon S3 Sheepdog OpenStack Block Storage (Cinder) OpenStack Object Storage (Swift) VMware ESX

3.3、Glance部署

Glance的所有组件都部署在控制节点上。

4、Cinder

4.1、Cinder功能

相关知识

学习 OpenStack 的方法论
云原生平台与架构实践
【混合云架构】混合云的设计与实现
数据中心网络架构浅谈(一)
云平台搭建选型:openstack+kvm还是k8s+docker ?
全栈专属云
私有云的类型有哪些?
博云创始人花磊:私有云市场方兴未艾,三年后会出现行业洗牌
云服务平台架构
在OpenStack上搭建电子商城系统

网址: OpenStack架构分析 https://m.huajiangbk.com/newsview2484553.html

所属分类:花卉
上一篇: 云计算架构规划中五个问题
下一篇: 花指令在云计算应用研究