Yikun

  • 主页
  • 文章
  • 项目
  • 关于我
所有分类 友情链接

Yikun

  • 主页
  • 文章
  • 项目
  • 关于我

[译]Nova System Architecture

Oct 15 2015

Nova系统架构

Nova is built on a shared-nothing, messaging-based architecture. All of the major nova components can be run on multiple servers. This means that most component to component communication must go via message queue. In order to avoid blocking each component while waiting for a response, we use deferred objects, with a callback that gets triggered when a response is received.

Nova建立在一个无共享,基于消息的架构。所有的nova主要组件都可以运行在不同的服务器。这就意味着大多数组件之间的通信必须通过消息队列。为了避免每个组件在等待响应时的阻塞,我们是用deferred对象,当一个响应接收时会触发相应的回调。

Nova recently moved to using a sql-based central database that is shared by all components in the system. The amount and depth of the data fits into a sql database quite well. For small deployments this seems like an optimal solution. For larger deployments, and especially if security is a concern, nova will be moving towards multiple data stores with some kind of aggregation system.

Nova最近正在迁移到一个基于SQL的中心数据库,系统中所有组件都共享一个数据库。大量的深度的数据非常适合存放在SQL数据库中。对于小型部署,这是一个最佳方案。对于大型部署,特别是非常看重安全的话,nova也将会进一步搬到不同集成系统中的多种数据库。

组件

下面将看到两种不同的架构:
qq20151015-0 2x

qq20151015-1 2x

  • DB: 基于SQL的数据存储
  • API: 组件接收HTTP请求,可以通过osl.messaging和HTTP来转换指令和通信
  • Scheduler: 决定哪个host获得某个instance
  • Network: 管理IP转发、网桥、vlans
  • Compute: 管理hypervisor和virtual machines的通信
  • Conductor: 处理需要调整(build/resize)的请求,作为数据库代理,或者处理对象的转换

While all services are designed to be horizontally scalable, you should have significantly more computes then anything else.

由于所有的服务都被设计为横向扩展的,你只需要更多的计算机就可以了。

赏

有收获再赏哦

支付宝
微信
  • Nova
  • OpenStack

扫一扫,分享到微信

微信分享二维码
[译]Scope of the Nova project
读《OpenStack设计与实现》
0 comments
Anonymous
Markdown is supported

Be the first person to leave a comment!

© 2021 Yikun
Hexo Theme Yilia by Litten
  • 所有分类
  • 友情链接

