一、计算服务概念
OpenStack计算与OpenStack身份进行交互以进行身份验证;用于磁盘和服务器映像的OpenStack镜像服务;以及用于用户和管理界面的OpenStack Dashboard。镜像访问受到项目和用户的限制;每个项目的配额是有限的(例如,实例的数量)。OpenStack计算可以在标准硬件上横向扩展,并下载镜像到启动实例。
OpenStack Compute由以下几部分组成
Nova-api service
接受并响应终端用户计算API调用。该服务支持OpenStack Compute API。它执行一些策略,并发起大多数编排活动,例如运行一个实例。
nova-api-metadata service
接受来自实例的元数据请求。当您使用nova-network安装在多主机模式下运行时,通常使用nova-api-metadata服务。
nova-compute service
通过hypervisor api创建和终止虚拟机实例的工作者守护进程。
• XenAPI for XenServer/XCP
• libvirt for KVM or QEMU
• VMwareAPI for VMware
处理相当复杂。基本上,守护进程从队列中接受动作,并执行一系列系统命令,比如启动KVM实例并在数据库中更新其状态。
nova-placement-api service
跟踪每个提供者的库存和使用情况。
nova-scheduler service
从队列中取出一个虚拟机实例请求,并确定它运行的哪个计算服务器主机。
nova-conductor module
在nova-compute服务和数据库之间进行交互。它消除了由nova-compute服务创建的云数据库的直接访问。nova-导体模块水平地伸缩。但是,不要将其部署到nova-compute服务运行的节点上。
nova-consoleauth daemon
授权给控制台代理提供的用户令牌。参见nova-novncproxy和nova-xvpvncproxy。该服务必须运行控制台代理才能工作。在集群配置中,您可以在单个nova-慰藉eauth服务上运行任一类型的代理。
nova-novncproxy daemon
提供了通过VNC连接访问运行实例的代理。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy daemon
提供了通过SPICE连接访问运行实例的代理。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy daemon
提供了通过VNC连接访问运行实例的代理。支持一个特定于openstack的Java客户端。
The queue
在守护进程之间传递消息的中心集线器。通常使用RabbitMQ实现,也可以使用另一个AMQP消息队列来实现,比如ZeroMQ。
SQL database
为云基础设施存储大多数构建时和运行时状态,包括:
• Available instance types
• Instances in use
• Available networks
• Projects
理论上,OpenStack计算可以支持任何SQLAlchemy支持的数据库。通用数据库是用于测试和开发工作的SQLite3,MySQL、MariaDB和PostgreSQL。
本节描述如何在控制器节点上安装和配置计算服务,称为nova
二、Controller—基础配置
Controller节点
1.创建数据库
# mysql -uroot -p123456
MariaDB [(none)]> create database nova_api;
MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)]> grant all privileges on nova_api.* to 'nova'@'%' identified by '123456';
MariaDB [(none)]> create database nova;
MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)]> grant all privileges on nova.* to 'nova'@'%' identified by '123456';
MariaDB [(none)]> create database nova_cell0;
MariaDB [(none)]> grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by '123456';
MariaDB [(none)