目录

 

 

前文列表

Openstack组件部署 — Overview和前期环境准备
Openstack组建部署 — Environment of Controller Node
Openstack组件部署 — Keystone功能介绍与认证实现流程
Openstack组件部署 — Keystone Install & Create service entity and API endpoints
Openstack组件部署 — keystone(domain, projects, users, and roles)
Openstack组建部署 — Glance Install

前言

网上的查阅的资料鱼龙混杂、概念不明确、个性太强。所以想想还是可以翻译一篇关于Nova的官方文档吧,英文能力有限,望指正。:)

Compute service overview

官档:Use OpenStack Compute to host and manage cloud computing systems. OpenStack Compute is a major part of an Infrastructure-as-a-Service (IaaS) system. The main modules are implemented in Python.

OpenStack Compute interacts with OpenStack Identity for authentication; OpenStack Image service for disk and server images; and OpenStack dashboard for the user and administrative interface. Image access is limited by projects, and by users; quotas are limited per project (the number of instances, for example). OpenStack Compute can scale horizontally on standard hardware, and download images to launch instances.

Openstack Compute组件主要用于创建虚拟主机和管理云计算平台,Openstack是IaaS的重要组成部分,使用Python编程语言来实现主要的模块。

Openstack Compute能够与Openstack Identity service、Openstack Image service、Openstack dashboard等Openstack service进行交互。其中能够通过Identity serivce中的Projects和Users来限制对镜像资源的访问,quotas限制着每一个Project中包含的Openstack service资源(EG. instances的数量)。Openstack Compute可以在标准硬件中进行水平伸缩,并且可以下载镜像来启动虚拟机实例。

Nova 的组件

nova-api service

Accepts and responds to end user compute API calls. The service supports the OpenStack Compute API, the Amazon EC2 API, and a special Admin API for privileged users to perform administrative actions. It enforces some policies and initiates most orchestration activities, such as running an instance.

nova-api service能够接收和响应用户终端的Compute API调用。nova-api service支持Openstack Compute APIAmazon EC2 API,和一个特权用户用于执行管理操作的Admin API。除此之外nova-api service还能够强制实施一些策略和启动大多数进程,例如:运行一个实例。

nova-api-metadata service

Accepts metadata requests from instances. The nova-api-metadata service is generally used when you run in multi-host mode with nova-network installations.

nova-api-metadata service能够接收来自虚拟机实例的元数据请求,当你的nova-networkmulti-host模式下运行时,一般会同时运行nova-api-metadata service

nova-compute service

A worker daemon that creates and terminates virtual machine instances through hypervisor APIs. For example:

  • XenAPI for XenServer/XCP
  • libvirt for KVM or QEMU
  • VMwareAPI for VMware

Processing is fairly complex. Basically, the daemon accepts actions from the queue and performs a series of system commands such as launching a KVM instance and updating its state in the database.

nova-compute service是一个通过hypervisor APIs(虚拟化层API)来实现创建和终止虚拟机实例的守护进程,有如下hypervisor APIs

  • XenAPI for XenServer/XCP
  • libvirt for KVM or QEMU
  • VMwareAPI for VMware

nova-compute service的处理的过程相当复杂。基本上,nova-compute service会在queue中接收一个动作之后,执行一连串的系统指令。例如:启动一个KVM虚拟机实例和更新这些实例在数据库中的状态。

nova-scheduler service

Takes a virtual machine instance request from the queue and determines on which compute server host it runs.

nova-scheduler service会从queue中接收一个虚拟机实例的请求,并确定该实例能够运行在哪一台Compute server

nova-conductor module

Mediates interactions between the nova-compute service and the database. It eliminates direct accesses to the cloud database made by the nova-compute service. The nova-conductor module scales horizontally. However, do not deploy it on nodes where the nova-compute service runs.

nova-conductor module能够协调nova-compute servicedatabase之间的交互。nova-conductor避免了nova-compute servicedatabase的直接访问操作。nova-conductor模块能够进行水平伸缩。然而,不能够将nov-conductor部署在nova-compute service运行的Node上。

nova-cert module

A server daemon that serves the Nova Cert service for X509 certificates. Used to generate certificates for euca-bundle-image. Only needed for the EC2 API.

nova-cert module是一个Nova证书(X509 certificates)服务的服务器守护进程。该守护进程用于为euca-bundle-image生成证书,只有在使用EC2 API时,才需要这个守护进程。

nova-network worker daemon

Similar to the nova-compute service, accepts networking tasks from the queue and manipulates the network. Performs tasks such as setting up bridging interfaces or changing IPtables rules.

nova-network worker daemon类似于nova-compute service,从queue中接收网络任务,并且操纵这个网络。执行诸如:设置bridging interfaces或者改变IPtables rules之类的任务。

nova-consoleauth daemon

Authorizes tokens for users that console proxies provide. See nova-novncproxy and nova-xvpvncproxy. This service must be running for console proxies to work. You can run proxies of either type against a single nova-consoleauth service in a cluster configuration.

nova-consoleauth daemon为控制台代理(nova-novncproxynova-xvpvncproxy)提供的Users授予tokensnova-consoleauth service必须运行在控制台代理工作的时候。在集群配置中,你可以为单个nova-consoleauth service运行两种类型的控制台代理。

nova-novncproxy daemon

Provides a proxy for accessing running instances through a VNC connection. Supports browser-based novnc clients.

nova-novncproxy daemon提供一个通过VNC connection协议来访问正在运行中的虚拟机实例的代理服务。支持browser-based novnc client(基于浏览器的客户端)。

nova-xvpvncproxy daemon

Provides a proxy for accessing running instances through a VNC connection. Supports an OpenStack-specific Java client.

nova-xvpvncproxy daemon提供一个通过VNC connection来访问正在运行中的虚拟机实例的代理服务。支持一个OpenStack-specific Java client(Openstack特殊的Java客户端)。

nova-spicehtml5proxy daemon

Provides a proxy for accessing running instances through a SPICE connection. Supports browser-based HTML5 client.

nova-spicehtml5proxy daemon提供一个通过SPICE connection协议来访问正在运行中的虚拟机实例的代理服务。支持browser-based HTML5 client(基于浏览器的HTML5客户端)

nova-cert daemon

x509 certificates.

x509证书

nova client

Enables users to submit commands as a tenant administrator or end user.

nova client能够让Tenant管理员或用户终端提交指令。

The queue

A central hub for passing messages between daemons. Usually implemented with RabbitMQ, but can be implemented with an AMQP message queue, such as Zero MQ.

queue是守护进程之间传递信息的中心枢纽。通常使用RabbitMQ来实现,但是也可以使用AMQP消息队列来实现,例如:Zero MQ

SQL database

Stores most build-time and run-time states for a cloud infrastructure, including:

  • Available instance types
  • Instances in use
  • Available networks
  • Projects

Theoretically, OpenStack Compute can support any database that SQL-Alchemy supports. Common databases are SQLite3 for test and development work, MySQL, and PostgreSQL.

SQL database用于存储大多数云基础架构在编译时(build-time)和运行时(run-time)的状态。包括:

  • Available instance types 可用的虚拟机实例类型
  • Instances in use 使用中的虚拟机实例
  • Available networks 可用的网络
  • Projects 项目

从理论上来说,Openstack Compute能够支持任何类型的数据库。常见的数据库有:用于测试和开发的SQLite3、除此之外还有MySQLPostgreSQL