当前位置: 首页 > 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)配置完成。

相关文章:

  • 【微服务】java 规则引擎使用详解
  • 《Effective C++》条款27
  • python 生成器的作用
  • sql手工注入漏洞测试(MYSQL)-墨者-url信息
  • express+mySql实现用户注册、登录和身份认证
  • WEB渗透—反序列化(九)
  • golang 集成logrus日志框架
  • 基于SpringBoot的旅游网站的设计与实现
  • Could not resolve all files for configuration ‘:app:androidJdkImage‘.
  • Go语言使用AES加密解密
  • 漏洞复现--致远 M3 反序列化 mobile_portal RCE
  • 原生GPT本地及云端部署方式保姆级教程
  • 嵌入式硬件基础知识——1
  • 【LabVIEW学习】3.labview制作安装程序
  • Kafka 如何实现顺序消息
  • [译] React v16.8: 含有Hooks的版本
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • iOS | NSProxy
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java 网络编程(2):UDP 的使用
  • Java方法详解
  • Promise面试题,控制异步流程
  • Python_网络编程
  • spring-boot List转Page
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue组件定义
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 彻底搞懂浏览器Event-loop
  • 对JS继承的一点思考
  • 如何设计一个微型分布式架构?
  • 使用Swoole加速Laravel(正式环境中)
  • 用Visual Studio开发以太坊智能合约
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 选择阿里云数据库HBase版十大理由
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​业务双活的数据切换思路设计(下)
  • #define用法
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (70min)字节暑假实习二面(已挂)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (剑指Offer)面试题34:丑数
  • (十)c52学习之旅-定时器实验
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Linux下编译安装log4cxx
  • (转)visual stdio 书签功能介绍
  • (转)Windows2003安全设置/维护
  • ../depcomp: line 571: exec: g++: not found
  • .Net core 6.0 升8.0
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)