openEuler 集群部署Nova计算服务:控制节点与计算节点实战操作
前言
本文以 openEuler 25.09 集群为实战环境,详细讲解 Nova 计算服务的部署流程,包括控制节点和计算节点的软件安装、数据库与消息队列配置、服务注册与端点创建、Cell 架构初始化、节点发现以及服务验证等完整步骤。通过本文,可以快速掌握 Nova 服务在 openEuler 集群中的部署与调试方法,为构建稳定的私有云计算环境打下坚实基础。
Nova服务部署与配置实施
控制节点Euler01:Nova核心组件安装与配置
安装Nova核心软件包
bash
yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-scheduler openstack-nova-novncproxy


安装说明:该命令在控制节点上安装OpenStack Nova的核心组件:
nova-api:接收和处理API请求nova-conductor:协调数据库操作nova-scheduler:负责虚拟机调度决策nova-novncproxy:提供VNC远程控制台访问
安装过程中自动创建Nova服务账户:
bash
cat /etc/passwd | grep nova

bash
cat /etc/group | grep nova

创建Nova数据库及权限配置
接入MariaDB数据库:
bash
mysql -uroot -p903213

创建Nova相关数据库:
sql
create database nova_api;
create database nova_cell0;
create database nova;



配置数据库访问权限:
sql
grant all privileges on nova_api.* to 'nova'@'localhost' identified by '903213';
grant all privileges on nova_api.* to 'nova'@'%' identified by '903213';
grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by '903213';
grant all privileges on nova_cell0.* to 'nova'@'%' identified by '903213';
grant all privileges on nova.* to 'nova'@'localhost' identified by '903213';
grant all privileges on nova.* to 'nova'@'%' identified by '903213';

退出数据库客户端:
sql
quit

RabbitMQ消息队列配置
为Nova服务创建RabbitMQ用户:
bash
rabbitmqctl add_user nova 903213

配置用户权限:
bash
rabbitmqctl set_permissions --vhost openstack nova ".*" ".*" ".*"

Nova服务配置文件定制
备份原始配置文件:
bash
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak

编辑Nova主配置文件:
bash
vim /etc/nova/nova.conf

配置文件内容:
ini
[DEFAULT]
log_dir = /var/log/nova
transport_url = rabbit://nova:903213@euler01:5672/openstack
my_ip = 192.168.1.51
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis = osapi_compute,metadata
[api_database]
connection = mysql+pymysql://nova:903213@euler01/nova_api
[database]
connection = mysql+pymysql://nova:903213@euler01/nova
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://euler01:5000/v3
auth_url = http://euler01:5000/v3
memcached_servers = euler01:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 903213
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
auth_url = http://euler01:5000/v3
user_domain_name = Default
username = placement
password = 903213
[glance]
api_servers = http://euler01:9292
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[vnc]
enabled = True
server_listen = $my_ip
server_proxyclient_address = $my_ip
novncproxy_base_url = http://euler01:6080/vnc_auto.html
[scheduler]
driver = filter_scheduler
host_manager = default
设置配置文件权限:
bash
chown nova:nova /etc/nova/nova.conf
chmod 644 /etc/nova/nova.conf


数据库初始化与Cell架构配置
初始化Nova API数据库:
bash
su nova -s /bin/sh -c "nova-manage api_db sync"

创建Cell计算单元:
bash
su nova -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1"

映射Cell0数据库:
bash
su nova -s /bin/sh -c "nova-manage cell_v2 map_cell0"

同步主数据库:
bash
su nova -s /bin/sh -c "nova-manage db sync"

Cell架构验证
查看已注册的Cell单元:
bash
nova-manage cell_v2 list_cells

控制节点服务初始化与身份认证配置
Keystone身份认证配置
导入管理员环境变量:
bash
source admin-openrc

创建Nova服务用户:
bash
openstack user create --domain default --password 903213 nova

验证用户创建:
bash
openstack user list

分配管理员角色:
bash
openstack role add --project service --user nova admin

