最近阅读了OSDI 2016的paper,其中Praveen Tammana的Simplifying Datacenter Network Debugging with PathDump给了本人不少启发,这篇paper设计了一种新理念的网络debugger,PathDump。这里谈谈对这篇paper的一些感想。
DCN(Datacenter Network),是一种特殊的网络拓扑结构形式,主要用于数据中心和分布式计算架构的网络中, 其重要作用是能在大规模集群中增加聚合带宽。与一些高性能的网络设备相比,DCN往往更加廉价,兼容性更高,非常适合商用。目前,亚马逊和谷歌已经在逐渐部署各式各样的DCN。DCN的特点是switch,host和link的数量非常之多,一个DCN通常包括很多树状的拓扑层次,因此DCN给网络debug带来了巨大的挑战。
在网络部署和传输过程中,一些网络问题是不可避免的,在DCN中,在节点数量如此巨大的情况下,一个好的debuger显得尤为重要。下面列举了三个传统的网络问题。
目前传统的网络debug的方法主要还是in network的,比如说:
尽管in network的方法是有效的,但是缺陷也比较明显,那就是switch要承担复杂的debug任务,switch在传输过程中overhead非常之大。
PathDump则提出了一种全新的理念,它将debug任务分配给switch和终端的server,让服务器承担尽可能多的debug任务,而switch只进行一些简单、必要的debug。这样在switch上的debug开销将非常之小,而对于终端的server,这些debug开销几乎可以忽略。
PathDump,顾名思义,与packet经过的path有很大的关系。事实上,PathDump实现debug功能主要是基于path construction的。
这里使用的路径追踪的方法是本文作者的另一篇paper, CherryPick: Tracing Packet Trajectory in Software-defined Datacenter Networks。方法主要是基于DCN中使用最广的fat tree拓扑,由于它分为core, agg和tor三层switch层,因此当一个packet经过每一层的switch时,只需要在header里面嵌入关键link的ID就可以在receiver那里构建出packet的完整路径。
在终端的server需要用软件实现一定的debug程序。在每个server建立了一个TIB(Trajectory Information Base),用于记录path有关的信息。
在整个拓扑中存在一个甚至多个控制器,用于在switch上配置flow rules,以及执行一些debug任务(比如,获得某个server收集到的flow状况)。
PathDump给网络管理者提供了更为友好的API,只需要手动编写很短的python代码便可以在该系统上实现一些debug功能。
示例:检测事实的packet路径是否大于6 hops或者某个不该出现的 switchID出现在path里
1. PathDump提供了一种全新的网络debug方式,即主要利用终端sever,辅以简单的switch功能进行网络debug,大大减少switch的开销。
2. 尽管在使用范围上有一定的局限性,但是在DCN的使用越来越多的背景下吗,PathDump有其用武之地。
3. 目前PathDump能够支持传统网络debugger能处理的85%以上的问题。
4. PathDump的一些技术在SDN实现,可以说符合未来网络发展的趋势。
原文:http://www.cnblogs.com/jingyzzz/p/6239208.html