【版本】
当前版本号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 | 
【任务步骤】
从模板机克隆出一台新的虚拟机作为新的计算节点。命令可参考之前步骤。以下步骤如果没有特别说明,都在新的计算节点上执行。
把虚拟机 Hostname 命名为
computerB999。命令可参考之前步骤。设置新的计算节点的IP为
10.0.0.32。命令可参考之前Part 2 步骤6。控制节点和2个计算节点的
hosts统一配置为如下文本。命令可参考之前Part 2 步骤8。
10.0.0.11 controller999
10.0.0.31 computer999
10.0.0.32 computerB999
- 配置 chrony 和控制节点同步。命令可参考之前Part 2 步骤9。
 
安装nova-compute
- 安装 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配置
- 备份 Nova 的配置文件。
 
cp /etc/nova/nova.conf{,.bak}
grep '^[a-Z\[]' /etc/nova/nova.conf.bak >/etc/nova/nova.conf
- 修改相应服务的配置文件。注意替换你的学号。
 
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 相关服务
- 启动 libvirtd 服务,并设置为开机启动。此处需要启动你的控制节点,否则无法正常启动
openstack-nova-compute。 
systemctl enable libvirtd openstack-nova-compute
systemctl start libvirtd openstack-nova-compute
安装 Neutron 相关组件
- 安装相关网络工具和驱动。
 
dnf install openstack-neutron-linuxbridge ebtables ipset -y
neutron.conf配置
- 备份
neutron.conf配置。 
cp /etc/neutron/neutron.conf{,.bak}
grep '^[a-Z\[]' /etc/neutron/neutron.conf.bak >/etc/neutron/neutron.conf
- 修改
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
- 查看你的主机 IP 对应的网口编号。VirtualBox 未修改过一般为
enp0s3。 
ip a

- 修改
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
- 修改 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 系统内网桥的支持。
- 开启
br_netfilter模块。 
modprobe br_netfilter
- 设置随开机启动。
 
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
- 设置权限
 
chmod 755 /etc/sysconfig/modules/br_netfilter.modules
- 查看模块是否已经启用。
 
lsmod |grep br_netfilter
- 如果出现以下结果,则表示已经启用
 
br_netfilter           24576  0
bridge                290816  1 br_netfilter
启动 Neutron 服务
- 启动服务
 
systemctl restart openstack-nova-compute
systemctl enable neutron-linuxbridge-agent
systemctl start neutron-linuxbridge-agent
- 在控制节点上运行此命令,把新的计算节点映射到单元(Cell)。
 
nova-manage cell_v2 discover_hosts --verbose
在 Dashboard 查看是否有新的计算节点加入。

请搜索参考网上资料,实现在指定的新的计算节点上创建一个名为
cirros+你学号后3位的实例。
注意新的实例需要通过命令方式指定运行在新的计算节点上。

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