Nova Compute 插件介绍 :

1.简介
OpenStack Compute (Nova),指的是一个特定的项目,该项目也被称为 Nova,它代表了任何工作负载的核心,管理正在运行的实例。
Nova 控制云计算架构,因此形成一个基础架构服务核心。Nova 也是 OpenStack 家族中最复杂的组件,主要因为它具有高度分散的性质和多个流程。
Nova 与其他几个 OpenStack 服务都有一些接口:它使用 Keystone 来执行其身份验证,使用 Horizon 作为其管理接口,并用 Glance 提供其镜像。它与 Glance 的交互最为密切,Nova 需要下载镜像,以便在加载镜像时使用。
在创建镜像之后,Nova 就开始起作用。它通常使用一个镜像来启动一个实例,或 VM。虽然它本身不包括任何虚拟化软件,但它可以通过与虚拟化技术有关联的驱动程序来集成许多常见的虚拟机管理程序。 启动实例涉及到识别并指定虚拟硬件模板(在 OpenStack 中被称为风格)。模板描述被分配给 VM 实例的计算(虚拟 CPU)、内存(RAM)和存储配置(硬盘)。默认的安装提供了五种风格,它们由管理员配置。
然后,Nova 通过将执行分配给某个特定的计算节点(在 OpenStack 中被称为主机)来调度被请求的实例。每个系统都必须定期报告其状态和能力,tonova-scheduler 使用数据来优化其分配。 Nova 还执行了其他一些函数,其中有许多函数与涵盖网络、安全性和管理的其他 OpenStack 项目有密切的交互。但 Nova 一般处理这些项目的特定于实例的方面,如连接和取消连接存储、分配 IP 地址,或拍摄运行实例的快照。
2.架构
Nova 采用的是无共享架构(图 1),这样所有的主要部件都可以在不同的服务器上运行。分布式设计依赖于一个消息队列来处理组件对组件的异步通信。
图 1. Nova 架构

