openstack增加一个计算节点

news2024/11/27 14:51:20

1.前言

  • 由于资源有限,所以直接在存储节点(block)部署
    • 由于存储节点最初只设计了一块网卡,所以需要增加一块网卡,名称为eth1,IP:192.168.200.30
    • 编辑ifcfg-eth1,然后重启网络systemctl restart network或启动网卡ifup eth1
  • 如果是一台新机器,请按照OpenStack-Mitaka版本部署,进行环境准备工作

2.部署流程

1.安装openstack客户端和openstack-selinux

yum install python-openstackclient.noarch openstack-selinux.noarch openstack-utils -y

2.安装nova-compute

yum install openstack-nova-compute -y
yum install openstack-utils.noarch -y

3.修改配置

  • 1.备份 /etc/nova/nova.conf 文件,并去掉注释
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf
  • 2.使用openstack-config命令修改相关配置
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit

openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password openstack

openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone

openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS

# 计算节点的管理网络IP(重点修改对象,新机器的IP)
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.100.30

openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver

openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address '$my_ip'
# 控制节点的外部网络IP
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.200.10:6080/vnc_auto.html

openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292

openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password NEUTRON_PASS

4.安装neutron-linuxbridge-agent

yum install openstack-neutron-linuxbridge ebtables ipset -y

5.修改配置

  • 1.备份 /etc/neutron/neutron.conf 文件,并去掉注释
cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.bak
grep -Ev '^$|#' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf
  • 2.使用openstack-config命令修改相关配置
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit

openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_userid  openstack
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_password  openstack

openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone

openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken  password NEUTRON_PASS

openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
  • 3.备份 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件,并去掉注释
cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini
  • 4.使用openstack-config命令修改相关配置
# PROVIDER_INTERFACE_NAME:为外网网卡eth1
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:eth1

openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan False

openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group True
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

6.启动服务

systemctl enable libvirtd.service openstack-nova-compute.service neutron-linuxbridge-agent.service
systemctl start libvirtd.service openstack-nova-compute.service neutron-linuxbridge-agent.service

7.验证

  • 控制节点,检查是否多个一个nova服务
[root@controller ~]# nova service-list
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary           | Host       | Zone     | Status  | State | Updated_at                 | Disabled Reason |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
| 1  | nova-consoleauth | controller | internal | enabled | up    | 2023-01-09T13:33:35.000000 | -               |
| 2  | nova-conductor   | controller | internal | enabled | up    | 2023-01-09T13:33:34.000000 | -               |
| 3  | nova-scheduler   | controller | internal | enabled | up    | 2023-01-09T13:33:30.000000 | -               |
| 7  | nova-compute     | compute    | nova     | enabled | up    | 2023-01-09T13:33:35.000000 | -               |
| 8  | nova-compute     | block      | nova     | enabled | up    | 2023-01-09T13:33:32.000000 | -               |
+----+------------------+------------+----------+---------+-------+----------------------------+-----------------+
  • 控制节点,检查是否多个一个bridge agent服务
[root@controller ~]# neutron agent-list
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id                                   | agent_type         | host       | availability_zone | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 01c79ff7-a257-4572-8d36-e53a41c54b4c | Metadata agent     | controller |                   | :-)   | True           | neutron-metadata-agent    |
| 7288d214-2d6e-40d1-a52b-4810ac843454 | Linux bridge agent | controller |                   | :-)   | True           | neutron-linuxbridge-agent |
| a53f41d4-b579-4d8f-9f70-681f5936d996 | Linux bridge agent | block      |                   | :-)   | True           | neutron-linuxbridge-agent |
| c94f5235-7ef6-4043-bed1-ad4c041525f4 | DHCP agent         | controller | nova              | :-)   | True           | neutron-dhcp-agent        |
| f40e89c2-9bef-4c6c-a063-03f9f32c9c20 | Linux bridge agent | compute    |                   | :-)   | True           | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+

3.创建实例

1.一次性创建两个实例,看看调度情况

  • 由于资源相同,两个虚机应该会分别被调度在不同的节点
    在这里插入图片描述
    在这里插入图片描述

2.主机聚集

  • 通过创建主机聚集,控制虚机调度在哪个节点
    在这里插入图片描述
    在这里插入图片描述
  • 创建2个实例,观察调度情况(期望两个虚机都调度在compute节点上)
    在这里插入图片描述
    在这里插入图片描述

