当前位置: 首页 > news >正文

【Openstack Train安装】九、Nova安装

Nova是OpenStack中最核心的组件,它负责根据需求提供虚拟机服务并管理虚拟机生命周期,包括虚拟机创建、虚拟机调度和热迁移等。
Nova的子组件包括nova-api、nova-compute、nova-scheduler、nova-conductor、nova-db、nova-console等等。

本文介绍Nova安装步骤,Nova需在控制节点和计算节点安装安装。

在按照本教程安装之前,请确保完成以下配置:

【Openstack Train安装】一、虚拟机创建

【Openstack Train安装】二、NTP安装

【Openstack Train安装】三、openstack安装

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

【Openstack Train安装】五、Memcached/Etcd安装

【Openstack Train安装】六、Keystone安装

【Openstack Train安装】七、glance安装

【Openstack Train安装】八、placement安装

安装环境如下

VMware WorkstationV17.0
本机系统win11
虚拟机系统CentOS 7.5

一、控制节点配置

以下步骤在controller节点操作。

1、创建数据库

进入数据库控制台:

mysql -u root -p

创建数据库:

CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

授予权限并退出:

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

GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456';

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

如下图:

2、创建用户和服务

登录admin账户:

. admin-openrc

在domain:default创建用户nova(密码:123456):

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

如下图:

添加admin权限给project:service,user:nova:

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

创建nova服务入口:

openstack service create --name nova --description "OpenStack Compute" 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

结果如下:

3、安装并配置nova

安装包:

yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler -y

备份并删除 /etc/nova/nova.conf的注释:

mv /etc/nova/nova.conf /etc/nova/nova.conf.source
cat /etc/nova/nova.conf.source | grep -Ev "^#|^$" > /etc/nova/nova.conf

编辑/etc/nova/nova.conf,进行以下配置:

[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
my_ip = 10.0.0.11
transport_url = rabbit://openstack:123456@controller:5672/
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver


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

[database]
# ...
connection = mysql+pymysql://nova:123456@controller/nova

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123456

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

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

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

[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 = 123456

同步数据库:

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

创建cell0数据库:

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

创建cell:cell1:

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

同步nova数据库:

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

确认cell0和cell1注册成功:

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

如下图:

设置开机自启,并启动服务:

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

控制节点配置结束。

二、计算节点配置

在compute节点进行以下操作。

安装nova-compute:

yum install openstack-nova-compute -y

 备份并删除 /etc/nova/nova.conf的注释:

mv /etc/nova/nova.conf /etc/nova/nova.conf.source
cat /etc/nova/nova.conf.source | grep -Ev "^#|^$" > /etc/nova/nova.conf

对/etc/nova/nova.conf进行以下配置:

[DEFAULT]
# ...
enabled_apis = osapi_compute,metadata
transport_url = rabbit://openstack:123456@controller
my_ip = 10.0.0.31
use_neutron = true
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[api]
# ...
auth_strategy = keystone


[keystone_authtoken]
# ...
www_authenticate_uri = http://controller:5000/
auth_url = http://controller:5000/
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = 123456

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


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

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

[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 = 123456

查看计算节点是否支持虚拟化加速(大于0就是支持):

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

在/etc/nova/nova.conf添加以下内容(官方文档中写道:如果上一步的值大于0则不用进行配置,但是实测不配置可能后续镜像加载出现问题,建议配置):

[libvirt]
# ...
virt_type = qemu

设置开机自启,并启动该服务:

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

三、将计算节点添加到数据库

控制节点运行以下命令:

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

如下图:

寻找计算节点:

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

如下图:

当有新的计算节点要添加时,要手动在控制节点使用命令”nova-manage cell_v2 discover_hosts“来添加计算节点,也可以对/etc/nova/nova.conf进行以下配置,使得控制节点定时搜索计算节点:

[scheduler]
discover_hosts_in_cells_interval = 300

四、验证

控制节点进行以下操作:

. admin-openrc

查看计算服务列表:

openstack compute service list

如下所示:

查看端点列表:

openstack catalog list

如下图:

查看镜像列表:

openstack image list

如下图:

检查cell和placement API状态:

nova-status upgrade check

如下图:

计算服务(Nova)配置完成。

相关文章:

  • C语言——求π的近似值
  • [栈思想]后缀表达式
  • Altium Designer学习笔记13
  • 【Linux】Linux中git的基本使用(三板斧)
  • 用Sublime编写Lua脚本
  • 详细讲解1.js处理日期对象输出标准的“2000年12月22日 周三“ 的格式
  • 软著项目推荐 深度学习卷积神经网络的花卉识别
  • c语言练习12周(15~16)
  • 莱佛士学生成功入围2023Harper‘s BAZAAR NewGen Award六强
  • leetCode 100. 相同的树 和 leetCode 101. 对称二叉树 和 110. 平衡二叉树 和 199. 二叉树的右视图
  • 额,收到阿里云给的赔偿了!
  • 模拟退火算法应用——求解TSP问题
  • 【Python基础】协程(迭代器、生成器、协程、gevent介绍)
  • EASYEXCEL(一)
  • 有一种浪漫,叫接触Linux
  • 面试:ShardingSphere问题
  • 服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例
  • 笔记二十、使用路由Params进行传递参数
  • JAVA文件IO, File类, 字符流,字节流
  • vue+uniapp校园寻物失物招领平台 微信小程序1f6z5
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读