Neutron在给虚拟机分配网络时,底层是如何实现的?

本文深入探讨了Neutron如何使用vxlan为虚拟机分配网络,指出当虚拟机数量超过250台时,vxlan因其支持的IP地址数量优势成为首选。详细介绍了Neutron在分配网络时执行的命令过程,包括创建进程、更改配置文件、加载网络到路由设备等步骤。此外,还讲解了sudo权限的配置,以及通过日志文件分析网络分配的详细流程。
摘要由CSDN通过智能技术生成

研究思路:

了解neutron和相关组件的工作流程。Neutron如何给不同租户分配网络

 了解vxlanvlan的区别

 了解linux的底层命令实现,看日志文件,并记录日志信息


首先需要了解neutron使用的是vxlan管理网络,在数据中心中如果虚拟机超过250台,那么就可以考虑vxlan。因为一个vlan最多只能使用4096个ip地址,而vxlan通过24位分片id,在一个数据中心内他能部署百万个虚拟网络。而openstack是基于云计算的大规模虚拟机管理,使用vlan显示是不足以支撑其庞大需求的。因此neutron使用的就是vxlan来配置虚拟设备连接客户子网和外部设备。

在分析neutron的neutron-dhcp-agent.log日志时,能够清晰的观察到,neutron在分配网络时执行了如下命令:

先创建执行命令的进程,然后执行该进程

['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec', 'qdhcp-0a807a08-337e-4e61-bf42-c9cd7b4df1e4', 'ip', 'addr', 'show', 'ns-00a7fb6e-ec'

动态更改配置文件,也是先创进程再执行

Running command: ['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'kill', '-HUP', '107920']

重新加载刷新网络

Reloading allocations for network: 0a807a08-337e-4e61-bf42-c9cd7b4df1e4 reload_allocations /usr/lib/python2.7/site-packages/neutron/agent/linux/dhcp.py:463

将网络添加到路由设备中

['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec', 'qdhcp-0a807a08-337e-4e61-bf42-c9cd7b4df1e4', 'ip', 'route', 'list', 'dev', 'ns-00a7fb6e-ec']

这些代码的执行逻辑是,先创建

/var/lib/

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值