4.实例冷迁移

1.计算节点之间进行互信(免密登录)

1.在任意节点执行以下操做:假使在compute节点

  • 1.切换nova用户
usermod -s /bin/bash nova
su - nova
cp /etc/skel/.bash* .
logout
su - nova
  • 2.生成密钥对
ssh-keygen -t rsa -q -N ''
[nova@compute ~]$ ls /var/lib/nova/.ssh
id_rsa  id_rsa.pub
  • 3.设置自己免密登录
cp -fa /var/lib/nova/.ssh/id_rsa.pub /var/lib/nova/.ssh/authorized_keys

2.将计算节点刚刚生成的.ssh目录拷贝到存储节点(部署了计算服务)

  • 1.远程拷贝.ssh目录
scp -rp /var/lib/nova/.ssh root@block:`pwd`
  • 2.存储节点切换nova用户
usermod -s /bin/bash nova
su - nova
cp /etc/skel/.bash* .
logout
su - nova
logout
  • 3.修改/var/lib/nova/.ssh下的文件权限
chown -R nova:nova /var/lib/nova/.ssh
  • 4.测试免密登录
su - nova
ssh nova@compute
su - nova
ssh nova@block

2.修改控制节点/etc/nova/nova.conf配置文件

  • 1.修改/etc/nova/nova.conf配置
[default]
scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, DiskFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter
  • 2.重启nova-scheduler服务
systemctl restart openstack-nova-scheduler.service

3.修改所有计算节点/etc/nova/nova.conf配置文件

[default]
allow_resize_to_same_host = True
  • 重启nova-compute服务
systemctl restart openstack-nova-compute.service

4.web界面操做

  • 1.迁移主机必须属于同一个主机聚集,所以重新创建主机聚集
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 2.实例的迁移,只对配置了迁移环境后,创建的虚机有效,所以使用刚刚创建的主机聚集来重新创建实例测试。
    在这里插入图片描述

  • 3.迁移在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【优化】windows双网叠加 多网叠加 网速叠加 教程

【优化】windows双网叠加 多网叠加 网速叠加 教程 1 连接两个以上的网络, 网络不能是同一个 例如 网线-A wifi-B 2 控制面板\所有控制面板项\网络连接 最后 确定保存 同理 修改wifi-B的接口活跃点数为 25 并保存 如果没有生效 可以将两个网络连接禁用 再启用 通过命…

4656. 技能升级

4656. 技能升级 https://www.acwing.com/problem/content/4659/ 第十三届蓝桥杯省赛CC组 算法标签:贪心;多路归并;二分 思路 如果暴力来做的话,会将所有数放到一个集合里面排序,取前 mmm 项之和即可,但时…

Vue3——第六章(侦听器:watch、watchEffect)

一、watch 基本使用 在组合式 API 中,我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数: 二、侦听数据源类型 watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 get…

5.2、运输层端口号、复用与分用的概念

1、端口号 运行在计算机上的进程使用进程标识符PID\color{red}进程标识符 PID进程标识符PID来标志。 因特网上的计算机并不是使用统一的操作系统 不同的操作系统(windows,Linux,Mac OS)又使用不同格式的进程标识符\color{red}不同格式的进程标识符不同…

ThreadLocal 实战应用

1 什么是 ThreadLocal?ThreadLocal 是一个关于创建线程局部变量的类。通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用 ThreadLocal 创建的变量只能被当前线程访问,其他线程则无法访问和修改。ThreadLocal 在设计之初就是…

CDN简单介绍

CDN 介绍 CDN (全称 Content Delivery Network),即内容分发网络,服务器的静态资源存在CDN服务器上,用户在最近的CDN服务器上获取资源。 从功能上看,典型的 CDN 系统由分发服务系统、负载均衡系统和运营管理系统组成。分发服务系…

我利用 ChatGPT 提高工作效率的 5 种方式

技术应该是我们的朋友,而不是我们的敌人ChatGPT 在 11 月的发布改变了世界。学校阻止该计划,程序员对他们工作中新发现的效率赞不绝口,而创意人员则怀疑他们的工作是否受到威胁。每个人都在想同一个问题:ChatGPT 的未来会是什么样…

IPS+ESPC联动实现安全中心接管

