openstack云计算平台<4>--核心组件配置->计算服务

概述

详细链接:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/common/get_started_compute.html.
OpenStack计算服务组件所构成示意图:
在这里插入图片描述

  1. nova-api 服务:是计算的唯一入口,所有的计算请求均从nova-api进来
  2. nova-api-metadata 服务
    接受来自虚拟机发送的元数据请求。
  3. nova-compute服务
    一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例
  4. nova-scheduler服务
    拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
  5. nova-cert 守护进程
    X509 证书
  6. nova客户端
    用于用户作为租户管理员或最终用户来提交命令。
  7. nova-consoleauth 守护进程
    授权控制台代理所提供的用户令牌
  8. nova-novncproxy 守护进程
    提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端
  9. 队列
    一个在守护进程间传递消息的中央集线器。常见实现有RabbitMQ <http://www.rabbitmq.com/>, 以及如Zero MQ <http://www.zeromq.org/>等AMQP消息队列。
  10. SQL数据库
    存储构建时和运行时的状态,为云基础设施

一、安装并配置控制节点

1.先决条件

用数据库连接客户端以 root 用户连接到数据库服务器:

$ mysql -u root -p
创建 nova_api 和 nova 数据库:

CREATE DATABASE nova_api;
CREATE DATABASE nova;
对数据库进行正确的授权:

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
用合适的密码代替 NOVA_DBPASS。

退出数据库客户端。

在这里插入图片描述
在这里插入图片描述

要创建服务证书,完成这些步骤:

创建 nova 用户:
$ openstack user create --domain default \
  --password nova nova
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled   | True                             |
| id        | 8c46e4760902464b889293a74a0c90a8 |
| name      | nova                             |
+-----------+----------------------------------+

给 nova 用户添加 admin 角色:
openstack role add --project service --user nova admin

创建 nova 服务实体:
$ openstack service create --name nova \
  --description "OpenStack Compute" compute
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Compute                |
| enabled     | True                             |
| id          | 060d59eac51b4594815603d75a00aba2 |
| name        | nova                             |
| type        | compute                          |
+-------------+----------------------------------+

在这里插入图片描述

创建 Compute 服务 API 端点 :

$ openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2.1/%\(tenant_id\)s
+--------------+-------------------------------------------+
| Field        | Value                                     |
+--------------+-------------------------------------------+
| enabled      | True                                      |
| id           | 3c1caa473bfe4390a11e7177894bcc7b          |
| interface    | public                                    |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | e702f6f497ed42e6a8ae3ba2e5871c78          |
| 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           | e3c918de680746a586eac1f2d9bc10ab          |
| interface    | internal                                  |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | e702f6f497ed42e6a8ae3ba2e5871c78          |
| 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           | 38f7af91666a47cfb97b4dc790b94424          |
| interface    | admin                                     |
| region       | RegionOne                                 |
| region_id    | RegionOne                                 |
| service_id   | e702f6f497ed42e6a8ae3ba2e5871c78          |
| service_name | nova                                      |
| service_type | compute                                   |
| url          | http://controller:8774/v2.1/%(tenant_id)s |
+--------------+-------------------------------------------+

在这里插入图片描述

2.安装并配置组件

安装软件包:
yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler

编辑/etc/nova/nova.conf文件并完成下面的操作:

在[DEFAULT]部分,只启用计算和元数据API[DEFAULT]
...
enabled_apis = osapi_compute,metadata
在[api_database][database]部分,配置数据库的连接:
[api_database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
用你为 Compute 数据库选择的密码来代替 NOVA_DBPASS。

在[DEFAULT][oslo_messaging_rabbit]部分,配置RabbitMQ消息队列访问:
[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。

在 “[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
使用你在身份认证服务中设置的nova用户的密码替换NOVA_PASS。

在 [DEFAULT 部分,配置my_ip来使用控制节点的管理接口的IP地址。
[DEFAULT]
...
my_ip = 10.0.0.11[DEFAULT] 部分,使能 Networking 服务:
[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址 :
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip

在 [glance] 区域,配置镜像服务 API 的位置:
[glance]
...
api_servers = http://controller:9292[oslo_concurrency] 部分,配置锁路径:

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同步Compute 数据库:
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage db sync" nova
注意:忽略输出中任何不推荐使用的信息。

在这里插入图片描述

3.完成安装

启动 Compute 服务并将其设置为随系统启动:
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

在这里插入图片描述

二、安装并配置计算节点

这部分描述如何在计算节点上安装并配置计算服务。计算服务支持多种虚拟化方式 hypervisors to deploy instances or VMs. For simplicity, this configuration uses the QEMU hypervisor with the :term:KVM <kernel-based VM (KVM)>计算节点需支持对虚拟化的硬件加速。对于传统的硬件,本配置使用generic qumu的虚拟化方式。你可以根据这些说明进行细微的调整,或者使用额外的计算节点来横向扩展你的环境。

1.安装并配置组件

安装软件包:
yum install openstack-nova-compute  -y

编辑/etc/nova/nova.conf文件并完成下面的操作:
在[DEFAULT][oslo_messaging_rabbit]部分,配置RabbitMQ消息队列的连接:

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。

在 [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
使用你在身份认证服务中设置的nova用户的密码替换NOVA_PASS。

在 [DEFAULT] 部分,配置 my_ip 选项:
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的IP 地址

在 [DEFAULT] 部分,使能Networking服务:
[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver

在[vnc]部分,启用并配置远程控制台访问:
[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html

在 [glance] 区域,配置镜像服务API的位置:
[glance]
...
api_servers = http://controller:9292[oslo_concurrency] 部分,配置锁路径:

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.完成安装

确定计算节点是否支持虚拟机的硬件加速。
egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令返回了 one or greater 的值,那么你的计算节点支持硬件加速且不需要额外的配置。
如果这个命令返回了 zero 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM
在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:
[libvirt]
...
virt_type = qemu

在这里插入图片描述
在这里插入图片描述

启动计算服务及其依赖,并将其配置为随系统自动启动:
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

在这里插入图片描述

三、验证操作

获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc

列出服务组件,以验证是否成功启动并注册了每个进程:
$ openstack compute service list
+----+--------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary             | Host       | Zone     | Status  | State | Updated At                 |
+----+--------------------+------------+----------+---------+-------+----------------------------+
|  1 | nova-consoleauth   | controller | internal | enabled | up    | 2016-02-09T23:11:15.000000 |
|  2 | nova-scheduler     | controller | internal | enabled | up    | 2016-02-09T23:11:15.000000 |
|  3 | nova-conductor     | controller | internal | enabled | up    | 2016-02-09T23:11:16.000000 |
|  4 | nova-compute       | compute1   | nova     | enabled | up    | 2016-02-09T23:11:20.000000 |
+----+--------------------+------------+----------+---------+-------+----------------------------+
该输出应该显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值