OpenStack 通用设计思路 - 每天5分钟玩转 OpenStack(25)

简介: API 前端服务 每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求。 以 Nova 为例,nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 Nova 能够提供的功能。

 

image143.5.png

API 前端服务

每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求。

以 Nova 为例,nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 Nova 能够提供的功能。 当客户需要执行虚机相关的操作,能且只能向 nova-api 发送 REST 请求。 这里的客户包括终端用户、命令行和 OpenStack 其他组件。

设计 API 前端服务的好处在于: 1. 对外提供统一接口,隐藏实现细节 2. API 提供 REST 标准调用服务,便于与第三方系统集成 3. 可以通过运行多个 API 服务实例轻松实现 API 的高可用,比如运行多个 nova-api 进程

Scheduler 调度服务

对于某项操作,如果有多个实体都能够完成任务,那么通常会有一个 scheduler 负责从这些实体中挑选出一个最合适的来执行操作。

在前面的例子中,Nova 有多个计算节点。 当需要创建虚机时,nova-scheduler 会根据计算节点当时的资源使用情况选择一个最合适的计算节点来运行虚机。

调度服务就好比是一个开发团队中的项目经理,当接到新的开发任务时,项目经理会评估任务的难度,考察团队成员目前的工作负荷和技能水平,然后将任务分配给最合适的开发人员。

除了 Nova,块服务组件 Cinder 也有 scheduler 子服务,后面我们会详细讨论。

Worker 工作服务

调度服务只管分配任务,真正执行任务的是 Worker 工作服务。

在 Nova 中,这个 Worker 就是 nova-compute 了。 将 Scheduler 和 Worker 从职能上进行划分使得 OpenStack 非常容易扩展:

  1. 当计算资源不够了无法创建虚机时,可以增加计算节点(增加 Worker)

  2. 当客户的请求量太大调度不过来时,可以增加 Scheduler

Driver 框架

OpenStack 作为开放的 Infrastracture as a Service 云操作系统,支持业界各种优秀的技术。 这些技术可能是开源免费的,也可能是商业收费的。 这种开放的架构使得 OpenStack 能够在技术上保持先进性,具有很强的竞争力,同时又不会造成厂商锁定(Lock-in)。

那 OpenStack 的这种开放性体现在哪里呢? 一个重要的方面就是采用基于 Driver 的框架。

以 Nova 为例,OpenStack 的计算节点支持多种 Hypervisor。 包括 KVM, Hyper-V, VMWare, Xen, Docker, LXC 等。

Nova-compute 为这些 Hypervisor 定义了统一的接口,hypervisor 只需要实现这些接口,就可以 driver 的形式即插即用到 OpenStack 中。 下面是 nova driver 的架构示意图


在 nova-compute 的配置文件 /etc/nova/nova.conf 中由 compute_driver 配置项指定该计算节点使用哪种 Hypervisor 的 driver

在我们的环境中因为是 KVM,所以配置的是 Libvirt 的 driver。

不知大家是否还记得我们在学习 Glance 时谈到: OpenStack 支持多种 backend 来存放 image。 可以是本地文件系统,Cinder,Ceph,Swift 等。

其实这也是一个 driver 架构。 只要符合 Glance 定义的规范,新的存储方式可以很方便的加入到 backend 支持列表中。

再后面 Cinder 和 Neutron 中我们还会看到 driver 框架的应用。

Messaging 服务

在前面创建虚机的流程示意图中,我们看到 nova-* 子服务之间的调用严重依赖 Messaging。 Messaging 是 nova-* 子服务交互的中枢。

以前没接触过分布式系统的同学可能会不太理解为什么不让 API 直接调用Scheduler,或是让Scheuler 直接调用 Compute,而是非要通过 Messaging 进行中转。 这里做一些解释。

程序之间的调用通常分两种:同步调用和异步调用。

同步调用

API 直接调用 Scheduler 的接口就是同步调用。 其特点是 API 发出请求后需要一直等待,直到 Scheduler 完成对 Compute 的调度,将结果返回给 API 后 API 才能够继续做后面的工作。

异步调用

API 通过 Messaging 间接调用 Scheduler 就是异步调用。 其特点是 API 发出请求后不需要等待,直接返回,继续做后面的工作。 Scheduler 从 Messaging 接收到请求后执行调度操作,完成后将结果也通过 Messaging 发送给 API。

在 OpenStack 这类分布式系统中,通常采用异步调用的方式,其好处是:

  1. 解耦各子服务 子服务不需要知道其他服务在哪里运行,只需要发送消息给 Messaging 就能完成调用。

  2. 提高性能 异步调用使得调用者无需等待结果返回。这样可以继续执行更多的工作,提高系统总的吞吐量。

  3. 提高伸缩性 子服务可以根据需要进行扩展,启动更多的实例处理更多的请求,在提高可用性的同时也提高了整个系统的伸缩性。而且这种变化不会影响到其他子服务,也就是说变化对别人是透明的。

在后面各章节,我们都能看到 Messaging 的应用。

Database

OpenStack 各组件都需要维护自己的状态信息。 比如 Nova 中有虚机的规格、状态,这些信息都是在数据库中维护的。 每个 OpenStack 组件在 MySQL 中有自己的数据库。

小结

Nova 是 OpenStack 中最重要的组件,也是很典型的组件。 Nova 充分体现了 OpenStack 的设计思路。 理解了这种思路,再来学习 OpenStack 的其他组件就能够举一反三,清晰容易很多。

