ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenStack — Nova

2022-01-29 19:32:01  阅读:200  来源: 互联网

标签:compute 虚拟机 VM nova 实例 Nova OpenStack 节点


文章目录

Nova

Nova是OpenStack最核心的服务模块,负责管理和维护云计算环境的计算资源,负责整个云环境虚拟机生命周期的管理。

Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。

所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等),Nova还需要keystone、glance、neutron、cinder和swift等其他服务的支持,能与这些服务集成,实现如加密磁盘、裸金属计算实例等。

Nova架构

在这里插入图片描述

  • API:用于接收HTTP请求、转换命令、通过消息队列或HTTP与其他组件通信。

  • Conductor:处理需要协调(构建虚拟机或调整虚拟机大小)的请求,充当数据库代理或者处理对象转换。

  • Scheduler:用于决定哪台计算节点承载计算实例。

  • Compute:管理虚拟机管理器与虚拟机之间通信。

  • DB:用于数据存储的SQL数据库,通常是MariaDB。

Nava组件

nova-api

nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 Nova 能够提供的功能。 当客户需要执行虚机相关的操作,能且只能向 nova-api 发送 REST 请求。

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

nova-compute

nova-compute 在计算节点上运行,负责管理节点上的实例。OpenStack 对实例的操作,最后都是交给 nova-compute 来完成。nova-compute 与 Hypervisor 一起实现 OpenStack 对实例生命周期的管理。
在这里插入图片描述

nova-compute 的功能可以分为两类:

  • 定时向 OpenStack 报告计算节点的状态

    每隔一段时间,nova-compute 就会报告当前计算节点的资源使用情况和 nova-compute 服务状态。这样OpenStack 就能得知每个计算节点的 vcpu、ram、disk 等信息。nova-scheduler 的很多 Filter 才能根据计算节点的资源使用情况进行过滤,选择符合 flavor 要求的计算节点。

  • 实现实例生命周期的管理

    OpenStack 对实例最主要的操作都是通过 nova-compute 实现的,包括实例的启动、关闭、重启、暂停、恢复、删除、调整实例大小、迁移、创建快照等。

nova-conductor

为计算节点提供数据库访问支持。

nova-compute服务和数据库之间的中间件。

  • 实现更高的系统安全性

    在 OpenStack 的早期版本中,nova-compute 可以直接访问数据库,但这样存在非常大的安全隐患。因为 nova-compute 这个服务是部署在计算节点上的,为了能够访问控制节点上的数据库,就必须在计算节点的 /etc/nova/nova.conf 中配置访问数据库的连接信息。如果任意一个计算节点被黑客入侵,都会导致部署在控制节点上的数据库面临极大风险。

    为了解决这个问题,从 G 版本开始,Nova 引入了一个新服务 nova-conductor,将 nova-compute 访问数据库的全部操作都放到 nova-conductor 中,而且 nova-conductor 是部署在控制节点上的。这样就避免了 nova-compute 直接访问数据库,增加了系统的安全性。

  • 实现更好的系统伸缩性

    nova-compute 与 nova-conductor 是通过消息中间件交互的。这种松散的架构允许配置多个 nova-conductor 实例。在一个大规模的 OpenStack 部署环境里,管理员可以通过增加 nova-conductor 的数量来应对日益增长的计算节点对数据库的访问。

nova-scheduler

将创建新虚拟机的请求分发到正确的节点。

当创建实例时,用户会提出资源需求,例如 CPU、内存、磁盘各需要多少。OpenStack 将这些需求定义在 flavor 中,用户只需要指定用哪个 flavor 就可以了。nova-scheduler 会按照 flavor 去选择合适的计算节点。

FilterScheduler调度过程分为两步:

  • 通过过滤(filtering)选择满足条件的计算节点。
  • 通过权重计算(weighting)选择在最优(权重值最大)的计算节点上创建实例。

nova-novncproxy

为浏览器提供VNC代理,允许VNC控制台访问虚拟机。

创建虚拟机流程

Admin Keystone nova_api nova_scheduler nova_compute nova_conductor glance neutron Cinder hypervisor 创建VM申请 获得token 创建VM请求 + token 验证token 通过验证 创建VM数据库记录 请求创建虚拟机 计算出符合虚拟机创建的主机 更新相应虚拟机的物理机信息 请求创建VM 获取虚拟机信息 返回虚拟机信息 请求VM所需镜像+token 返回VM镜像信息 请求VM所需网络+token 返回VM网络信息 请求VM所需存储+token 返回VM存储信息 创建VM Admin Keystone nova_api nova_scheduler nova_compute nova_conductor glance neutron Cinder hypervisor

标签:compute,虚拟机,VM,nova,实例,Nova,OpenStack,节点
来源: https://blog.csdn.net/weixin_45804031/article/details/122746737

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有