热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

OpenStack-Gizzly-nova-cells官方文档翻译

nova-cells官方的英文文档,为了以后好查阅写成中文(英语能力不好)cells的功能允许用户以更分散的方式去扩展OpenStack计算云而无需使用复杂的技术,比如数据库和消息队列的集群。它的目的是支持非常大规模的部署。当启用了此功能,在OpenStack计算云中的

nova-cells官方的英文文档,为了以后好查阅写成中文(英语能力不好)

    cells的功能允许用户以更分散的方式去扩展OpenStack计算云而无需使用复杂的技术,比如数据库和消息队列的集群。它的目的是支持非常大规模的部署。

    当启用了此功能,在OpenStack计算云中的主机被划分为组称为cells。cells可以被配置成树形结构。顶层的cell的主机应该运行nova-api服务,但是没有nova-compute服务。每一个childcell在常规的计算云中应该运行除了nova-api之外的所有nova-*类型的服务。可以认为,作为正常的计算部署的cells,每一个cell都有他自己的数据库服务器和消息队列的代理。    

    nova-cells服务负责cells之间的沟通和为一个新的实例选择一个cell。所有的cell都需要这个服务。cells之间的通信是可插拔的,唯一的选择就是通过RPC进行通信实现。    

    cells的调度是独立于主机调度的。nova-cells首先要找到一个cell(目前的选择是随机的,在未来的版本当中将会添加过滤/称重功能和可以基于广播的容量/能力的决策)。一旦一个cell被选中并且一个新的生成请求被送达到nova-cells服务,他会被发送到那个cell的主机调度中并且生成过程作为没有的cells。

Cell的配置选项

cells的功能在默认情况下是禁用的。所有的cell相关的配置选项在nova.conf中的[cells]中。目前支持下列选项:

enable

    设置为True开启cell功能,默认情况下是关闭的。

name

    当前cell的名称。对于每一个cell必须是唯一的。

capabilities

    列出任意的key=value对当前的cell定义功能。这些被发送到parent cells上,但是直到在filter/weight体系中添加之前,不被用于调度中。

call_timeout

    cells之间呼叫答复最长需要多久时间。

配置API  cell(最高级别的)

compute api class必须在API cell中被改变,这样请求就可以代理通过nova-cells正确的到达cell。在API cell中的nova.conf中添加以下内容:

[DEFAULT]

compute_api_class=nova.compute.cells_api.ComputeCellsAPI

...

[cells]

enable=True

name=api

配置child cells

在child cells中对nova.conf添加如下内容,在每一个cells中更换name后的cell1。

[DEFAULT]

# Disable quota checking in childcells.  Let API cell do it exclusively.

quota_driver=nova.quota.NoopQuotaDriver

[cells]

enable=True

name=cell1

配置每一个cell中的数据库

    在服务上线之前,需要通过cell的相关信息配置每一个cell的数据库。特别是,API cell需要知道他的直系children,并且这些child cells需要知道他们的直系代理。所需的信息是RabbitMQ服务器为特定的cell的凭证。

    使用nova-manage cell create命令为每一个cell添加信息到数据库中:

$ nova-manage cell create -h

Options:

 -h, --help            显示帮助信息

 --name=         新cell的名称

 --cell_type=

cell的类型,是parent还是child

 --username=

                  这个cell的消息代理的名称

 --password=

                  这个cell的消息代理的密码

 --hostname=

                  这个cell的消息代理的地址

 --port= 

                  这个cell的消息代理的端口号

 --virtual_host=

                  这个cell的消息代理的虚拟主机

 --woffset=

 --wscale=

一个例子,假设我们有一个名为api的API cell和一个名为cell1的child cell。在api cell中,RabbitMQ服务的信息如下:

rabbit_host=192.168.100.6

rabbit_port=5672

rabbit_username=api_user

rabbit_password=api_passwd

rabbit_virtual_host=api_vhost

在名为cell1的child cell中,RabbltMQ服务的信息如下:

rabbit_host=192.168.100.7

rabbit_port=5673

rabbit_username=cell1_user

rabbit_password=cell1_passwd

rabbit_virtual_host=cell1_vhost

我们需要在API cell的机器上作为root用户执行命令:

# nova-manage cell create --name=cell1--cell_type=child --username=cell1_user --password=cell1_passwd --hostname=192.168.100.6--port=5673 --virtual_host=cell1_vhost --woffset=1.0 --wscale=1.0

为所有的child cells重复之上的所有操作。

在child cell中,我们需要作为root用户执行以下命令:

# nova-manage cell create --name=api--cell_type=parent --username=api1_user --password=api1_passwd --hostname=192.168.100.6--port=5672 --virtual_host=api_vhost --woffset=1.0 --wscale=1.0

目前遇到的问题:

我是在G版本中控制节点作为api,计算节点作为child,按照上述配置计算节点上的nova-compute无法启动,文档中说在child上需要运行除了nova-api之外的所有nova服务?无法启动是否因为有相关的组件没有在计算节点上运行?

RabbitMQ的相关信息是在nova.conf中配置的,如果按照文档所说,两台机器的rabitMQ的信息是不同的,可在OpenStack中控制节点和计算节点的nova.conf中的rabbit_host是相同的,需要指向控制节点,那如果按照cells的文档搭建,是否需要两台机器的RabbitMQ都配置?

希望大家指教。


推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。直接上代码usingQiniu.IO;usingQiniu.IO.Resumable;usingQiniu.RPC; ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • java布尔字段用is前缀_POJO类中布尔类型的变量都不要加is前缀详解
    前言对应阿里巴巴开发手册第一章的命名风格的第八条。【强制】POJO类中布尔类型的变量都不要加is前缀,否则部分框架解析会引起序列化错误。反例:定义为基本 ... [详细]
  • Hadoop 源码学习笔记(4)Hdfs 数据读写流程分析
    Hdfs的数据模型在对读写流程进行分析之前,我们需要先对Hdfs的数据模型有一个简单的认知。数据模型如上图所示,在NameNode中有一个唯一的FSDirectory类负责维护文件 ... [详细]
  • 定义#definePCAP_OPENFLAG_PROMISCUOUS1    定义适配器是否必须进入混杂模式。#definePCAP_OPENFLAG_DATATX_UDP2    ... [详细]
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
author-avatar
范范范荣浩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有