服务注册与端点配置
创建计算服务:
bash
openstack service create --name nova compute

查看服务列表:
bash
openstack service list

配置服务访问端点:
公共端点:
bash
openstack endpoint create --region RegionOne nova public http://euler01:8774/v2.1

内部端点:
bash
openstack endpoint create --region RegionOne nova internal http://euler01:8774/v2.1

管理端点:
bash
openstack endpoint create --region RegionOne nova admin http://euler01:8774/v2.1

启动控制节点服务
设置服务开机自启:
bash
systemctl enable openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

启动各项服务:
bash
systemctl start openstack-nova-api
systemctl start openstack-nova-scheduler
systemctl start openstack-nova-conductor
systemctl start openstack-nova-novncproxy




控制节点服务验证与端口检查
端口监听状态检查
检查Nova服务端口:
bash
netstat -nultp | grep 877

计算服务状态查看
查看计算服务列表:
bash
openstack compute service list

计算节点Euler02:Nova计算服务安装与配置
Nova计算服务安装
安装计算节点软件包:
bash
yum -y install openstack-nova-compute

验证服务账户创建:
bash
cat /etc/passwd | grep nova
cat /etc/group | grep nova


计算节点配置定制
备份配置文件:
bash
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak

编辑计算节点配置:
bash
vim /etc/nova/nova.conf

配置文件内容:
ini
[DEFAULT]
log_dir = /var/log/nova
transport_url = rabbit://nova:903213@euler01:5672/openstack
my_ip = 192.168.1.51
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
compute_driver = libvirt.LibvirtDriver
enabled_apis = osapi_compute,metadata
instances_path = /var/lib/nova/instances/
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://euler01:5000/v3
auth_url = http://euler01:5000/v3
memcached_servers = euler01:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 903213
[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
auth_url = http://euler01:5000/v3
user_domain_name = Default
username = placement
password = 903213
[glance]
api_servers = http://euler01:9292
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[vnc]
enabled = True
server_listen = 0.0.0.0
server_proxyclient_address = $my_ip
novncproxy_base_url = http://euler01:6080/vnc_auto.html
[libvirt]
virt_type = qemu
设置配置文件权限:
bash
chown nova:nova /etc/nova/nova.conf
chmod 644 /etc/nova/nova.conf


启动计算节点服务
启用相关服务:
bash
systemctl enable libvirtd openstack-nova-compute

启动服务:
bash
systemctl start libvirtd openstack-nova-compute

检查服务状态:
bash
systemctl status openstack-nova-compute

计算节点Euler03:Nova计算服务部署与配置
Nova计算服务安装
安装计算节点软件包:
bash
yum -y install openstack-nova-compute

验证服务账户:
bash
cat /etc/passwd | grep nova
cat /etc/group | grep nova


计算节点配置定制
备份配置文件:
bash
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak

编辑计算节点配置:
bash
vim /etc/nova/nova.conf

配置文件内容与Euler02节点相同。
设置配置文件权限:
bash
chown nova:nova /etc/nova/nova.conf
chmod 644 /etc/nova/nova.conf


启动计算节点服务
启用相关服务:
bash
systemctl enable libvirtd openstack-nova-compute

启动服务:
bash
systemctl start libvirtd openstack-nova-compute

检查服务状态:
bash
systemctl status openstack-nova-compute

计算节点发现与Nova服务最终验证
自动发现计算节点
导入环境变量:
bash
source admin-openrc

手动发现计算节点:
bash
su nova -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose"

配置自动发现机制:
bash
vim /etc/nova/nova.conf
添加自动发现配置:
ini
[scheduler]
discover_hosts_in_cells_interval = 60

重启API服务使配置生效:
bash
systemctl restart openstack-nova-api

全面服务状态验证
查看计算服务列表:
bash
openstack compute service list

查看服务目录端点:
bash
openstack catalog list

执行升级兼容性检查:
bash
nova-status upgrade check
