4、Compute Service(计算服务)

1、概述

使用OpenStack Compute来托管和管理云计算系统。OpenStack Compute是基础架构即服务(IaaS)系统的主要部分。主要模块在Python中实现。

OpenStack Compute与OpenStack Identity进行交互以进行身份​​验证; 和OpenStack Image交互以进行磁盘和服务器镜像管理; 和OpenStack dashboard交互以提供用户和管理界面的接口。镜像访问受到项目和用户的限制; 每个项目的配额有限(例如数量)。OpenStack Compute可以在标准硬件上水平扩展,并下载镜像以启动实例。

OpenStack Compute由以下几个方面组成:

nova-api  服务
接受并响应最终用户的计算API调用。该服务支持OpenStack Compute API,Amazon EC2 API和特殊的Admin API,用于特权用户执行管理操作。它执行一些策略并启动大多数业务流程活动,例如运行一个实例。
nova-api-metadata  服务
接受来自实例的元数据请求。 nova-api-metadata  当您在多主机模式下运行 nova-network 安装时,通常使用该服务 。
nova-compute  服务

通过虚拟机管理程序API创建和终止虚拟机实例的工作程序守护程序。例如:

  • 适用于XenServer / XCP的XenAPI
  • KVM或QEMU的libvirt
  • 适用于VMware的VMwareAPI

处理相当复杂。基本上,守护程序接受队列中的操作,并执行一系列系统命令,例如启动KVM实例并更新数据库中的状态。

nova-scheduler  服务
从队列获取虚拟机实例请求,并确定运行哪个计算服务器主机。
nova-conductor  模
中介 nova-compute 服务和数据库之间的交互。它消除了对 nova-compute 服务器所做的云数据库的直接访问。该 nova-conductor 模块水平缩放。但是,请勿将其部署到 nova-compute 运行服务的节点上 。
nova-cert  模型
为X509证书提供Nova Cert服务的服务器守护程序。用于生成证书  euca-bundle-image 。只需要EC2 API。
nova-network worker  守护进程
nova-compute 服务类似,接受队列中的联网任务并操纵网络。执行诸如设置桥接接口或更改IPtables规则等任务。
nova-consoleauth  守护进程
为控制台代理提供的用户授权令牌。看到  nova-novncproxynova-xvpvncproxy 。此服务必须运行才能使控制台代理工作。您可以在集群配置中针对单个nova-consoleauth服务运行任一类型的代理。
nova-novncproxy  守护进程
提供通过VNC连接访问运行实例的代理。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy  守护进程
提供通过SPICE连接访问运行实例的代理。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy  守护进程
提供通过VNC连接访问运行实例的代理。支持特定于OpenStack的Java客户机。
nova-cert  守护进程
x509证书。
nova  客户
允许用户作为租户管理员或最终用户提交命令。
The queue
在守护进程之间传递消息的中心枢纽。通常用 RabbitMQ 实现,也可以用另一个AMQP消息队列来实现,如 ZeroMQ
SQL数据库

存储云基础架构的大部分构建时间和运行时状态,包括:

  • 可用的实例类型
  • 正在使用的实例
  • 可用网络
  • 项目

理论上,OpenStack Compute可以支持SQL-Alchemy支持的任何数据库。公共数据库是用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。

2、环境准备 2.1、创建数据库(,服务凭据和API端点)。 2.1.1、连接数据库
# mysql -u root -p

2.1.2、创建nova_apinova数据库

MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE DATABASE nova;
Query OK, 1 row affected (0.00 sec)

2.1.3、授予数据库访问权限

MariaDB [(none)]> grant all privileges on nova_api .* to 'nova'@'localhost' identified by 'daemon';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova_api .* to 'nova'@'%' identified by 'daemon';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all privileges on nova .* to 'nova'@'localhost' identified by 'daemon';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova .* to 'nova'@'%' identified by 'daemon';
Query OK, 0 rows affected (0.00 sec)

2.2、输入admin凭据以访问仅管理CLI命令

# source admin-openrc 

2.3、创建服务凭据

2.3.1、创建nova用户

# openstack user create --domain default \
>   --password-prompt nova
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 037784f488424d98aa48586caf0813cf |
| name                | nova                             |
| password_expires_at | None                             |
+---------------------+----------------------------------+

2.3.2、将admin角色添加到nova用户

# openstack role add --project service --user nova admin

2.3.3、创建nova服务实体

# openstack service create --name nova \
>   --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 512ecd99568448178f7beb16720bc7ba |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

2.4、创建Compute服务API端点

