参考官方文档:https://docs.openstack.org/install-guide/index.html

https://docs.openstack.org/nova/rocky/install/

概述:https://docs.openstack.org/nova/rocky/install/get-started-compute.html


五、安装nova服务

目录

五、安装nova服务

(一)安装和配置控制器节点

1、前提条件:

2、安装和配置的部件

3、最终确定安装

 

(二)安装和配置计算节点

1、安装和配置的部件

2、最终确定安装

3、将计算节点添加到单元数据库中

(三)验证操作



(一)安装和配置控制器节点

1、前提条件:

在安装和配置Compute服务之前,必须创建数据库,服务凭证和API端点。

(1)要创建数据库,请完成以下步骤:

  • 使用数据库访问客户端以root用户身份连接到数据库服务器:

mysql -u root -p

  • 创建nova_apinovanova_cell0,和placement数据库:

MariaDB [(none)]> CREATE DATABASE nova_api; MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> CREATE DATABASE nova_cell0; MariaDB [(none)]> CREATE DATABASE placement;

  • 授予对数据库的适当访问权限:

GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ IDENTIFIED BY 'nova'; GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \ IDENTIFIED BY 'placement'; GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \ IDENTIFIED BY 'placement';

  • 退出数据库访问客户端。

(2)来源admin凭据来访问仅管理员CLI命令:

$ . admin-openrc

(3)创建计算服务凭据:

  • 创建nova用户:

openstack user create --domain default --password-prompt nova

  • adminnova用户添加角色:

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

  • 创建nova服务实体:

openstack service create --name nova \ --description "OpenStack Compute" compute

(4)创建Compute API服务端点:

openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2.1

openstack endpoint create --region RegionOne \ compute internal http://controller:8774/v2.1

openstack endpoint create --region RegionOne \ compute admin http://controller:8774/v2.1

(5)使用您选择的来创建展示位置服务用户PLACEMENT_PASS

openstack user create --domain default --password-prompt placement

(6)使用管理员角色将Placement用户添加到服务项目中:

openstack role add --project service --user placement admin

(7)在服务目录中创建Placement API条目:

openstack service create --name placement \ --description "Placement API" placement

(8)创建Placement API服务端点:

openstack endpoint create --region RegionOne \ placement public http://controller:8778

openstack endpoint create --region RegionOne \ placement internal http://controller:8778

openstack endpoint create --region RegionOne \ placement admin http://controller:8778

2、安装和配置的部件

默认配置文件因分发而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。另外,...配置摘要中的省略号()表示您应保留的潜在默认配置选项。

(1)安装软件包:

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

(2)编辑/etc/nova/nova.conf文件并完成以下操作:

  • 在此[DEFAULT]部分中,仅启用计算和元数据API:

[DEFAULT] # ... enabled_apis = osapi_compute,metadata

  • [api_database][database][placement_database] 部分,配置数据库访问:

[api_database] # ... connection = mysql+pymysql://nova:nova@controller/nova_api [database] # ... connection = mysql+pymysql://nova:nova@controller/nova [placement_database] # ... connection = mysql+pymysql://placement:placement@controller/placement

  • 在该[DEFAULT]部分中,配置RabbitMQ消息队列访问:

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

  • [api][keystone_authtoken]部分中,配置身份服务访问:

