本系列文章同步发布於笔者网站
上一篇文章我们介绍了 Nova 的功能与其使用方法,本篇文章将会继续介绍 Nova 的架构
Nova 包含多个服务器进程 (process),每个进程执行不同的功能。 面向用户的界面是 REST API,而内部 Nova 的不同元件透过 RPC 来进行沟通运作。
API 服务器处理 REST 请求,这通常涉及资料库读/写、或是 RPC 消息发送到其他 Nova 服务,并生对应的 REST 回应 (response)。 RPC message 传递是通过 oslo.messaging 完成的,它是一个 OpenStack 元件共用的 RPC message 抽象层,让 OpenStack 元件可以不用在意底下 RPC 的实作。
大多数主要的 nova 元件都可以在多台服务器上运行,并且有一个 manager 来监听 RPC message,达到高可用性和附载平衡的目的。一个主要的例外是 nova-compute,它只在每一个其管理的 hypervisor 上运行单一个进程(使用 VMware 或 Ironic driver 时除外)。
Nova 的所有组件之间使用了一个逻辑上共享的中央资料库。然而,为了减轻升级时的负担,资料库是通过一个 object layer 进行沟通的,以确保升级後的控制平面 (control plane) 仍然可以与先前版本的 nova-compute 进行沟通。因此 nova-compute 通过 RPC 将所有 DB 请求代理到 nova-conductor 这个元件,关於其详细怎麽运作的可以参考这篇文章的 Objects 章节。
我们可以参考官方文件上的图示来了解 Nova 内部元件跟 OpenStack 其他元件的相互关系以及之间是如何沟通的:
我们可以整理出:
再来笔者介绍一下各个元件主要负责的功能
以上就是 Nova 整个架构面的技术介绍,如果有不懂的地方也可以在留言区询问。
到本篇为止就介绍完了 Nova 的整个架构以及其功能,下一篇会为大家带来 Keystone 的介绍
<<: Day 8 - Fun with HTML5 Canvas
Q: 为什麽别人的按钮点起来比较有感觉? A: 因为外国的月亮比较圆? 网页中常常会有很多可以点击...
结语 目前完成进度 登入 登出 朋友的邀请与拒绝和同意 新增聊天室 新增讯息 尚未完成 讯息显示 未...
前言 说明一下bid and ask是什麽,我们这边可以怎麽使用呢? 参考网站:[Bid and A...
前言 昨天我们使用预训练模型EfficientNet去提取一张表情的高阶特徵图(1280张特徵图),...
大家好,我是17King~ d(`・∀・)b 跟大家报告一个好消息! 我的书终於出版啦!!! (拍手...