使用DEVSTACK搭建OPENSTACK可remote debug的开发测试环境

这篇文章会记录一下如何搭建一个neutorn的开发环境。

小秦的环境是这样的:mba是我的工作电脑,上面跑了pycharm,代码都在pycharm里编辑,另外master分支的commit log也直接在pycharm里fetch了后查看。真实的环境运行在mac上安装的virtualbox中,是通过devstack搭建的单机版本的网络基于neutron(ml2 plugin,tenant network走gre)的开发环境。devstack的代码都是git下来的,所以可以直接设置git review进行开发。另外这里搭建的环境支持从mac上的pycharm直接remote debug虚拟机里的代码。同时因为工作家庭原因,经常会在火车上,所以这里搭建的环境可以在不访问英特网的情况下进行开发和测试(当然git review还是要网络的啦)。 Continue reading

JUNO NEUTRON ML2实现初次跟踪

上篇文章小秦分析了plugin和extension的加载机制,这篇文章我们来大略看下ml2这个core plugin是如何工作的(下次再细节上看下,多画图,第一次看这个头晕)。这篇文章会跟踪几个具体例子所涉及的源代码执行路径。在分析ml2之前,会分析下neutron中Controller的几个基本方法的实现,所以这篇文章会比较长。另外本文也会包含ovs agent、l3 agent等agent以及nova创建vm时候对neutron的调用的代码的简单分析。本文适合同时也在研究的人看,因为neutorn和agent以及ops其它组件的调用还是比较复杂的,不自己看代码很难理清。 Continue reading