我们在后面 Cinder 和 Neutron 的学习中还会回顾这些设计思路。

目录
相关文章
|
4月前
|
人工智能 数据挖掘 开发者
阿里云通义千问Qwen3.8-Max-Preview限时1折与夜间限时0.2折介绍:个企双版本优惠
通义千问Qwen3.8-Max-Preview是阿里云最新旗舰基座模型,参数量达2.4T,在代码工程、专业办公、数据分析等领域显著提升。Qoder CN推出限时优惠:常规时段(08:00-22:00)享1折,夜间时段(22:00-08:00)享0.2折,计费系数从0.5x降至0.05x/0.01x。活动自2026年7月19日起,覆盖Qoder全系产品及各档位用户,更新至最新版本并选择该模型即可自动生效。需注意专家团模式及子Agent调用不参与折扣。配合阿里云百炼Token Plan、轻量服务器等多项优惠,为开发者和企业提供低成本体验顶级AI模型的机会。
|
4月前
|
运维 小程序 前端开发
自建小程序平台全流程搭建科普:技术栈选型、云服务器运维与交易支付链路落地
越来越多本地生活、撮合电商、服务接单类创业者选择自主搭建小程序平台。一套可长期运营的小程序不只是前端页面开发,还包含前后端技术栈选型、云服务器部署运维、订单交易、支付清算、资金分账等整套体系。 本文从工程实践角度,分层科普小程序主流开发技术栈、云服务器搭建方案、线上常态化运维要点,重点拆解小程序交易支付完整链路,深入剖析多商户平台普遍遇到的原生支付 30% 分账限制、“二清” 合规两大痛点,分享行业成熟落地思路,供小程序开发者、技术负责人作为架构规划参考。关键词:小程序开发技术栈、云服务器部署、小程序交易架构、小程序支付、合规分账
538 2
|
5月前
|
人工智能 算法 知识图谱
AIVO与传统GEO的核心区别:从战术适配到全域认知治理
本文厘清AI时代品牌可见度演进路径:SEO失效催生过渡方案GEO(生成式引擎优化),聚焦内容被AI“检索到”;而AIVO(AI可见度优化)作为其全面升级,转向治理品牌在AI认知体系中的“可信任存在”。二者本质差异在于——GEO优化内容可检索性,AIVO治理实体可认知性。AIVO以知识图谱共生为基,通过数字身份构建、权威信源锚定与PSOS™量化体系,实现跨模型、稳曝光、低幻觉、可衡量的全域品牌治理,是企业布局AI未来的战略必需。(239字)
434 1
|
5月前
|
人工智能 安全 算法
GEO 行业大清洗:倒闭的不是公司,是整个行业的投机小聪明
本文深度剖析GEO行业2026年集体暴雷的根源:AI技术迭代彻底颠覆旧有商业逻辑。指出虚假繁荣源于信息差红利,而今算法升级、监管加码与品牌认知觉醒共同终结“铺量套利”模式。文章穿透表象,从商业本质、技术底层、人性痛点、产业终局四维拆解,宣告低端中介退场,真GEO已升级为以AI认知基建、品牌信用沉淀为核心的高价值赛道。(239字)
|
7月前
|
人工智能 自然语言处理 安全
2026 最新版 OpenClaw 极速安装,Windows 免配置懒人专属教程(包含新安装包)
2026 全新升级的 OpenClaw 懒人一键安装包,省去传统繁琐的部署步骤,无需手动配置环境变量、无需下载额外插件,全程自动化处理,几分钟就能完成安装与汉化,真正实现下载即装、装好即用,高效省心不浪费时间。
|
存储 算法 关系型数据库
向量数据库深度剖析:核心优劣势 + 适用场景,避开 RAG 落地的选型坑
本文深度剖析向量数据库:揭示其在RAG系统中实现语义检索的核心价值与六大优势,直面模型依赖强、模糊匹配、硬件成本高、不支持事务等五大劣势,并给出精准选型指南与落地避坑策略,助你选对工具、用好RAG。
|
10月前
|
机器学习/深度学习 存储 人工智能
破解 AI 智能体 “浮光行为”:从底层逻辑到企业级落地的系统性优化方案
随着AI智能体迈向企业级落地,浮光行为成为核心挑战:表面逻辑通顺却偏离任务目标。其根源在于Transformer架构在长上下文中的注意力稀释、KV缓存噪声累积与推理链断裂,导致任务死循环、误调用高风险工具等问题。通过动态记忆管理、双Agent校验架构与结构化思维链等系统性方案,可有效抑制该现象。掌握这些技术是AI Agent搭建师实现从Demo到生产跨越的关键,也是职业进阶的核心竞争力。未来将向具备自我纠偏能力的元认知智能体演进。
468 3
|
前端开发 JavaScript 测试技术
如何制作网页
创建自己的网站涉及多个步骤,从确定主题到最终测试和发布。本文详细介绍了每个步骤:首先明确网站目的和受众;其次设计直观易用的布局;选择符合主题的颜色和字体;撰写清晰简洁的内容;优化加载速度;全面测试功能和兼容性;选择托管服务并注册域名;最后通过SEO、社交媒体和广告进行推广。注意事项包括关注用户体验、学习基本编码知识,并考虑网站的扩展性和可维护性。遵循这些步骤,你将能创建一个美观且实用的网站。
1971 0

热门文章

最新文章