10G 网络升级(业务)

前年(12年)带着一个实习在啥都缺的情况下搞定了两个模块(30+ network devices)的基础网络。今年又搞了一把,又是一个危急存亡关头(真佩服那些经历了若干危急存亡还没死掉的 startup)临危受命,这种烂摊子的事发生的次数已经记不清了,要么忍要么滚,这其实是个很简单的道理。回到正题,既然答应再干一票,索性就做好。
这次的情况是啥都缺但是不缺钱,那问题就相对好办的多,钱能解决的问题都不是问题了,本着"能交给第三方做的尽量都交由其做"的原则(也正是由于这点给后面带了很多的问题),从前期的方案制定一直到最后走线、机器上架加电都外包由他们实施,在这个过程中我们是承担了包工头的角色,一方面跟他们协商一些细节一方面是在后面盯着往前推。当然最核心的 752 的灌装还是我们的人亲自动手来做。

问题的起源之前已经解释过了,业务上来了,想挡都挡不住。最终的架构设计也是烂大街的 752,其实除了这种经典的方式之外,还有一种 766 的架构,不过不大适合我们的业务。下一篇博客会着重总结一下技术面的细方,这篇博客仅仅总结一些业务层面的内容。

在这之前我们一直有一家固定的银牌代理商,合作的还算比较愉快,但是此次升级列出的清单的价格比后来半路杀出的干爹提供的要高一大截,当然直接跟他们说拜拜了,后来发现这是一个非常正确的选择,预算倒不是主要的原因,这个问题我会单独写一篇博客谈谈商务以及采购在整个运维生命周期里面的作用。
接上文,就在跟这家银牌代理商谈的差不多的时候,我们专注于卖假货的干爹半路出世。托他的福,找了家金牌代理商,大陆就那么几家,最终的报价当然有很大的杀伤力。
前戏依然是跟一帮销售加售前的黄金组合扯皮,几次谈下来,合作的也确实比较愉快,最起码邮件的书写没有任何的问题。但是越往后越发现靠不住,全程包括一个预约非常麻烦工作行程排的非常紧的售前兼售后,典型的半吊子。不吹牛逼的说,我花一天时间熟悉下某个协议绝对不会比他差;另外就是若干围绕他转的不知名酱油工程师以及若干实施布线的工程师,布线的老大是我接触的这么多人中比较有好感的,第一次意识到一条光纤也能弯的如此的优雅,看到多少会有些震撼,他们的线是按照弯曲的度数来计算的。
后来跟销售反馈了这个问题,他们也给足了面子,准确的说是给干爹的面子,特意从杭州调了一个工程师,结果打了半天酱油,第二天就回去了。自此之后,在经历了这么多的扯皮之后,还是要说句,不管做什么还是得靠自己,尤其是一些重要的程序。
为什么绝大部分的售前都是个半吊子了?举个印象特深的例子。用百度谷歌我已经不在乎了,能解决问题并且说明原因就好。当时我做了一次 write erase 操作,从头把 752 的十来台设备灌装一遍,因为不是很熟悉,花了估计有 2h,并且很不幸的,最后 7k 跟 5k 之间的 port channel 不通,尝试了若干方法都没找到问题缘由,后来该售前通过一条条对比我的 running-config 跟他自己的 running-config 这种非常 dirty 的方式发现原来是我把 7k 跟 5k 的 domain ID 弄重合了,至于为什么不能这样,含糊其辞的解释了几句话最后来了一句你记住不能一样就好了。后来我翻了下官方文档发现上面写的很清楚,domain ID 确实不能一样。从这件事来说,确实是我对系统的认知不足导致了这个问题的发生,并且由于时间关系,我也没有一页一页的去翻官方几千页的阿拉伯字母,很多都只是看一些 quick start 之类的文档速成学习的,最终的情况就是有些问题理解的不是很透彻。我一知半解因为我的主要工作方向不在这个方面,升级这事顶多算是我的副业,况且 752 的这套架构都是我现学起来的。而对于一个专业从事 752 架构的技术支持来说不能一针见血的指出这么基本的一个问题是不是显得太业余了。这类问题我认为只要平时脱离手册操作过几遍 752,浏览过一部分的官方文档应该都能很快的解决。
所以,在这里由衷的给那些看我博客的工程师一点建议,如果想从事技术路线,尽量少跟或者不跟这类人员打交道,除了浪费时间,你基本不能学到什么有用的。我做这个接口人的角色也并非自愿,上面已经说了。

由于公司之前没有一个人对此类架构的细节熟悉,机器到了之后倒是闹出了不少的笑话,最搞笑的是 7k 由于是 250V 的电源线不适用于目前通用的插线板,前前后后换过好几次插线板以及电源线。另外,由于之前规划的非常糙粗快,导致确定最终的接口方案时,发现还缺少包括 N2K、10G 多膜在内的不少整机以及零部件,好在这类问题都得到了及时的解决。

本次升级就当公司土豪了一把,扔了百来万学费给我去现场学习一下吧。当年见到一台两三万的现在看来非常烂的 R410 还敬畏一下,现在看到这百来万的设备都是直接加电插线开搞,丝毫没有了当年的的那份激动。

推荐两个官方文档,下篇会涉及一些重要的技术细节。
官方有个很基础也很重要的 《NX-OS CLI Management Best Practices Guide》,里面包含了从 Initial Configuration 到 Software upgrade/downgrade 等主要方面的介绍。
还有个 troubleshooting 的手册,写的非常完善。建议好好读读,出现问题之后的解决问题才是体现一个普通工程师跟优秀工程师区别的时候。

另外需要注意的一点,这里的 10G 是指除接入层服务器之外的 10G,除了一些相对特殊的服务(web server, cdn 等)之外,目前 10G 的服务器还不是那么的广泛应用,因此这里的接入层服务器还都是 1G 的接入。如果想了解 10G 服务器的接入,可以参考《Nexus 5K Layout for 10Gb/s Servers》这个(1, 2, 3, 4)系列的博客。 

最后这个是我写的一个简明的 752 step by step