Nova 将虚拟机的状态存储在一个基于结构化查询语言 (SQL) 的中央数据库中,所有的 OpenStack 组件都使用该数据库。该数据库保存了可用实例类型、网络(如果正在使用 nova-network)和项目的详细信息。用户可以使用 SQLAlchem​​y 支持的任何数据库。
3.组件
Web 仪表板
OpenStack Compute 的主用户界面是 Web 仪表板(OpenStack Horizon)。这是所有 OpenStack 模块的中央门户,为所有项目提供图形界面,并执行应用程序编程接口(API)调用来调用任何被请求的服务。
API
API 基于 Representational State Transfer。这是一个 Web Server Gateway Interface 应用程序,它将统一资源指示器路由到控制器类上的操作方法。该 API 接收 HTTP 请求,处理命令,然后将任务通过消息队列或 HTTP(在使用 ObjectStore 的情况下)委派给其他组件。Nova API 支持 OpenStack Compute API、Amazon Elastic Compute Cloud (Amazon EC2) API,以及面向特权用户的 Admin API。它会启动大部分协调活动和策略(如 Quota)。
Authorization Manager
每个 HTTP 请求都需要一个特定的身份验证凭据,它使用了提供商为 Compute 节点配置的身份验证架构。Authorization Manager 不是一个独立的二进制文件;相反,它是一个 Python 类,任何 OpenStack 组件都可以使用它进行身份验证。它暴露了用户、项目和角色的 API 授权使用情况,并与 OpenStack Keystone 进行通信,以便获得详细信息。实际的用户存储可以是数据库或者 Lightweight Directory Access Protocol(LDAP,轻量级目录访问协议)后端。
ObjectStore
ObjectStore 是一个基于 HTTP、基于对象的简单存储(如 Amazon Simple Storage Service),专门针对镜像。通常可以用 OpenStack Glance 取代它。
消息队列
消息队列为 OpenStack Nova 中的所有组件提供了相互通信、相互协调的一种手段。它就像所有 Nova 组件都共享和更新的一个中心任务列表。
所有这些组件都在一个非阻塞的基于消息的架构上运行,只要它们使用了相同的消息队列服务,就可以在相同或不​​同的主机上运行。它们使用了 Advanced Message Queuing Protocol,以面向回调的方式进行交互。在默认情况下,大多数分发实现了通过 Kombu 库访问的 RabbitMQ,但也提供了面向 Apache QPID 和 ZeroMQ 的插件。
Nova 组件通过使用 Pub/sub 的 Message Broker,使用远程过程调用实现彼此之间的通信。从技术角度讲,Nova 实现了 rpc.call(请求/响应;该 API 作为消费者)和 rpc.cast(单向;该 API 作为发布者)。 Nova API 和调度程序使用消息队列作为 Invoker,而 Network 和 Compute 充当了工人。Invoker 通过 rpc.call 或 rpc.cast 发送消息。Worker 模式从队列接收消息,并用适当的响应回答每个 rpc.call。
守护进程
对于 Nova,要考虑的两个主要守护进程是调度程序和计算守护进程。调度程序确定了为虚拟机请求分配哪个计算主机。它采用了上述的过滤和调度算法,并考虑多种参数,包括亲和性(与共置相关的工作负载)、反亲和性(分发工作负载)、可用区、核心 CPU 使用率、系统内存,以及自定义的 JavaScript Object Notation 时间表。请注意,它只在进行配置时做出此决定,不会重新分配正在运行的实例。
Nova 计算是一个工人守护进程,用于管理与虚拟机管理程序和虚拟机的通信。它从消息队列中检索其订单,并使用虚拟机管理程序的 API 执行虚拟机的创建和删除任务。它还在中央数据库中更新其任务状态。 为了获得完整性,一些守护进程将会覆盖原来分配给 Nova 的、正慢慢迁移到其他项目的功能。Network Manager 负责管理 IP 转发、网桥和虚拟局域网。它是一个工人守护进程,从消息队列读取与网络有关的任务。OpenStack Neutron 现在也涵盖这些功能,可以在适当的位置上选中它。
4.安装配置
各发行版和 OpenStack 版本的实际安装说明差别很大。一般来说,它们是作为分发的一部分提供的。不过,您必须完成相同的基本任务。本节让您了解此基本任务涉及的内容。
系统要求
OpenStack 依赖于一种 64 位 x86 架构;另外,它是为商用硬件而设计的,所以具有极低的系统要求。它可以在配有包含 8GB RAM 的单个系统上运行整套 OpenStack 项目,但对于任何重大的工作,官方建议是,对于运行网络、卷、API、调度程序和镜像服务的云控制器节点,至少要配有 12GB RAM、两个 2TB 硬盘和一个网络适配器。计算节点(运行虚拟实例)的负载将会有更大的差异,但对于简单的系统而言,一个四核 CPU、32GB 的 RAM 和 2Gb 的网络适配器就是一个良好的起点。
安装
在控制器和计算节点上安装所需的 Nova 包。软件包管理实用工具应该自动安装所有依赖关系。 为了进行说明,我已经提供了适用于 Ubuntu、Red Hat (Red Hat Enterprise Linux®、CentOS、Fedora) 和 openSUSE 的主要命令:
在计算节点上,运行:
Ubuntu: 运行以下命令:
sudo apt-get install nova-compute nova-networksudo apt-get install glance
Red Hat: 运行以下命令:
sudo yum install openstack-nova sudo yum install openstack-glance
openSUSE: 运行以下命令:
sudo zypper install openstack-nova openstack-glance
配置
Nova 配置包括几个文件,但最重要的是 nova.conf,它被安装在 /etc/nova 中。对于标准安装,一组默认选项就可以正常工作,但对于任何特殊要求,则需要编辑配置。
在使用 OpenStack 计划并部署计算工作负载时,需要记住的重点是:它不是一个虚拟化平台,而是一个管理抽象,它允许您使用多种可插拔技术来跨多个虚拟机管理程序协调工作流。OpenStack 只简化了这些组件的管理和集成。
参考资料:
IBM技术主题,http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-nova-glance/

快速链接进入
售前邮箱
售后邮箱
建议与意见
帮助中心
其他链接
关于我们
联系我们
解决方案
新闻中心
北京凌云动力科技有限公司
电话:010-56451797
座机:010-56451797    传真:010-56451797
邮箱:service@lingcloudpower.com
地址:北京市昌平区回龙观龙冠商务中心602