`
lynnkong
  • 浏览: 302877 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

【OpenStack】G版中关于Nova的Cell

阅读更多

本博客欢迎转发,但请保留原作者(新浪微博:@孔令贤HW;博客地址:http://blog.csdn.net/lynn_kong)信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

 

更新记录:
2013.3.7  新增关于AZ,Aggregate,Cell概念的手绘图

1      目标

1. 为了增加横向扩展以及分布式,大规模(地理位置级别)部署能力,但又不增加数据库和消息中间件的复杂度
2.
cell调度和主机调度隔离

2      简介

我们都熟悉Amazon EC2,他有一些基本概念:
》一个地理区域(Region)包含多个可用区域(Availability Zone)
Availability Zone相互之间物理隔离,一个Availability Zone的故障不会影响其他的使用
》客户端连接Region
》创建VM时,如果没有指定Availability Zone,调度算法会从Region中选择一个
》相反,如果指定了Availability Zone,则在其上创建VM

OpenStack
B版就基于Amazon的这种概念实现了Availability Zone。然后,又出现了Zone的概念:
》一个Zone就是一套独立的Nova部署环境
Zone之间无共享,相互隔离
D版,当出现Keystone之后,Zone的概念就被废弃掉了

而在G版,重新提出了”Cell”的概念,Cell之间的通信的可信的,基于AMQP协议。概括如下:
》每一个Cell中拥有独立的DBAMQP broker
》引入新的nova-cell服务
    -
消息路由
    -
调度(与主机调度不同,子Cell通过定时刷新将自己能力和资源上报给父Cell)
cell之间通信通过RPC
cells之间是树状结构
    -
顶层是API cell,不感知底层物理主机以及虚拟化
    -
cellnova-api服务
    -
cellquota概念(NoopQuota)

3      服务部署


 
API cell节点要部署nova-api对外提供统一服务,nova-cell负责与子cell之间通信;子cell节点统一要部署nova-cell,如果子cell直接接入虚拟化层,则还要部署nova-schedulernova-compute。消息通信如下:

上图是三个cell级联的情况,其中API Cell收到请求后,通过nova-cell提供的调度算法,通过消息队列将消息转发到Child Cell节点,在Child Cell节点做与API Cell同样的工作,选择一个Grandchild Cell并继续转发,在Grandchild节点上做真正的主机调度工作,选择主机创建虚拟机。

上面的情况下,Grandchild Cell需要将自己连接的资源信息定时上报给Child Cell以提供调度功能使用,同样Child Cell也要自己知道的资源信息上报给API Cell使用,这样,每层调度时只需拿自己掌握的资源信息即可,实现每层解耦。

4      配置

从目前的实现来看,在nova.conf中要提供几个配置项:
enable
:是否启用cell功能
name
:当前节点的cell名称
capabilities
:自定义的键值对信息(目前尚未使用)
此外,要配置每个cell节点的compute_api_classquota_driver,例如在API Cell节点需要配置:
compute_api_class=nova.compute.cells_api.ComputeCellsAPI
[cells]
name=api
enable=true
而在child cell节点,需要配置(compute_api_class默认配置为nova.compute.api.API)
quota_driver=nova.quota.NoopQuotaDriver
[cells]
enable=true
name=cell1

在使用前,还需要配置一些信息以便让cell之间相互识别并规定各自的角色,谁是谁的parent,谁是谁的child。因为cell之间通过AMQP协议通信,因此只需配置相互的AMQP信息即可。假如我们有三个cell,其中一个为parent cell(名称为api),其他两个为child cell(名称分别为cell1cell2)。则在parent cell节点上执行:
> nova-manage cell create --name=cell1 --cell_type=child --username=cell1_user --password=cell1_passwd --hostname=10.0.1.10 --port=5673 --virtual_host=cell1_vhost --woffset=1.0 --wscale=1.0
> nova-manage cell create --name=cell2 --cell_type=child --username=cell2_user --password=cell2_passwd --hostname=10.0.2.10 --port=5673 --virtual_host=cell2_vhost --woffset=1.0 --wscale=1.0
而在两个child cell节点上,分别执行:
> nova-manage cell create --name=api --cell_type=parent --username=api1_user --password=api1_passwd --hostname=10.0.0.10 --port=5672 --virtual_host=api_vhost --woffset=1.0 --wscale=1.0

5      关于Zone,Aggregate,Cell


 

  • 大小: 24.4 KB
  • 大小: 229.5 KB
  • 大小: 879.3 KB
分享到:
评论

相关推荐

    OpenStack之计算服务(Nova)

    Nova的组件架构包括nova-scheduler、nova-api、nova-compute、nova-conductor等模块,而Nova的单元管理模式则是将OpenStack中的计算节点分成若干小单元进行管理,每个单元又是若干计算节点的集合。

    osf-openstack-training-master.zip

    如何结合实际应用场景来对应OpenStack中的概念 ###手动OpenStack安装配置 Openstack部署架构讲解(3个VM) Keystone搭建 Glance搭建 Neutron搭建 Nova搭建 Dashboard 搭建 Swift搭建 Cinder搭建 ##OpenStack 自动...

    Nova安装配置(控制节点)-.docx

    【Nova安装配置(控制节点)】是OpenStack云计算平台中的核心组件之一,主要负责虚拟机实例的生命周期管理。以下是对整个配置过程的详细说明: 1. **创建Nova数据库及授权**: 在MySQL中,首先需要创建Nova所需的...

    OpenStack介绍-UStack.pdf

    1. Nova:Nova是OpenStack的计算组件,主要用于虚拟机管理,包括实例的创建、调度、管理工作等。Nova支持多种虚拟化技术,可以管理不同厂商的hypervisor。 2. Swift:Swift是OpenStack的存储组件,提供了一个可扩展...

    OpenStack Ocata 新特性介绍.docx

    虽然在Ocata中仅支持单cell架构,但在后续的Pike版本中,将会支持多cell架构,进一步提高服务的稳定性。 3. **Neutron as Default Network**: Neutron成为了默认的网络服务,提供了更强大的网络功能和灵活性。 4. ...

    云计算实验3 安装计算服务nova.doc

    其中,Nova是OpenStack的核心服务之一,主要负责处理实例生命周期的所有活动,包括启动、停止、重启、重建、迁移等操作。本实验旨在通过实际操作的方式,让学习者掌握Nova计算服务的安装和配置流程。 #### 实验目标...

    不同CPU型号热迁移问题.docx

    在Nova的日志文件`nova-compute.log`中,我们可以找到关于迁移失败的具体错误信息,比如"Live Migration failure: operation failed: guest CPU doesn't match specification: missing features: abm"。这里的"abm...

    Openstack企业级云服务架构.pptx

    聚焦必要的服务组件,OpenStack的核心服务包括Neutron(网络服务)、Nova(计算服务)、Cinder(块存储服务)、Keystone(认证服务)和Swift(对象存储服务)。此外,还有“大帐篷”服务,如Heat(orchestration)、...

    CSDN-Mitaka Update

    - **Nova**: OpenStack 中的核心组件之一,主要负责计算实例的生命周期管理。 #### 二、Nova REST API 的演变 - **V2.1 API**: - 自 Kilo 版本发布以来,默认 API。 - 在 Liberty 版本之后继续支持,但不再添加...

    OpenStack大规模部署详解

    Nova Cells则是在Grizzly版本引入的概念,旨在将计算资源分割为多个Cell,每个Cell都有独立的消息队列和数据库,以此解决扩展性问题。 针对大规模部署,有以下优化策略: 1. 使用独立的数据库和消息队列:Keystone...

    云计算实验4 检查cell和placement API.doc

    其中,Cell架构和Placement服务是OpenStack Nova组件中的两个重要特性,分别用于支持大规模部署和资源管理优化。 - **Cell架构**:在大规模部署场景下,OpenStack通过Cell架构来分层次地管理计算节点,使得系统能够...

    OpenStack与Ceph的整合

    Cells-Support: 现在大大增强了Cells的能力,具备了更强的调度选择和Cell内迁移能力;Query-Scheduler: Scheduler增加了查询能力,可以返回符合要求的Host列表;Volume-Features: 目前通过QEMU端支持卷限速,加密;...

    Libvirt创建虚拟机的xml中部分参数解析--Domain vcpu numa

    文档如《Nova_Scheduler及GuestNuma分析(JUNO).docx》可能提供了更多关于OpenStack NUMA功能的使用和分析。 对于其他提供的文档,如《如何手动配置PCI Passthrough.docx》,它可能涉及如何通过Libvirt将物理PCI设备...

Global site tag (gtag.js) - Google Analytics