在过去的几个月(将近一年)中,我一直在进行(和停止)Openstack 的部署,在部署过程中遇到了许多问题,其中大部分是交换机配置错误或热模板配置错误。
我已经能够多次使用全新部署成功完成 Openstack 部署,但是当我使用项目准备 Overcloud 时,我无法创建实例。从“计算服务列表”的输出中:
openstack compute service list
+----+----------------+----------------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+----+----------------+----------------------+----------+---------+-------+----------------------------+
| 1 | nova-conductor | controller-0.host.cp | internal | enabled | up | 2021-04-20T20:43:03.000000 |
| 2 | nova-scheduler | controller-0.host.cp | internal | enabled | up | 2021-04-20T20:43:01.000000 |
| 12 | nova-compute | compute-0.host.cp | nova | enabled | down | 2021-04-20T09:47:52.000000 |
+----+----------------+----------------------+----------+---------+-------+----------------------------+
我还注意到,我尝试使用一个附加节点进行扩展,但它不存在于上面的列表中,也不在“虚拟机管理程序列表”中,但它可以从 undercloud 节点的“服务器列表”中看到:
openstack server list
+--------------------------------------+--------------+--------+-----------------------+----------------+-----------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+-----------------------+----------------+-----------+
| 5cb29129-7ce8-439a-b00b-3868d5a9aa74 | compute-1 | ACTIVE | ctlplane=10.128.0.136 | overcloud-full | baremetal |
| 58c3d587-d2a8-4601-87a7-3fd3d32a78b6 | controller-0 | ACTIVE | ctlplane=10.128.0.5 | overcloud-full | baremetal |
| 288dde8f-5664-42b2-b9f4-333992964dde | compute-0 | ACTIVE | ctlplane=10.128.0.75 | overcloud-full | baremetal |
+--------------------------------------+--------------+--------+-----------------------+----------------+-----------+
我已经进行了两次全新安装,现在我面临着所有旨在连接到控制器节点的计算服务的以下问题:
2021-04-23 22:28:37.891 7 ERROR nova keystoneauth1.exceptions.connection.ConnectFailure: Unable to establish connection to http://10.127.2.8:5000/v3/auth/tokens: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
从计算节点到 keystone 端点的手动卷曲产生以下(预期)输出:
curl http://10.127.2.8:5000/v3/auth/tokens
{"error":{"code":401,"message":"The request you have made requires authentication.","title":"Unauthorized"}}
我不认为这是网络堆栈中的问题,而是其他原因。如能得到任何帮助,我将不胜感激。
部署信息:控制节点 = 1 计算节点 = 2 已部署,4 个自检节点 操作系统 = CentOS Steam 8(undercloud 和 overcloud) 网络:
- 4 个接口:1 个主接口、2 个端口绑定 (OVS + LACP)、1 个存储端口
- 2 个 Juniper EX3400 集群(在绑定端口上配置 LACP)
如果需要任何进一步的信息,请告诉我。
编辑:
这里是来自 Compute 和 Controller 的 TCP 转储,概括了对 keystone 的调用的事务:https://pastebin.com/ADT4RCun
答案1
查看了我添加到问题中的 TCP 转储后,我注意到所有长度低于 1500 的请求都成功了,任何长度超过 1500 的请求都被丢弃了。
作为网卡配置的一部分,我将 MTU 设置为 9000,因此从服务器的角度来看,所有接口都已设置此值。交换机上从未设置过此配置。
From the nic configs:
- type: ovs_bridge
name: bridge_name
dns_servers:
get_param: DnsServers
members:
- type: ovs_bond
name: bond0
mtu: 9000
From the switch side:
> show interfaces ae5
Physical interface: ae5, Enabled, Physical link is Up
Interface index: 231, SNMP ifIndex: 713
Link-level type: Ethernet, MTU: 1514, Speed: 2Gbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Disabled, Minimum links needed: 1, Minimum bandwidth needed: 1bps
在增加聚合上的 MTU 后,成功收到了来自 keystone 服务的响应。现在我需要确保交换机上的所有非聚合端口也都是这种情况。