[api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = nova

openstack N版本集群 openstack r版本_API

  • 在该[DEFAULT]部分中,配置my_ip选项以使用控制器节点的管理接口IP地址:

[DEFAULT] # ... my_ip = 192.168.1.10

  • 在本[DEFAULT]节中,启用对网络服务的支持:

[DEFAULT] # ... use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver

openstack N版本集群 openstack r版本_mysql_02

  • 配置/etc/nova/nova.conf[neutron]部分。有关更多详细信息,请参阅neutron部分。

 

  • 在该[vnc]部分中,将VNC代理配置为使用控制器节点的管理接口IP地址:

[vnc] enabled = true # ... server_listen = $my_ip server_proxyclient_address = $my_ip

  • 在该[glance]部分中,配置图像服务API的位置:

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

  • 在该[oslo_concurrency]部分中,配置锁定路径:

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

  • 在该[placement]部分中,配置Placement API:

[placement] # ... region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = placement

openstack N版本集群 openstack r版本_mysql_03

  • 由于包装错误,您必须通过将以下配置添加到来启用对Placement API的访问 /etc/httpd/conf.d/00-nova-placement-api.conf

<Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory>

  • 重新启动httpd服务:

systemctl restart httpd

(3)填充nova-apiplacement数据库:

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

(4)注册cell0数据库:

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

(5)创建cell1单元格:

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

(6)填充nova数据库:

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

(7)验证nova cell0和cell1是否正确注册:

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

3、最终确定安装

启动Compute服务并将其配置为在系统启动时启动:

openstack N版本集群 openstack r版本_mysql_04

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

 


(二)安装和配置计算节点

本节介绍如何在计算节点上安装和配置Compute服务。该服务支持多个虚拟机管理程序以部署实例或虚拟机(VM)。为简单起见,此配置在支持虚拟机硬件加速的计算节点上使用具有基于内核的VM(KVM)扩展的Quick EMUlator(QEMU)管理程序。在旧硬件上,此配置使用通用QEMU管理程序。您可以对这些说明进行少量修改,以通过其他计算节点水平扩展您的环境。

openstack N版本集群 openstack r版本_API_05

1、安装和配置的部件

(1)安装软件包:

yum install openstack-nova-compute

(2)编辑/etc/nova/nova.conf文件并完成以下操作:

  • 在此[DEFAULT]部分中,仅启用计算和元数据API:

[DEFAULT] # ... enabled_apis = osapi_compute,metadata

  • 在该[DEFAULT]部分中,配置RabbitMQ消息队列访问:

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

  • [api][keystone_authtoken]部分中,配置身份服务访问:

[api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = nova

openstack N版本集群 openstack r版本_openstack N版本集群_06

  • 在该[DEFAULT]部分中,配置my_ip选项:

[DEFAULT] # ... my_ip = 192.168.1.20

  • 在本[DEFAULT]节中,启用对网络服务的支持:

[DEFAULT] # ... use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver

openstack N版本集群 openstack r版本_API_07

  • 配置/etc/nova/nova.conf[neutron]部分。 有关更多详细信息,请参阅网络服务安装指南
  • 在该[vnc]部分中,启用和配置远程控制台访问:

[vnc] # ... enabled = true server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html

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

openstack N版本集群 openstack r版本_centos_08

  • 在该[glance]部分中,配置图像服务API的位置:

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

  • 在该[oslo_concurrency]部分中,配置锁定路径:

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

  • 在该[placement]部分中,配置Placement API:

[placement] # ... region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = placement

2、最终确定安装

(1)确定您的计算节点是否支持虚拟机的硬件加速:

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

如果此命令返回值,则您的计算节点支持硬件加速,通常不需要其他配置。one or greater

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

  • 编辑文件中的[libvirt]部分,/etc/nova/nova.conf如下所示:

[libvirt] # ... virt_type = qemu

(2)启动Compute服务及其相关性,并将其配置为在系统启动时自动启动:

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

openstack N版本集群 openstack r版本_API_09

3、将计算节点添加到单元数据库中

控制器节点上运行以下命令。

(1)获取管理员凭据以启用仅管理员的CLI命令,然后确认数据库中有计算主机:

$ . admin-openrc $ openstack compute service list --service nova-compute

(2)发现计算主机:

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

添加新的计算节点时,必须在控制器节点上运行nova-manage cell_v2 discover_hosts以注册这些新的计算节点。另外,您可以在中设置适当的间隔 :/etc/nova/nova.conf

When you add new compute nodes, you must run nova-manage cell_v2 discover_hosts on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in /etc/nova/nova.conf:

[scheduler] discover_hosts_in_cells_interval = 300

(三)验证操作

验证计算服务的运行。在控制器节点上执行这些命令。

1、来源admin凭据来访问仅管理员CLI命令:

. admin-openrc

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

openstack compute service list

openstack N版本集群 openstack r版本_centos_10

openstack N版本集群 openstack r版本_数据库_11

3、列出身份服务中的API端点以验证与身份服务的连接性:

openstack N版本集群 openstack r版本_mysql_12

openstack catalog list

openstack N版本集群 openstack r版本_centos_13

4、在图像服务中列出图像以验证与图像服务的连接性:

openstack image list

5、检查单元格和展示位置API是否正常运行:

nova-status upgrade check