• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

OpenStack — Nova

武飞扬头像
_李少侠_
帮助1

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcbfkc
系列文章
更多 icon
同类精品
更多 icon
继续加载