参考官方文档: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_api
,nova
,nova_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
-
admin
向nova
用户添加角色:
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
- 在该
[DEFAULT]
部分中,配置my_ip
选项以使用控制器节点的管理接口IP地址:
[DEFAULT] # ... my_ip = 192.168.1.10
- 在本
[DEFAULT]
节中,启用对网络服务的支持:
[DEFAULT] # ... use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver
- 配置/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
- 由于包装错误,您必须通过将以下配置添加到来启用对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-api
和placement
数据库:
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服务并将其配置为在系统启动时启动:
# 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管理程序。您可以对这些说明进行少量修改,以通过其他计算节点水平扩展您的环境。
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
- 在该
[DEFAULT]
部分中,配置my_ip
选项:
[DEFAULT] # ... my_ip = 192.168.1.20
- 在本
[DEFAULT]
节中,启用对网络服务的支持:
[DEFAULT] # ... use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver
- 配置/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浏览器访问此计算节点上的实例的远程控制台的位置。
- 在该
[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
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
3、列出身份服务中的API端点以验证与身份服务的连接性:
openstack catalog list
4、在图像服务中列出图像以验证与图像服务的连接性:
openstack image list
5、检查单元格和展示位置API是否正常运行:
nova-status upgrade check