# openstack endpoint create --region RegionOne \
>   compute public http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 0b3eaec2ea364ba1b3c1e6b67c99847f          |
| interface    | public                                    |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 512ecd99568448178f7beb16720bc7ba          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
# openstack endpoint create --region RegionOne \
>   compute internal http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 9a8ead97c6f04bb8a88991fa8425e3a0          |
| interface    | internal                                  |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 512ecd99568448178f7beb16720bc7ba          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+
# openstack endpoint create --region RegionOne \
>   compute admin http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 7d2825d796944fc3a6e8155a7c2b75c9          |
| interface    | admin                                     |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | 512ecd99568448178f7beb16720bc7ba          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+

3、在控制节点上安装和配置compute服务

3.1、安装软件包

yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler

3.2、配置(/etc/nova/nova.conf)

3.2.1、在[DEFAULT]节中,仅启用计算和元数据API

[DEFAULT]
...
enabled_apis = osapi_compute,metadata

3.2.2、在[api_database][database]部分,配置数据库访问

[api_database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova

3.2.3、在[DEFAULT]节中,配置RabbitMQ 消息队列访问

[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

3.2.4、在[DEFAULT][keystone_authtoken]部分,配置身份服务访问

[DEFAULT]
...
auth_strategy = keystone

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS

NOTICE:注释掉或删除该[keystone_authtoken]部分中的任何其他选项 。

3.2.5、在[DEFAULT]节中,配置my_ip选项以使用控制器节点的管理接口IP地址

[DEFAULT] 
... 
my_ip  =  10.0.0.11

3.2.6、在[DEFAULT]节中,启用对网络服务的支持

[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

Notice:默认情况下,Compute使用内部防火墙驱动程序。由于网络服务包含防火墙驱动程序,
因此您必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序,
禁用Compute防火墙驱动程序。

3.2.7、在[vnc]节中,配置VNC代理以使用控制器节点的管理接口IP地址

[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

3.2.8、在[glance]节中,配置Image Service API的位置

[glance]
...
api_servers = http://controller:9292

3.2.9、在[oslo_concurrency]节中,配置锁定路径

[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

3.3、完成以上配置之后,填充数据库

# su -s /bin/sh -c "nova-manage api_db sync" nova
# su -s /bin/sh -c "nova-manage db sync" nova

忽略此输出中的任何废弃消息。

3.4、完成安装,设置启动和自启动

# systemctl enable openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service
# systemctl start openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service

4、在计算节点上安装和配置Compute服务

4.1、安装和配置组件(/etc/nova/nova.conf)

4.1.1、安装软件包

# yum install openstack-nova-compute

4.1.2、配置组件

4.1.2.1、在[DEFAULT]部分中,仅启用计算和元数据API

[DEFAULT]
...
enabled_apis = osapi_compute,metadata

4.1.2.2、在[DEFAULT]节中,配置RabbitMQ 消息队列访问

[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

4.1.2.3、在[DEFAULT][keystone_authtoken]部分,配置身份服务访问

[DEFAULT]
...
auth_strategy = keystone

[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS

注释掉或删除该[keystone_authtoken]部分中的任何其他选项 。

4.1.2.4、在[DEFAULT]节中,配置my_ip选项

[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

替换MANAGEMENT_INTERFACE_IP_ADDRESS为计算节点上的管理网络接口的IP地址

4.1.2.5、在[DEFAULT]节中,启用对网络服务的支持

[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

默认情况下,Compute使用内部防火墙服务。由于网络包括防火墙服务,因此您必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序禁用Compute防火墙服务 。

4.1.2.6、在[vnc]节中,启用和配置远程控制台访问

[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

服务器组件侦听所有IP地址,代理组件只侦听计算节点的管理接口IP地址。基本URL表示可以使用Web浏览器访问此计算节点上实例的远程控制台的位置。

4.1.2.7、在[glance]节中,配置Image Service API的位置

[glance]
...
api_servers = http://controller:9292

4.1.2.8、在[oslo_concurrency]部分中,配置锁定路径

[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

4.2、完成安装

4.2.1、确定您的计算节点是否支持虚拟机的硬件加速

# egrep -c '(vmx|svm)' /proc/cpuinfo

如果此命令返回大于0的值,则您的计算节点支持硬件加速,通常不需要额外的配置。

如果此命令返回值0,则您的计算节点不支持硬件加速,您必须配置libvirt 为使用QEMU而不是KVM。

4.2.1.1、编辑 /etc/nova/nova.conf文件中的[libvirt]部分

[libvirt]
...
virt_type = qemu

4.2.2、启动Compute服务,包括其依赖关系,并将其配置为在系统引导时自动启动

# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service

如果nova-compute服务无法启动,请检查 /var/log/nova/nova-compute.log。错误消息 可能表示控制器节点上的防火墙阻止访问端口5672。AMQP server on controller:5672 isunreachable

 5、问题

5.1、4.2.2中无法启动计算服务

原因为无法连接控制节点5672端口,可以使用以下命令开放该端口

开放5672端口
# firewall-cmd --permanent --add-port=5672/tcp
重启防火墙服务
# systemctl restart firewalld.service

 6、在控制器节点上 验证操作

6.1、读取admin凭据以访问仅管理CLI命令

# source admin-openrc 

6.2、列出服务组件,以验证每个进程的成功启动和注册

# openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| ID | Binary           | Host       | Zone     | Status  | State | Updated At                 |
+----+------------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-consoleauth | controller | internal | enabled | up    | 2017-07-21T02:04:33.000000 |
|  2 | nova-conductor   | controller | internal | enabled | up    | 2017-07-21T02:04:33.000000 |
|  5 | nova-scheduler   | controller | internal | enabled | up    | 2017-07-21T02:04:33.000000 |
|  7 | nova-compute     | compute    | nova     | enabled | up    | 2017-07-21T02:04:30.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+

该输出应指示在控制器节点上启用的三个服务组件和在计算节点上启用的一个服务组件

 

转载于:https://www.cnblogs.com/hardysui/p/7209350.html

### 回答1: openstack compute service list是OpenStack命令行工具中的一个命令,用于列出计算服务的列表。计算服务是OpenStack中的一个重要组件,它提供了虚拟机实例的创建、管理和监控等功能。通过执行openstack compute service list命令,可以查看当前计算服务的状态和信息,包括服务名称、服务ID、状态、主机名、二进制文件路径等。这个命令对于OpenStack管理员和运维人员来说非常有用,可以帮助他们了解计算服务的运行情况,及时发现和解决问题。 ### 回答2: OpenStack Compute Service List,是指OpenStack中的计算服务列表。OpenStack Compute Service是私有云中的核心组件,允许用户创建和管理虚拟机。 在OpenStack中,主要有两个计算服务:Nova和Magnum。Nova是OpenStack最常用的计算服务之一,它允许用户在私有云环境中创建和管理虚拟机,包括计算、网络和存储等方面的资源。而Magnum则是OpenStack的容器编排服务,它可以部署、管理和扩展容器集群,提供容器编排功能。 在使用OpenStack Compute Service时,用户可以通过命令行或Web界面来管理计算服务的列表。通过命令行,可以使用nova命令来列出计算服务列表。在Web界面中,用户可以通过Dashboard来查看并管理计算服务列表。 在OpenStack中,计算服务列表不仅包括Nova和Magnum这两个计算服务,还包括其他的计算组件,如Heat、Sahara、Trove等。这些组件可以帮助用户完成任务编排、大数据分析、数据库管理等功能。 总之,OpenStack Compute Service List是OpenStack中计算服务的列表,包括了Nova、Magnum、Heat、Sahara、Trove等计算组件。通过这个列表,用户可以方便地管理和监控OpenStack中的计算资源。 ### 回答3: OpenStack Compute是OpenStack中的一个主要组件,也称为Nova。该组件提供了可扩展的计算服务,可以为用户提供虚拟机、容器和裸机等各种计算服务。openstack compute service list是OpenStack Compute组件提供的一个命令行指令,用于列出所有计算服务的详细信息。在使用该命令前,需要先确认OpenStack Compute组件是否成功安装并启动。 执行openstack compute service list命令后,可能会看到如下信息: +----+------------------+------------+----------+---------+-------+----------------------------+ | ID | Binary | Host | Zone | Status | State | Updated At | +----+------------------+------------+----------+---------+-------+----------------------------+ | 1 | nova-scheduler | controller | internal | enabled | up | 2020-05-05T12:05:47.000000 | | 2 | nova-conductor | controller | internal | enabled | up | 2020-05-05T12:05:47.000000 | | 3 | nova-compute | compute1 | nova | enabled | up | 2020-05-05T12:05:52.000000 | | 4 | nova-compute | compute2 | nova | enabled | up | 2020-05-05T12:05:50.000000 | +----+------------------+------------+----------+---------+-------+----------------------------+ 其中,ID是该计算服务的唯一标识符;Binary是该服务运行的二进制文件名;Host是该服务所在的主机名;Zone是该服务所在的可用区;Status表示该服务是否启用;State表示该服务当前的状态;Updated At表示该服务上次更新的时间。 通过openstack compute service list命令,可以查看OpenStack Compute中的所有计算服务及其详细信息,为运维人员提供了方便快捷的管理方式。同时,该命令也可以用来排查计算服务出现问题时的故障原因,以便及时进行修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值