OpenStack--部署nova控制节点与计算节点

2023-10-27

官方部署文档 : https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/common/get_started_compute.html

1、安装并配置 nova 控制节点:

官方安装文档: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/nova-controller-install.html

#1:安装 nova 控制端:
[root@linux-host1 ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api

#2:准备数据库:
[root@linux-host4 ~]# mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE nova_api;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> CREATE DATABASE nova;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> CREATE DATABASE nova_cell0;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 
'nova123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#3:验证数据库:

#4:创建 nova 服务并注册:
#4.1:创建 nova 服务: 
[root@linux-host1 ~]# openstack service create --name nova --description "OpenStack Compute" 
compute
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | f5d5af647ae040eca5bf7d878c23086d |
| name | nova |
| type | compute |
+-------------+----------------------------------+
#4.2:创建公共端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute public http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 9ea17b1200fc40ed84de2c66651d8298 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.3:创建私有端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute internal http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | cc3e3b629fbf44a69948922773836804 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.4:创建管理端点: 
[root@linux-host1 ~]# openstack endpoint create --region RegionOne compute admin 
http://192.168.10.100:8774/v2.1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 51dca1e673ee419f8c75fb9646520003 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f5d5af647ae040eca5bf7d878c23086d |
| service_name | nova |
| service_type | compute |
| url | http://192.168.10.100:8774/v2.1 |
+--------------+----------------------------------+
#4.5:创建 placement 用户并授权: 
# Placement 用户密码设置为 placement
[root@linux-host1 ~]# openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | 961b40ed4c6b40a9b266ce5e451a4292 |
| enabled | True |
| id | f052cbbd13d341e3bee6a0da23588802 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#4.6:授权 admin 权限: 
[root@linux-host1 ~]# openstack role add --project service --user placement admin

#5:创建 placement API 并注册:
[root@linux-host1 ~]# openstack service create --name placement --description "Placement API" 
placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | af5b2be1a8e24a2d9a619f318a04022a |
| name | placement |
| type | placement |
+-------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement public http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c1eb9cc9c3bf42bd9b49ac86b309fe2b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement internal http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 65cf7e1dbeac440ea6a4e369e816d83e |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+
[root@linux-host1 ~]# openstack endpoint create --region RegionOne placement admin http://192.168.10.100:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 8c073907d3d84c5995df683b0a2c4f5b |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | af5b2be1a8e24a2d9a619f318a04022a |
| service_name | placement |
| service_type | placement |
| url | http://192.168.10.100:8778 |
+--------------+----------------------------------+

#6:编辑配置文件:
#6.1:编辑 nova.conf: 
[root@linux-host1 ~]# vim /etc/nova/nova.conf
2629 enabled_apis=osapi_compute,metadata
3021 transport_url=rabbit://openstack:123456@192.168.10.205 #rabbit 服务器 IP,不支持代理
3085 auth_strategy=keystone
3380 connection = mysql+pymysql://nova:nova123@192.168.10.100/nova_api
4398 connection = mysql+pymysql://nova:nova123@192.168.10.100/nova
5599 auth_uri = http://192.168.10.100:5000
5600 auth_url = http://192.168.10.100:35357
5601 memcached_servers = 192.168.10.100:11211
5602 auth_type = password
5603 project_domain_name = default
5604 user_domain_name = default
5605 project_name = service
5606 username = nova
5607 password = nova #nova 用户的密码,不是数据库的密码
2306 use_neutron=true
2465 firewall_driver=nova.virt.firewall.NoopFirewallDriver
9677 enabled=true
9700 vncserver_listen=192.168.10.201
9712 vncserver_proxyclient_address=192.168.10.201
4957 api_servers=http://192.168.10.100:9292
7250 lock_path=/var/lib/nova/tmp
#详细配置:
1:[DEFAULT]
2306:use_neutron=true
2465:firewall_driver=nova.virt.firewall.NoopFirewallDriver
2629:enabled_apis=osapi_compute,metadata
3021:transport_url = rabbit://openstack:123456@192.168.10.205
3028:rpc_backend=rabbit
3069:[api]
3085:auth_strategy=keystone
3367:[api_database]
3380:connection = mysql+pymysql://nova:nova123@192.168.10.100/nova_api
4370:[database]
4398:connection = mysql+pymysql://nova:nova123@192.168.10.100/nova
4939:[glance]
4957:api_servers=http://192.168.10.100:9292
5598:[keystone_authtoken]
5599:auth_uri = http://192.168.10.100:5000
5600:auth_url = http://192.168.10.100:35357
5601:memcached_servers = 192.168.10.100:11211
5602:auth_type = password
5603:project_domain_name = default
5604:user_domain_name = default
5605:project_name = service
5606:username = nova
5607:password = nova
7235:[oslo_concurrency]
7250:lock_path=/var/lib/nova/tmp
8081:[placement]
8082:os_region_name = RegionOne
8083:project_domain_name = Default
8084:project_name = service
8085:auth_type = password
8086:user_domain_name = Default
8087:auth_url = http://192.168.10.100:35357/v3
8088:username = placement
8089:password = placement
9669:[vnc]
9685:enabled=true
9708:vncserver_listen=192.168.10.201
9720:vncserver_proxyclient_address=192.168.10.201
#6.2:配置 apache 允许访问 placement API:
[root@linux-host1 ~]# vim /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>
#6.3:重启 http: 
[root@linux-host1 ~]# systemctl restart httpd
#6.4:初始化数据库: #nova_api 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
#nova 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage db sync" nova
#nova cell0 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
#nova cell1 数据库
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" 
nova
7972a48a-bddb-4957-b773-852565a25725

#5:验证 nova cell0 和 nova cell1 是否正常注册:
[root@linux-host1 ~]# nova-manage cell_v2 list_cells
+-------+--------------------------------------+
| Name | UUID |
+-------+--------------------------------------+
| cell0 | 00000000-0000-0000-0000-000000000000 |
| cell1 | 7972a48a-bddb-4957-b773-852565a25725 |
+-------+--------------------------------------+

#6:启动并将 nova 服务设置为开机启动: 
[root@linux-host1 ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service 
openstack-nova-novncproxy.service
[root@linux-host1 ~]# systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service 
openstack-nova-novncproxy.service

#7:重启 nova 控制端脚本: 
[root@linux-host1 ~]# cat nova-restart.sh 
#!/bin/bash
systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@linux-host1 ~]# chmod a+x nova-restart.sh

#8:查看 nova 服务日志: 
#9:查看 rabbitMQ 连接:

#10:验证 nova 控制端:
[root@linux-host1 ~]# nova service-list
2、部署 nova 计算节点:

在计算节点服务器部署

#1:安装 nova 计算服务:
[root@linux-host2 ~]# yum install openstack-nova-compute

#2:配置 nova.conf:
[root@linux-host2 ~]# vim /etc/nova/nova.conf
2629 enabled_apis=osapi_compute,metadata
3021 transport_url = rabbit://openstack:123456@192.168.10.205
3085 auth_strategy=keystone
5596 [keystone_authtoken]
5597 auth_uri = http://192.168.10.100:5000
5598 auth_url = http://192.168.10.100:35357
5599 memcached_servers = 192.168.10.100:11211
5600 auth_type = password
5601 project_domain_name = default
5602 user_domain_name = default
5603 project_name = service
5604 username = nova
5605 password = nova
2306 use_neutron=true
2465 firewall_driver=nova.virt.firewall.NoopFirewallDriver
9659 [vnc]
9675 enabled=true
4937 [glance]
4955 api_servers=http://192.168.10.100:9292
7248 lock_path=/var/lib/nova/tmp
8080 os_region_name = RegionOne
8081 project_domain_name = Default
8082 project_name = service
8083 auth_type = password
8084 user_domain_name = Default
8085 auth_url = http://192.168.10.100:35357/v3
8086 username = placement
8087 password = placement
#全部配置:
1:[DEFAULT]
2306:use_neutron=true
2465:firewall_driver=nova.virt.firewall.NoopFirewallDriver
2629:enabled_apis=osapi_compute,metadata
3021:transport_url = rabbit://openstack:123456@192.168.10.205
3069:[api]
3085:auth_strategy=keystone
4937:[glance]
4955:api_servers=http://192.168.10.100:9292
5596:[keystone_authtoken]
5597:auth_uri = http://192.168.10.100:5000
5598:auth_url = http://192.168.10.100:35357
5599:memcached_servers = 192.168.10.100:11211
5600:auth_type = password
5601:project_domain_name = default
5602:user_domain_name = default
5603:project_name = service
5604:username = nova
5605:password = nova
7233:[oslo_concurrency]
7248:lock_path=/var/lib/nova/tmp
8079:[placement]
8080:os_region_name = RegionOne
8081:project_domain_name = Default
8082:project_name = service
8083:auth_type = password
8084:user_domain_name = Default
8085:auth_url = http://192.168.10.100:35357/v3
8086:username = placement
8087:password = placement
9667:[vnc]
9683:enabled=true
9706:vncserver_listen=0.0.0.0
9718:vncserver_proxyclient_address=192.168.10.202
9738:novncproxy_base_url=http://192.168.10.100:6080/vnc_auto.html

#3:确认计算节点是否支持硬件加速:
[root@linux-host2 ~]# egrep -c '(vmx|svm)' /proc/cpuinfo
40

#4:启动 nova 计算服务并设置为开机启动:
[root@linux-host2 ~]# systemctl enable libvirtd.service openstack-nova-compute.service
[root@linux-host2 ~]# systemctl start libvirtd.service openstack-nova-compute.service

#5:添加计算节点到 cell 数据库:
[root@linux-host1 ~]# source admin-openstack.sh 
[root@linux-host1 ~]# openstack hypervisor list
+----+-------------------------+-----------------+----------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+-------------------------+-----------------+----------------+-------+
| 1 | linux-host2.exmaple.com | QEMU | 192.168.10.202 | up |
+----+-------------------------+-----------------+----------------+-------+

#6:主动发现计算节点: #使用命令发现:
[root@linux-host1 ~]# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#定期主动发现:
[root@linux-host1 ~]# vim /etc/nova/nova.conf
8577 [scheduler]
8684 discover_hosts_in_cells_interval=300
[root@linux-host1 ~]# bash nova- restart.sh #重启nova服务

#7:验证计算节点:
[root@linux-host1 ~]# nova host-list
[root@linux-host1 ~]# nova service-list
[root@linux-host1 nova]# nova image-list
[root@linux-host1 nova]# openstack image list
[root@linux-host1 ~]# openstack compute service list
#列出服务组件是否成功注册
[root@linux-host1 ~]# nova-status upgrade check
#检查 cells 和 placement API 是否工作正常:
[root@linux-host1 ~]# openstack catalog list
#列出 keystone 服务中的端点,以验证 keystone 的连通性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenStack--部署nova控制节点与计算节点 的相关文章

随机推荐

  • go get或go mod tidy报错 fatal: could not read Username for

    go get git xxxxx net CPC protocol module git xxxxx net CPC protocol git ls remote q origin in Users admin go pkg mod cac
  • STM32 基础系列教程 24 - USB_HID_key

    前言 学习stm32 USB接口使用 学会用CUBE工具快速创建USB设备工程及调试 关于usb的相关知道请读者提前准备并学习 当然如果不想深究其中原理的话 跟着本文来操作就可以实现基于USB的设备开发了 需要提示的是 stm32在使用us
  • 【蓝屏解决】笔记本频繁蓝屏,错误代码IRQL_NOT_LESS_OR_EQUAL

    问题发现 笔记本近期频繁蓝屏 最初几天会出现一次 后面10分钟左右就出现一次蓝屏情况 解决方案 Step1 找到崩溃日志 Win10 的崩溃日志保存在 C Windows Minidump 里 Step2 下载Debugging Tools
  • AIX系统启动

    复杂度2 5 机密度3 5 最后更新2021 04 23 AIX的启动过程粗略来看 大概是这样的 其中有通过硬件 微码 只能调整少量设置 完成的过程 也有通过操作系统软件 可修改 完成的功能 to be continue 关于SMS的介绍在
  • springmvc框架定时器功能实现和service注入问题解决

    1 在SpringMVC配置文件中添加 xmlns task http www springframework org schema task http www springframework org schema task http ww
  • PHP九大全局变量

    POST 用于接收post提交的数据 GET 用于获取url地址栏的参数数据 FILES 用于文件就收的处理img 最常见 COOKIE 用于获取与setCookie 中的name 值 SESSION 用于存储session的值或获取ses
  • Vue实现Markdown文件内容显示及代码块高亮

    用到的插件有 marked highlight js github markdown css 安装命令 安装 marked npm install marked 安装 highlight js npm install highlight j
  • 电脑往服务器传文件方法,电脑怎么给云服务器传文件

    电脑怎么给云服务器传文件 内容精选 换一换 简要介绍DNSmasq提供DNS缓存和DHCP服务功能 作为域名解析服务器 DNSmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度 作为DHCP服务器 DNSmasq可以用于为局域网电
  • iframe加载完成事件

    获取到iframe加载的前提条件 1 iframe必须在body的下方 如 body append 2 IE下和其他浏览器下的iframe加载完成后执行事件 var iframe document getElementById player
  • 运行ddddocr项目,报错 DLL load failed: 找不到指定的模块

    我的环境是python3 7 9的 from onnxruntime pybind11 state import noqa ImportError DLL load failed 找不到指定的模块 看了网上什么改这改那的 太麻烦了 后来发现
  • 2.搭建一个spring-boot项目(git项目)

    很多同学在搭建一个springboot项目的时候会遇到很多问题 闲来无事我就自己搭建了一个基础的框架 大家可以自己看看 框架主要包括 初始化配置 数据库配置 Mysql mybatis plus JPA 自动生成代码 logback 基本上
  • Grafana 安装(Centos7)

    一 联网安装 1 Grafana安装 1 下载grafana wget https dl grafana com oss release grafana 8 0 3 1 x86 64 rpm wget https dl grafana co
  • java stream 多个filter_跟光磊学Java开发-流式编程

    使用Stream API操作集合 假设现在有一批名字数据 需要筛选出姓张的人后来需求又变了 需要筛选出姓张 而且名字长度大于等于3的人 使用传统方式操作集合只要操作集合都不得不需要使用循环遍历元素每次筛选后都需要使用新的集合存储元素 pac
  • jdbc的练习:建立一个连接数据库的类

    import java sql public class DatabaseConnection String driver com mysql jdbc Driver String url jdbc mysql localhost 3306
  • 【Pytorch深度学习实战】(8)双向循环神经网络(BiRNN)

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • c语言:char *c;测试

    include
  • html图片列表选择器,CSS 列表

    CSS 列表 从某种意义上讲 不是描述性的文本的任何内容都可以认为是列表 人口普查 太阳系 家谱 参观菜单 甚至你的所有朋友都可以表示为一个列表或者是列表的列表 由于列表如此多样 这使得列表相当重要 所以说 CSS 中列表样式不太丰富确实是
  • Laravel 图片不显示解决方案

    转自 https blog csdn net qq 18951197 article details 93163149 图片文件存储位置为 项目目录 storage app public 1 在项目目录下执行命令创建过软链接 php art
  • ELF文件查看利器之objdump用法

    Android在NDK开发工具中提供了objdump 用来帮助开发者查看编译后目标文件的组成结构和具体内容 常用的有以下几个功能选项 1 a或者 archive headers 这个参数起到的作用和ar命令相似 用来看一个 a静态库文件中包
  • OpenStack--部署nova控制节点与计算节点

    官方部署文档 https docs openstack org mitaka zh CN install guide rdo common get started compute html 1 安装并配置 nova 控制节点 官方安装文档