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各模块协同工作的例子:虚机创建

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

 

3、Glance

3.1、Glance功能

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

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

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包括:

  1. A directory on a local file system(默认配置)
  2. GridFS
  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值