Neutron DHCP-Agent问题分析定位(6)

本文详细分析了Neutron DHCP-Agent在停掉mysql后出现的问题,包括无法同步、tap端口未删除的原因及复现步骤。在mysql恢复后,尽管agent显示为up状态,但端口分配出现问题,导致地址冲突。作者探讨了dhcp port的处理逻辑,并指出即使dhcp_agents_per_network与agent数目一致,问题仍可能发生。恢复策略包括手动清理和代码修复。最后,验证了dhcp server IP冲突的情况,表明dhcp协议的健壮性。
摘要由CSDN通过智能技术生成

 作者:闫兴安

1.5.11  测试dhcp-agent的同步-停掉mysql

启动3个dhcp-agent,对应节点分别称为network1, network2, network3。

将neutron.conf中的dhcp_agents_per_network配置为2。重启neutron-server。

创建网络,观察网络创建成功,dhcp-port创建成功。

neutron port-show,看到dhcp port绑定在network2和network3上。

停掉全部mysqld,使得neutron-server无法更新port的属性。

 

查看dhcp-agent log,


出现无法report state的错误,即上报agent状态失败。

 

此时重启network1的dhcp-agent,因为无法上报agent状态,无法开始同步。

等待约10分钟,恢复1个mysqld服务。

查看dhcp-agent日志,发现并没有任何新的日志出现。【这里有bug】


neutron agent-list查看,各个agent已经为up状态。

 

此时查看两个dhcp-port所在的节点,分别在network1和network2。

分别在network1, network2, network3上查看namespace和dnsmasq的状态。


 

成功复现了bug。

 

进一步确认现象是否一致。

在namespace里互相ping,发现ping不通,这是因为出现了地址冲突。

 

新创建网络,查看功能是否正常。

网络创建正常。

到网络节点上查看dhcp namespace和dnsmasq服务,都正常。

至此,问题确认成功复现了。

 

 

1.5.12 tap未删除的原因分析

这里我们来分析一下,对于已经创建好的网络,为什么重启mysql,会导致

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值