Part 10 - 增加一个计算节点(选做)

2021-03-09
4分钟阅读时长

【版本】

当前版本号v20230701

版本修改说明
v20230701文档基于 RockyLinux8 和 Openstack Yoga 开发

任务10 - 增加一个计算节点(选做)

【任务目的】

  • 掌握配置Openstack计算节点,让计算节点组成集群。

【任务环境】

  • 内存:至少4G
  • 硬盘:至少空余40G
  • 操作系统: 64位 Windows系统。

【任务资源】

  • FinalShell
  • RockyLinux 8 系统镜像
  • VirtualBox

【任务说明】

  • 新计算节点配置说明
项目
主机名(hostname)computerB999
IP地址10.0.0.32
虚拟机内存建议2G
虚拟CPU核心数建议2

【任务步骤】

  1. 从模板机克隆出一台新的虚拟机作为新的计算节点。命令可参考之前步骤。以下步骤如果没有特别说明,都在新的计算节点上执行。

  2. 把虚拟机 Hostname 命名为computerB999。命令可参考之前步骤。

  3. 设置新的计算节点的IP为10.0.0.32。命令可参考之前Part 2 步骤6

  4. 控制节点和2个计算节点的hosts统一配置为如下文本。命令可参考之前Part 2 步骤8

10.0.0.11 controller999
10.0.0.31 computer999
10.0.0.32 computerB999
  1. 配置 chrony 和控制节点同步。命令可参考之前Part 2 步骤9

安装nova-compute

  1. 安装 nova-compute 和 Openstack-utils。
dnf install /opt/repo/openstack-yoga/python3-sqlalchemy-1.4.31-1.el8.x86_64.rpm -y
dnf install openstack-nova-compute openstack-utils -y

nova.conf配置

  1. 备份 Nova 的配置文件。
cp /etc/nova/nova.conf{,.bak}
grep '^[a-Z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
  1. 修改相应服务的配置文件。注意替换你的学号。
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis  osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url  rabbit://openstack:RABBIT_PASS@controller+你的学号后3位
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip  10.0.0.32
openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriver
openstack-config --set /etc/nova/nova.conf DEFAULT verbose  True
openstack-config --set /etc/nova/nova.conf DEFAULT debug  True
openstack-config --set /etc/nova/nova.conf DEFAULT log_dir  /var/log/nova
openstack-config --set /etc/nova/nova.conf DEFAULT instances_path /var/lib/nova/instances
openstack-config --set /etc/nova/nova.conf api auth_strategy  keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri  http://controller+你的学号后3位:5000/
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url  http://controller+你的学号后3位:5000/
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers  controller+你的学号后3位: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
openstack-config --set /etc/nova/nova.conf service_user send_service_user_token  true
openstack-config --set /etc/nova/nova.conf service_user auth_url  http://controller+你的学号后3位:5000/identity
openstack-config --set /etc/nova/nova.conf service_user auth_strategy  keystone
openstack-config --set /etc/nova/nova.conf service_user auth_type  password
openstack-config --set /etc/nova/nova.conf service_user project_domain_name  Default
openstack-config --set /etc/nova/nova.conf service_user project_name  service
openstack-config --set /etc/nova/nova.conf service_user user_domain_name  Default
openstack-config --set /etc/nova/nova.conf service_user username  nova
openstack-config --set /etc/nova/nova.conf service_user password  NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled  true
openstack-config --set /etc/nova/nova.conf vnc server_listen  0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address  '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url  http://10.0.0.11:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers  http://controller+你的学号后3位:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path  /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name  RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name  Default
openstack-config --set /etc/nova/nova.conf placement project_name  service
openstack-config --set /etc/nova/nova.conf placement auth_type  password
openstack-config --set /etc/nova/nova.conf placement user_domain_name  Default
openstack-config --set /etc/nova/nova.conf placement auth_url  http://controller+你的学号后3位:5000/v3
openstack-config --set /etc/nova/nova.conf placement username  placement
openstack-config --set /etc/nova/nova.conf placement password  PLACEMENT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type  qemu
openstack-config --set /etc/nova/nova.conf libvirt cpu_mode none

启动 Nova 相关服务

  1. 启动 libvirtd 服务,并设置为开机启动。此处需要启动你的控制节点,否则无法正常启动openstack-nova-compute
systemctl enable libvirtd openstack-nova-compute
systemctl start libvirtd openstack-nova-compute

安装 Neutron 相关组件

  1. 安装相关网络工具和驱动。
dnf install openstack-neutron-linuxbridge ebtables ipset -y

neutron.conf配置

  1. 备份neutron.conf配置。
cp /etc/neutron/neutron.conf{,.bak}
grep '^[a-Z\[]' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf
  1. 修改neutron.conf,注意替换你的学号。
openstack-config --set /etc/neutron/neutron.conf  DEFAULT transport_url  rabbit://openstack:RABBIT_PASS@controller+你的学号后3位
openstack-config --set /etc/neutron/neutron.conf  DEFAULT auth_strategy  keystone
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken www_authenticate_uri  http://controller+你的学号后3位:5000
openstack-config --set /etc/neutron/neutron.conf  keystone_authtoken auth_url  http://controller+你的学号后3位:5000
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
  1. 查看你的主机 IP 对应的网口编号。VirtualBox 未修改过一般为enp0s3
ip a

  1. 修改linuxbridge_agent.ini配置,注意替换网口编号
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:替换为你的网口编号
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
  1. 修改 nova 配置,增加 neutron 相关配置,注意替换你的学号。
openstack-config --set /etc/nova/nova.conf neutron url http://controller+你的学号后3位:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller+你的学号后3位:5000
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

br_netfilter 模块

br_netfilter 是一个核心模块用于实现 Linux 系统内网桥的支持。

  1. 开启br_netfilter 模块。
modprobe br_netfilter
  1. 设置随开机启动。
echo 'net.bridge.bridge-nf-call-iptables = 1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables = 1' >> /etc/sysctl.conf
echo 'modprobe br_netfilter' > /etc/sysconfig/modules/br_netfilter.modules
  1. 设置权限
chmod 755 /etc/sysconfig/modules/br_netfilter.modules
  1. 查看模块是否已经启用。
lsmod |grep br_netfilter
  • 如果出现以下结果,则表示已经启用
br_netfilter           24576  0
bridge                290816  1 br_netfilter

启动 Neutron 服务

  1. 启动服务
systemctl restart openstack-nova-compute
systemctl enable neutron-linuxbridge-agent
systemctl start neutron-linuxbridge-agent
  1. 在控制节点上运行此命令,把新的计算节点映射到单元(Cell)。
nova-manage cell_v2 discover_hosts --verbose
  1. 在 Dashboard 查看是否有新的计算节点加入。

  2. 请搜索参考网上资料,实现在指定的新的计算节点上创建一个名为cirros+你学号后3位的实例。

注意新的实例需要通过命令方式指定运行在新的计算节点上。

  1. 登录新的实例,输出系统 hostname 和 IP。

【常见问题FAQ】

常见问题FAQ

扫码或长按识别访问