openEuler 集群部署Nova计算服务:控制节点与计算节点实战操作

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
相关推荐
Spirit_NKlaus2 小时前
Springboot自定义配置解密处理器
java·spring boot·后端
Nebula_g3 小时前
C语言应用实例:斐波那契数列与其其他应用
c语言·开发语言·后端·学习·算法
芝士AI吃鱼3 小时前
我为什么做了 Cogniflow?一个开发者关于“信息流”的思考与实践
人工智能·后端·aigc
调试人生的显微镜3 小时前
HTTPS是什么端口?443端口的工作原理与网络安全重要性
后端
英伦传奇3 小时前
MyBatis-Plus Dynamic Table Starter:分表不再痛苦,一行注解搞定
后端
Mos_x4 小时前
集成RabbitMQ+MQ常用操作
java·后端
该用户已不存在4 小时前
AI编程工具大盘点,哪个最适合你
前端·人工智能·后端
间彧4 小时前
云服务相关术语解读
后端
Ray664 小时前
JDK21 升级
后端