OpenContrail在中科院的时候接触过,那个时候还是个学生,书生气比较多(当然现在也很书生气)。当时觉得这玩意不够先进不够酷,其实就是没用OpenFlow,没用OVS,这两个潮流技术做数据面。到公司之后回过头来看,觉得真的是牛逼的不要不要的。

SDN的精髓,真的在控制器上,而控制器的精髓,不在于用了什么OpenFlow的技术,而是用统一的模型,描述网络的行为,真正牛逼的控制器,哪怕底层是一堆硬件交换机,他照样能够打造一个你想要的虚拟网。这个控制器能够干netconf/BGP/RESTFUL,无论你想怎么做,都能把底层给你收拾的服服帖帖的。于是终于明白OpenDayLight为啥有百万行的代码量。相比之下,contrail的控制器貌似只有十来万行,算精简了。

废话不多说了。今天找时间把OpenContrail的所有代码都down下来,想打造一个能跑的开发沙盒。记录下过程和踩的坑。

首先是途径问题。有两个途径,一个是下载contrail-installer,然后直接运行脚本,而是follow instructions。之前选择的是第一种方法,但是被一个apt-get问题卡住了。后来选择了第二种方法,其实殊途同归,同样是需要解决这个apt-get的问题。下面主要说下第二种方法怎么搞。

玩这种国外的大型开源软件(源代码有1.2G之大),最大的问题其实在于墙。第二种方法的问题也确实在这里。一开始就要用google的repo工具来管理代码。但是repo工具的官方原版需要从googlecode上下载repo工具,于是就被卡住了。花了两三个小时来解决虚拟机翻墙问题,后来无意中找到一个网页可以不从googlecode上下代码,而可以从github上下代码,问题三分钟就解决了。

然后就开始冗长的git clone,谢天谢地墙没把github给封了,不然国内的科研事业也会停滞好几年。中间出去打了两局游戏,回来的时候才发现下完。然后开始装一些安装包。我看了下,又卡在了apt-get问题上。

这个问题主要是需要更高版本的lz4软件包,但是源里没有。这里学到两个有用的命令:

apt-cache showpkg XXX

可以看出该软件包有那几个源提供,分别提供什么版本。

aptitude install XXX=Version

安装特定的软件包。

在网上特意找了一个高版本的lz4软件包,于是搞定了。就是这么简单。现在回过头来看,总结下就一条:

  1. 采用国内的源是最好的,sohu的ubuntu源,豆瓣的pip源,然后github上的repo工具,完美。

接下来开始编译了,估计要编好几个小时。看来入手一个台式机已经是折腾技术的刚需了。