tag:

  • 随笔
  • Nova
  • OpenStack
  • C/C++
  • Git
  • Java
  • Cinder
  • Python
  • Nginx
  • 数据库
  • vim
  • 网络
  • 系统
  • 大数据
  • Linux
  • OpenSource
  • ARM

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 如何在上游贡献代码(Github篇)?

    2021-04-27

    #OpenSource

  • 大文件在Github和Gitee上传的建议

    2020-11-24

    #Git#OpenSource

  • 从数据压缩切入看MapReduce的全流程

    2020-08-20

    #大数据

  • 搭建Hadoop Yarn环境 (ARM)

    2020-08-15

    #大数据#ARM

  • 让压缩库ZSTD在ARM上更顺滑

    2020-05-20

    #OpenSource#ARM

  • 让Github Action在你自己的机器上跑起来

    2020-04-17

    #Git

  • 从Java Math底层实现看Arm与x86的差异

    2020-04-10

    #Java

  • Github Action入门指南

    2020-02-28

    #Git

  • 巧用Github Action同步代码到Gitee

    2020-01-17

    #Git

  • 源于鲲鹏,回归社区:GNU Glibc的ARM优化小记

    2019-12-30

    #ARM

  • OpenLab快速使用指南

    2019-04-12

    #OpenStack

  • [Placement深度探索] 共享、嵌套、分组模型深度解析

    2018-08-01

    #OpenStack

  • Python3内建函数扫盲

    2018-06-15

    #Python

  • Cell v2近期相关改进整理

    2018-06-06

    #Nova#OpenStack

  • oslo.db中的死锁重试机制优化

    2018-04-19

    #OpenStack#数据库

  • [Placement深度探索] Granular Resource Request Syntax

    2018-04-02

    #Nova#OpenStack

  • Nova Scheduler Team Meeting跟踪(三月)

    2018-03-31

    #Nova#OpenStack

  • Nova Scheduler Team Meeting跟踪(二月)

    2018-02-07

    #Nova#OpenStack

  • Nova Scheduler Team Meeting跟踪(一月)

    2018-02-01

    #Nova#OpenStack

  • Nova Scheduler Team Meeting跟踪

    2018-02-01

    #Nova#OpenStack

  • [Placement深度探索] Resource Provider中的并发控制机制

    2018-01-23

    #Nova#OpenStack

  • [Placement深度探索] Nested Resource Providers

    2017-12-26

    #Nova#OpenStack

  • [Placement深度探索] Get Allocation Candidates

    2017-12-25

    #Nova#OpenStack

  • 一个死锁问题的深入探究

    2017-12-13

    #Nova#OpenStack#Python

  • Nova调度相关特性理解与梳理

    2017-12-06

    #Nova#OpenStack

  • 跨Cell场景下查询的那些事儿

    2017-11-16

    #Nova#OpenStack

  • [译] An Update on the Placement API and Scheduler plans for Queens

    2017-10-25

    #Nova#OpenStack

  • OpenStack Nova虚拟机冷迁移流程解析

    2017-10-11

    #Nova#OpenStack

  • OpenStack Nova虚拟机创建流程解析

    2017-09-27

    #Nova#OpenStack

  • [译] Simpler Road to Cinder Active-Active

    2017-08-16

    #OpenStack#Cinder

  • 一次有关OpenStack请求的性能问题分析

    2016-07-22

    #OpenStack

  • 一致性哈希算法的理解与实践

    2016-06-09

    #系统

  • 理解Python中的“with”

    2016-04-15

    #Python

  • 存储数据包的一生

    2016-04-03

    #系统

  • OpenStack源码分析-Cinder中的调度机制

    2016-03-04

    #Cinder

  • OpenStack源码分析-Service启动流程

    2016-03-04

    #OpenStack#Cinder

  • OpenStack源码分析-挂载卷流程

    2016-03-04

    #Cinder

  • 优雅地调试OpenStack

    2016-02-22

    #OpenStack

  • OpenStack源码分析-Cinder删除卷流程

    2016-02-21

    #OpenStack#Cinder

  • OpenStack源码分析-Cinder创建卷流程

    2016-02-14

    #OpenStack#Cinder

  • 搭建OpenStack开发环境

    2016-02-09

    #OpenStack

  • 存储知识学习

    2016-02-03

    #OpenStack#Cinder

  • [译]Internationalization

    2016-01-22

    #Nova

  • [译]Virtual Machine States and Transitions

    2016-01-20

    #Nova

  • 2015,再见

    2016-01-01

    #随笔

  • Python3源码学习-整型

    2015-12-21

    #Python

  • Python3源码学习-类型

    2015-12-20

    #Python

  • Python3源码学习-编译Python源码

    2015-12-20

    #Python

  • Python3源码学习-对象

    2015-12-03

    #Python

  • 网络知识拾遗

    2015-11-23

    #网络

  • [译]Threading model

    2015-11-19

    #OpenStack

  • [译]Host Aggregates

    2015-10-17

    #Nova#OpenStack

  • [译]Scope of the Nova project

    2015-10-16

    #Nova#OpenStack

  • [译]Nova System Architecture

    2015-10-15

    #Nova#OpenStack

  • 读《OpenStack设计与实现》

    2015-10-08

    #OpenStack

  • OpenStack概览

    2015-10-04

    #OpenStack

  • 再见,北京

    2015-06-18

    #随笔

  • 一个简单的网络数据包工具——Packet Assistant

    2015-06-15

    #Python#网络

  • Spring IOC核心源码学习

    2015-05-28

    #Java

  • 学习awk和sed

    2015-05-23

    #Linux

  • 利用Shell进行Web日志分析

    2015-05-20

    #Linux

  • 重新学习Shell

    2015-05-19

    #Linux

  • Java CopyOnWriteArrayList工作原理及实现

    2015-04-28

    #Java

  • Git常用操作总结

    2015-04-24

    #Git

  • Java EnumMap工作原理及实现

    2015-04-23

    #Java

  • C语言中移位操作符优先级的坑

    2015-04-18

    #C/C++

  • Java ArrayDeque工作原理及实现

    2015-04-11

    #Java

  • Java TreeSet工作原理及实现

    2015-04-10

    #Java

  • Java LinkedHashSet工作原理及实现

    2015-04-09

    #Java

  • Java HashSet工作原理及实现

    2015-04-08

    #Java

  • Java PriorityQueue工作原理及实现

    2015-04-07

    #Java

  • Java TreeMap工作原理及实现

    2015-04-06

    #Java

  • Java LinkedList工作原理及实现

    2015-04-05

    #Java

  • Java ArrayList工作原理及实现

    2015-04-04

    #Java

  • 如何设计实现一个LRU Cache?

    2015-04-03

    #系统

  • Java LinkedHashMap工作原理及实现

    2015-04-02

    #Java

  • Java HashMap工作原理及实现

    2015-04-01

    #Java

  • Java集合框架

    2015-03-31

    #Java

  • 定时器管理实现与初探

    2015-03-08

    #C/C++#系统

  • 自增运算符的反汇编

    2015-02-08

    #C/C++

  • 搭建Git服务器

    2015-02-05

    #Git

  • 排序算法总结

    2014-11-20

  • nginx的连接池

    2014-04-17

    #Nginx

  • nginx建立连接过程分析

    2014-04-01

    #Nginx

  • nginx的事件主体分析

    2014-03-26

    #Nginx

  • nginx的事件初始化与框架

    2014-03-21

    #Nginx

  • 我的vim配置

    2014-03-19

    #vim

  • nginx中channel机制

    2014-03-16

    #Nginx

  • nginx启动流程分析

    2014-03-13

    #Nginx

  • JNI调试方法

    2013-02-27

    #Java

  • 岁月如梭, 我的2012

    2012-12-27

    #随笔

  • MarkDown格式备注

    2012-12-26

  • Hello World

    2012-12-21

    #随笔

  • Linux Record

    2012-12-06

  • 从实践中一路走来

    2012-11-17

    #随笔

  • 渐变

    2011-05-18

    #随笔

  • 很久很久

    2011-03-22

    #随笔

  • 写一篇日志

    2010-10-05

    #随笔

  • 静夕思

    2010-07-10

    #随笔