目录 一、IPS介绍 原理 功能 缺陷 二、ESPC介绍 原理 功能 三、NIPSESPC联动 实验目的 实验过程 一、IPS介绍 原理 如今内部威胁增多,外部攻击剧增,防火墙存在着一定的局限性,如:部署在边界处,更多的是对一些…

环境搭建(python+pycharm(anconda可选)

python下载 python下载,由于网站服务器在国外,所以打开可能有点慢,也可以使用国内的镜像网站(因为我没有试过,有兴趣的可以去尝试下,此文章的后面部分会有临时换源的操作) 电脑位数的查看 …

1277:【例9.21】方格取数——数字三角形模型

【题目描述】 设有NN的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示: 某人从图中的左上角A出发,可以向下行走,也可以向右行走,直到到达右下角的B点。在走过的路上&…

如何实现同一IP的不同端口访问不同的网站

一,要求 1, 基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ipport1 -> 对应一个域名 ipport2 -> 对应一个域名 使用域名1我应该访问到 ipport1对应的内容 使用域名2我应该访问到 ipport2对应的内容 2. …

阳了怎么居家办公?这4款远程办公软件你得知道!

疫情高峰期尚未过去,可是临近年底,各公司各部门都到了算绩效、追回款、清退结算的时候,大家都忙得根本脱不开身!居家远程办公也不得不架起电脑回消息! 本文给大家推荐4款超好用的远程办公软件,高效省事&am…

【机器学习 - 1】:knn算法

文章目录机器学习的概念和基础knn算法的实现过程封装knn算法总结机器学习的概念和基础 机器学习可以两类任务: 分类任务和回归任务 以机器学习本身来进行分类可分为: 监督学习 非监督学习 半监督学习 增强学习 监督学习:给机器的训练数据 有标…

android架构拆分方案-结构相关方案与技术

很纯、很生硬的架构技术归纳blog上上文https://blog.csdn.net/dongyi1988/article/details/128617738接上文https://blog.csdn.net/dongyi1988/article/details/128629011android架构官网地址https://source.android.google.cn/docs/core/architecture?hlzh-cnGKI(…

VBO、VAO、EBO学习记录

在这里要先了解一下OpenGL的一个幕后大致运作流程,可以直接阅读OPENGL CN 我自己大概总结了一下就是,OpenGL本身就是一个巨大的状态机,我们通过更改状态变量(上下文)来告诉OpenGL如何去绘制图像。一般通过设置选项,修改缓冲来更改…

【网络与系统安全】国科大《网络与系统安全》复习大纲整理 + 考试记忆版

国科大《网络与系统安全》复习整理笔记 重在理解概念考试不算太难 文章目录一、新形势安全面临挑战和安全保障能力提升二、网络与系统安全的需求与目标三、自主与强制访问控制1.访问控制的基本概念2.访问控制的要素3.访问控制3种基本类型4.访问控制矩阵、访问控制列表、访问控制…

【Linux修炼】13.缓冲区

每一个不曾起舞的日子,都是对生命的辜负。 缓冲区的理解一. C接口打印两次的现象二. 理解缓冲区问题为什么要有缓冲区缓冲区刷新策略的问题所说的缓冲区在哪里?指的是什么缓冲区?三. 解释打印两次的现象四. 模拟实现五. 缓冲区与OS的关系一. …

ThinkPHP 表单验证使用

对前端或表单请求的数据,一定要做校验,而使用ThinkPHP 验证器则可以事半功倍。 可以使用validate助手函数(或者封装验证方法)进行验证。TP版本6.1。 目录 验证场景 验证器 创建验证器 定义规则和提示 数据验证 独立验证&…

Arbotix使用

内容学自赵虚左的视频及资料 需求描述: 控制机器人模型在 rviz 中做圆周运动 1.安装 Arbotix 方式1:命令行调用 sudo apt-get install ros-<<VersionName()>>-arbotix <<VsersionName()>> 替换成当前 ROS 版本名称 添加 arbotix 所需配置文件 # …

Web原型设计规范

上篇文章为大家介绍了app端在进行原型设计时的设计规范&#xff0c;本篇将继续为大家介绍一下Web端&#xff08;这里主要指网页端&#xff09;的设计规范。其实web端的设计规范并没有像app端那样多&#xff0c;因为展示的空间比较大&#xff0c;所有要求也就没有那么严苛。 电脑…