博客复活

回头一看两年多没更新了。

技术相关的这些年并没有太大的发展的,那些所谓风口浪尖、炒得来炒得去的新技术底层的还是那一套,并么有很大的创新,鉴于此加上搜索引擎的强大,单独分享或者为此花一两个小时写博客记录一些日常工作中的技术性问题意义就不大了。再者,对于绝大多的商业来说,在没有达到技术瓶颈之前就已经死掉了,很少听过某个公司某个产品因为工程性的问题导致流产的。

索性就不谈技术,给大家分享今年潜水遇到的一些有趣的事情。

18 年年底在 Cebu 潜水,把 AOW 给学完了,途径 Olango 去 Cabilao 一天三潜,跟几个成都人一起包船,有趣的事情来了,下潜到二十多米的深度,一个成都女同志拿出一张刺瞎人双眼的银箔,插到了珊瑚里,目测祈福相关的,这年头还有人迷信这个,不多见。下午上船的时候腿抽筋,只顾着拉伸,把潜水表给丢海里了,深海,看不到底的那种。

说到这里,在这之前去 moalboal 看沙丁鱼,浮潜,上船的时候 gopro 带子断了,导游帮忙确认到 gopro 丢的具体位置,二十米深,当地人听到这个消息,一个个跃跃欲试,土方子自由潜一个接着一个下去,最后一个老哥帮忙捡起来了,穿上一阵鼓掌欢呼,给了 2000 php 小费。

圣诞节的前夕去 SM City 看了部中途睡着了的电影,Aqua man,水王,起初我以为是电影院设备屏幕太落后导致的视觉效果,回来后 Google 了下发现真的就是那么烂,对不起,冤枉菲律宾了。

在离新年还剩 3 天的时候突然决定要跨年,热门的地方全部给订光了,于是跟 xxm 去了一个离 Cebu 大概两小时船程叫 Camotes 的岛,岛的形状很特别,可以类比雄性的一组蛋,中间通过一座桥连接两个圆形的岛,岛上最好的酒店 Mangodlong Paradise 已经预定出去了,只能住在隔壁的一个酒店,没有海景,只有一个花园,这都是后来才知道的事。很神奇的是,我们住了 3 晚,一共就遇到三四个房客,早上吃早饭,从未碰到过其他房客,冷清的很,尤其是晚上,有点恐怖,去的时候船晚点,入住的时候接近零点了,在前台等服务员可能等了有一刻钟,周围什么吃的都没有,酒店也没有,睡觉的时候下雨,据说 xxm 被吓醒了,当然我是一如既往的睡死过去。

Camotes 岛太小了,我们包了两天车把整个岛绕了几圈,再加上整个岛上饭馆少的实在可怜,网络信号差的得站在某个特定的地方对着特定的角度才能接收到信号,索性剩下的时间就都呆在隔壁的酒店了,也算是因祸得福,在那里,完成了目前最有趣的浮潜体验,倒不是说水下的生态有多棒,相反的是水下有很多的塑料酒瓶垃圾,之前所有的浮潜其实多少都是有时间限制的,但是,这个酒店,或者说这个岛,是真的感觉不到时间的存在,当你完全不用考虑时间的时候,很多事情就变得不一样了。所以每天中午吃完饭,就穿上水母服,静静的漂在海上,仔细的欣赏水下的每一个生物,看到了海星在缓慢的爬行,螃蟹左右钳交替着吃东西,小丑鱼在快白化的海葵离东躲西藏,有时候为了让 gopro 拍出最好的视频,会重试好多次而乐此不疲,一飘就是一个小时,上午潜,下午潜,每次都能看到不一样的东西。

不管如何,如果在 Cebu 呆的时间比较长可以专程去趟 Camotes,但是休闲放松绰绰有余,有几个沙滩尤其是 Mangodlong 不比长滩差。

新年就这么过去了,接下来直杀 Coron, Palawan,世界级的沉船之潜,在 Chindonan 呆了三天,Resort 有自己的船,去沉船很方便,3 潜沉船,1 潜珊瑚。

前一天晚上入住,工作人员很专业,大家一起吃完饭瞎逼扯,最后跟丹麦的潜导 Julius 讨论制定潜水计划,计划八点开船出发,结果第二天,新加入了一对环游世界的 switzerland 小情侣入住酒店,等他们收拾一下吃完早饭相互聊了会,最终十点出发,这都没什么,毕竟潜水安全开心最重要嘛。科隆  morazan 船,第一次下这边的海域能见度不高。我跟 Julius 一组,小情侣一组,开始下潜到 20m 深的时候,Julius 停留点名确定大家状况,在水底我都是死死跟着潜导的,结果发现男的没了,而他女朋友跟着我???我们三一脸懵逼相互对视,原地找了一分钟没人,上潜,结果在 10m 的地方发现了那男的,瑞士男朋友忘带 gopro 防水壳,10m 的地方 gopro 在哔哔哔叫,不忍心继续下潜。关了 gopro,继续下潜。当天的第二潜是 olympia maru sangat wreck,看到了 stone fish,lion fish 以及各种生物,穿越了半个船,呆了 44 分钟。第三潜岸潜,各种 nudibranch, sea horse。

第二天,早上 7:30 一潜。因为酒店很小第一天入住的时候认识了一对荷兰的夫妻,四十多岁刚结婚,特别黏超级秀恩爱,FB 上各自拿对方头像做封面(后来知道的),不大像我对西方人士的即往感受,一个劲要跟我学中文,他们前一天去 Irako,40M+,难度太大,我胆小没跟着一起去,跟荷兰老夫妻以及瑞士小情侣一起潜了 kogyo maru,水域超级平静,没有浪,下水后悲剧的是 gopro 死机了,索性专心潜水观察,Julius 指了看了好多的有趣的鱼,并且用那个丁丁棒挑逗他们(这样是不对的),长得像蜘蛛的螃蟹在绳索上爬行,穿了一整艘船,特别磅礴,Kogyo 是二战日本 cargo ship,里面水泥袋,绳索啥的都完整的留在了船上,进去之后真的感觉是在读历史。荷兰老夫妻回国后还专门给制作了一个视频剪辑配上震撼的 BGM 表达对我的感谢。

早上潜完这一潜就结束在 Chindonan 之旅了,因为在酒店的吃喝包括潜水都是单独收费的,结账的时候,竟然少算了几百 RMB,不知道是打折的了,还是真的是菲律宾服务人员的数学不行,不得而知。

下午去 Coron 市区,呆了五天,迫于 xxm 的压力,只潜了一天 3 潜。

第一潜, barrucuda lake,传说中的冷热湖,其实是自由潜的胜地,能见度很高,冷热分层肉眼可见。第二潜 east sangat gunboat,以为就是个小破船,但是跟着潜导在船里面左绕右绕,穿越不同的舱室,真是锻炼中性的好地方。

第三潜,跟在 Chindonan 的第一潜一样,morazan 沉船,跟一个 61 岁的美国佬一起,第一次穿越的大多为大空间舱室,可以同时穿越几个人的洞口,这次明显跟上次不同,比第一次难度大多了,很多都是一人大小的洞口,超级锻炼中性,气瓶被卡了几次,好在不慌都慢慢下沉回退一点重新穿越。在做潜水计划的时候潜导跟我们说了有这么一个舱室,水特别清澈,14m 深的地方可以伸头出去,大概水平往上一米的高度没有水,可以头伸出水面,但是不能摘掉面镜以及说话,担心里面有有毒气体,当真的见到这一幕的时候,还是被这场景震撼住了,我们三人头同时伸出水面发出嗯嗯的声音,声音反弹到舱壁产生微弱的回音,墙壁爬满了红色的虾跟黄色的螃蟹。大部分的舱室都是手电达不到光的地方一片漆黑,有次手电往下瞎晃,看到一条死的大鱼躺在地上,尸体被蚕食了一半,一群小鱼围着啃噬,不由得倒吸凉气。

科隆这个地方真的是太小太无聊了,我们把科隆镇上看上去还行的餐馆咖啡店都消费过一遍,徒步绕了市区 N 圈,逛街的时候跟 Chinadonan 老板碰了几次面(Chinaonan 距离镇上船程一小时)。。。

菲律宾的潜水到此结束,总结起来就是,菲律宾这地方真的是自然风光无限美,其他的就没太多要求了。

xxm 爱吃菠萝,这次就是靠菲律宾有好吃的菠萝哄骗过来的。在北京吃到的菠萝都写着原产地菲律宾都乐,包括之前在香港 Hysan 楼下超市吃到过大为惊叹的菠萝都写着源自菲律宾,这次来,从地摊到超市尝了若干,没一个口味对劲的。推荐大家吃吃他们的 lechon,就是烤乳猪,以及 sisig,可以理解为菲律宾版的老干妈,超级下饭。在 Camotes 上的 Mangodlong Paradise 里面,我们就是靠 sisig 填饱肚子的,后面去 Coron 市区,在 Westown Resort 也是每餐必点 Sisig。之前出去玩从没吃过中餐,都是吃当地的食物,这次实在没办法,最后的几天,连续吃了两天中餐,西红柿蛋汤,鲜美。

八月份的时候去新加坡,时间比较紧,只有一天,就去了圣淘沙水族馆,前一天晚上发现可以潜水还邮件预约了下,第二天去的时候人家说要提前一周预约才可以,作罢。

十月份再去新加坡的时候,提前半个月就预约了潜水,价格跟东南亚肯定不好比,但是环境包括服务很一流的,体验了一次水族馆的潜水,在 Adventure Cove Waterpark 里面,最深 12m,呆了半个小时,在圆柱型的封闭水箱里面潜,然后被一群人看猴子,看到了鲨鱼的卵鞘,之前一直以为鲨鱼是产的那种圆的透明的卵,直到潜导拣了一个给我看才发现不是这样的,还有掉落的 manta ray 的牙齿,白色的,除此之外并没有特别的,可能是好久没有练习了,五米停留的时候竟然差点飘上去。

本来第二天还预约了一个 shark dive,上面潜完后去场地看了下,面积比上面的还小,但是鲨鱼的密度倒是很大,不是很有意思,取消了。

年初的时候买了块 Garmin Descent MK1,一直没用上,这次潜水特意用了下,真的是除了时间是准的,其他都不准,两个字,垃圾。

Installing Debian jessie on Loongson notebook(8089_B) with Ubuntu keyboard suits

I got a white yeeloong notebook last year, and it costs me 300RMB which ships with a Loongson 2F CPU, 1GB DDR2 memory bar, and a 160GB HHD.

The netbook has a pre-installed Liunx based operating system, I can't tell its distribution, and it looks quite like a Windows XP. Since then, I put it in my closet and never use it again.

Yesterday the untouched toy crossed my mind, so I took it out and spent a whole night to get Debian Jessie working on my yeeloong notebook. Here are some procedures you may need to note if you want to have your own box running.


At the beginning, I download the vmlinux and initrd.gz file from Debian mirror. I set up a TFTP server on my mac, ensure it's working from local. later I power on the notebook,  enter into the GMON screen, using ifaddr to assign a IP address manually, and it can ping to my mac, this means the networking works now. Problem comes since then, I execute load directive to load the vmlinux file, everytime after several minutes waiting, it shows connection timeout, after some time debuging, nonthing exceptions can be found since the tftp server and the connectivity between my mac and yeeloong both normal.

I give it up and find a USB stick, this time I'm going to put vmlinix and initird file into USB and let the notebook boot from USB. You have to check that the filesystem is formatted as ext2/ext3. Most importantly, the single partition must not be larger than 4GB, say, you have a 8G USB,  you need to format at least 3 partiitons, 3-3-2 is a good choice. If the partition is larger than 4GB, you can't even enter into PMON, and it just stalls here after you power on with USB attached to your notebook with "filesys_type() usb0 don't find" showing on the screen.


After entering into PMON, you should find your USB using devls directive, then type:
> bl -d ide (usb0, 0)/vmlinux
> bl -d ide (usb0, 0)/initird.gz

Don't copy directly, you need to figure out partitions location in your USB, maybe yours is (usb0, 1), and your vmlinux file is called vmlinux-3.14-2-loongson-2f.

Be patient, I waited about 10 minutes before both files loaded into memory successfully, press "g" to let it run. Haaaaam, there're fews steps to get a brand new toy.

The installation process now begins, press Yes/No, answer questions as your normal. at the end, I choose to install LXDE desktop environment. For me, I waited about 2 hours to finish the installation.

Now, reboot, and finally, it enters into LEVEL 3 without X because of some buggy tools.

Download the xserver-xorg-video-siliconmotion package from here, don't upset with the tool's version, you need some modifications to make it work on jessie.

Using dpkg to unpack the deb file, remove xorg-video-abi-12 from its control file in "Depends" section, repack the file, before dpkg -i, using apt-get to install the xserver-xorg-core file.

startx, you will get the final screen. The default network manager for LXDE is Wicd Network Manager which is fine, what if you want to use command line, you need to modify the interface file and some other steps before connected to internet. 

Wow, with Ubuntu keyborad suits, it's definitely a good combo.

How about the performance? No matter what I run, it always ends with CPU bound, and the average load with LXDE is around 1. That does not hurt, since it does not bother me too much, but It takes more than 3 minutes to boot up, probably slower than the majority of Windows users ;-)

Since the dummy box is terribly slooow, Why you buy the box? well, just for fun.

换了套新工作环境

一年折腾一次,一次折腾两天。
花了点时间上了套四屏幕的工作环境。之前的工作环境是:
* 一台 mba,基本用来拿在手上到处跑。
* 一台台式机,Arch,还是 3.4 的 kernel,看 /lost+found/ 还是 12 年 2 月分的,工作主力,印象中是自费笔记本给公司打了大半年工之后给配置的。
* 台式机左边是另一台台式机,配置跟上面的类似,主要用来看监控,看图。使用时间跟上面一样。

后来随着要盯的图越来越多,要开的屏幕越来越多,两台 Arch/Awesome 已经无法满足需求了,尽管一台 Arch 默认可以切换 9 个屏幕,但是切来切去依然是是很不方面。
于是搞了个四屏的架子&一个四屏的显卡。架子型号是 BEWISER S4;四屏的显卡是 Nvidia quadro nvs

下图是新的环境。

把四台显示器上架捣鼓捣鼓一个多小时,显卡的 setup 绕了些弯。
最初听说是不支持 Linux,心想既然看看监控也就忍了,真的上上去了之后发现 Win7 太难用了。一块屏幕下面没法继续分屏,即使人肉把两个浏览器堆在一个屏幕上,由于浏览器乱七八糟导航栏之类的存在还是会浪费非常多的空间。即使他们可以手动去除,但是,用过平铺窗口管理器的都知道,他们离心目中想要的样子还是差很远。
于是尝试用目前服役的 Arch 来安装这块多屏显卡,结果手贱在升级之前 Syu 了下,整个系统都玩挂了,不想折腾了,确定 Ubuntu 可以安装 awesome 之后,直接搞了台 12.04 的机器过来。
安装 NVIDIA-Linux-x86_64-340.46.run 这个驱动,安装之前要关闭一切的 X,具体的安装过程看这几篇文档就好了(1, 2)。 

如果最后没成功,按照他的提示基本就是要么显卡没插系统没检测到,要么就是系统有其他不兼容的驱动存在等等之类问题。
nvidia.ko 生成了之后,按照我这边的情况是没发使用的,我的 master screen(四个显卡口的第一口)系统起起来之后一直是 Ubuntu 的紫色屏幕,后来估计是 xorg.conf 的问题,一看果真是。
xorg.conf 的书写还蛮麻烦的,需要先熟悉下语法。另外务必写对 BusID,否则再怎么折腾都是起不来的。
Nvidia 自带的 nvidia-setting 不是很好用,我试了几次没成功就直接改 xorg.conf 文件了,理论上 nvidia-setting 的所有变更都会反映到 xorg.conf 里面。
折腾到这里就差不多了,Ubuntu 该装什么就装什么,改成 awesome 的,外表看上去跟 Arch 差别不大, 目前的是:
* 左边一台继承自之前老的纯 Arch,已经不大用了,准备还给 IT 了。
* 中间四台屏幕由右下角的主机带着,主力工作环境,Ubuntu 12.04+Awesome 管理器,几乎所有的工作都在上面进行。上方的两块用来看我们核心业务的 dashboard,zabbix 的监控会在另外的一个桌面上,左下角的主要是浏览器,firefox 全局 sock proxy,chromium 的不开 proxy,右下角的写代码登录线上机器。OpenVPN,anyconnect,synergys,sock proxy 全部在右下角的另外一个桌面上。
* 右边的 mba 依然是打下手的工作。之前是把 anyconnect 放在这台机器上的,后来发现 Ubuntu 可以通过开启 OpenVPN 以及 anyconnect(anyconnect 真是个恶心的玩意儿,给你强行推送路由表,给你强行修改 iptables。推就推了,还把整个 10/8 的全给推过来了,要是你的内网也是这个段的,那是彻底废了),mac 现在除了开会几乎不用了,不过用 preview 看 pdf 倒是蛮爽了,尤其是高亮操作,Linux 下目前没有一款软件能真正的实现此类功能。
* 全局通过 synergys 以及一个 thinkpad 键盘控制所有的屏幕操作。
新安装的 chromium 好像没法在浏览器里面设置 socks5,不过可以通过命令行直接启动。一套好的做工环境对效率的提升还是非常明显的。
我这次可没黑苹果,别再发生什么口水战了。

家用路由器被入侵了

某天上网浏览网页,半天都返回不了结果,OS X 虽然不怎么样,Firefox/Chrome 浏览个网页应该没什么大问题。
最初以为是浏览器的问题,直接重启,无效;重启 Mac,继续无效。好吧,既然重启都不生效,索性咱们从专业的角度来分析分析问题。
抓包。结果令人惊讶。

我的机器主动给路由器(192.168.2.1)发送了大量的 RST 包,在没有任何主动 SYN 的情况下。第一反应就是受到中间人攻击了。
登到路由器后台一看,果真有几个不认识的客户加到了这个 SSID 里面。
后续的重启改密码就不说了,虽然用的是 WPA2 的加密方式,但是密码太弱智了,花几分钟暴力破解一下应该都能出来,引以为戒。

后续留几个连接大家可以参考参考。
如何通过 Sequence Number Predictionl 的方式来进行 MITM 攻击,手法跟我遇到的类似。

出现 TCP rst 的几种可能:
1.1. Where do resets come from? (No, the stork does not bring them.)
1.2. RST flag at end of TCP transmission 
1.3. What causes a TCP/IP reset (RST) flag to be sent? 

2.1. Why TCP Reset sent after receive [FIN,ACK] Packet? 
2.2. TCP option SO_LINGER (zero) – when it's required

3.1. Windows sends RST after SYN-ACK on a TCP connection
3.2. RST after SYN-ACK
3.3. Why on receiving SYN/ACK, a RST packet is sent with certain sites
3.4. why kernel sent RST to a remote TCP server after the machine receiving a SYN/ACK packet?
3.5. why do Client send a RST packet during TCP handshake? [closed]
3.6. Why would a client send a RST packet as reply to a SYN,ACK? 

4.1. TCP: Server sends [RST, ACK] immediately after receiving [SYN] from Client
4.2. Why do I see a RST, ACK packet instead of a RST packet? 

最近半个月的工作[14P]

5 月发生的事,6 月补充完,9 月发出来 ;-)


5 月 13 日周二
开始我们另外一个核心 IDC 最后一次常规性 10G 升级,下面的一部分我们后来把他总结成了《5 月故障总结(post-mortem)》
回家睡了会儿,3:00 am 起床,4:00am 开始连续干了 6h
回公司休息了 1h,塞了点巧克力复活
中午去水立方进行了常规的 1h 训练
回来面(对了,我们目前招高级应用运维工程师 PE,有兴趣的给我简历,邮箱是 w 在 umeng 点 com)了一个候选人,结果在我问到第二个问题的时候就怂了,第一个问题是常规性的自我介绍,第二个问题也是我最喜欢问的问题之一,最近半个月在做什么
由于 uplink 依然在老的网络环境中,我们老的 3750X 到新的 Nexus 中间的 8G port channel 链路中的一条物理链路由于 LB 的算法不科学,导致其打满丢包的状态,当机立断,直接让 NE 更改了 LB 的算法,效果明显

5 月 14 日周三
由于 uplink 这个不稳定因素的存在,开会讨论最后一次也是最重要的升级以及收尾工作,由原本的周四凌晨升级提前到了周三凌晨进行
10G 的最后一次也是最重要的升级,应为涉及到切换我们的 uplink,迁移我们的 GW 以及我们两地双机房中间的互联链路迁移
晚上去和颐休息了 3h,凌晨 3 点干到早上 7 点,期间除了 uplink 切换成功之外,其他的均已失败回滚告终,回酒店休息了 3h
中午回公司继续,讨论了凌晨出现的一些问题以及解决方案,其中我们两地双机房互联链路不通的问题最后发现是 HSRP 的问题
凌晨 GW 迁移失败之后,我跟我们 ne, director 回公司模拟了一下当时出现问题的场景,想了几种可能的原因,不过都被实际的模拟结果所否定,唯一的可能性就是服务器会自动的更新 arp 表,找到新的 GW 地址
下班之前,上面遇到的所有问题都已经找到了问题的根源,想到了对策,唯独 GW 的问题,这个对我们整个生产环境的影响绝对是毁灭性的,一旦 GW 迁移失败,我们所有跨 VLAN 的访问都将失败,由于当时时间太紧迫,根本没有时间让我去 debug 就回滚了,我也就无法得知当时真正的现象以及后续的细节
临走之前,我们 director 问我要不要他过去帮忙,我当时是拍着胸脯说的「相信我,你回家休息吧」,虽然我当时有 95% 的把握确认了上面提到的迁移失败的原因以及 80% 左右的把握让我在非常短的时间内 debug 找到问题并且修复,其后者是最具有挑战性的

现在看到的我们的还是 1G 的上联,等你看到这篇博客的时候,应该已经升级到了 10G 的上联了

5 月 15 日周四
这次升级提前预留了充足的时间,从 3:30 – 6:00,我觉得 3h 的时间足够我 debug 一个中等难度的线上问题了
跟昨晚一样,先是回酒店休息了一下,凌晨 2 点开足马力一直干到了早上 8 点多,GW 的问题也在我们开始的第一步被我很快的发现了问题的原因并且修复,两地双机房互联 HSRP 的问题也后续被我们 ne 一举解决,「基本完美」收官,为什么这么说?因为后续的几天出现了若干的问题,好在都不是我们核心的 Nexus 引起的
回酒店休息到 11 点,打车回家准备继续休息,结果在车上就收到报警说我们的一台前端的 ngx 挂了,当时电话跟我们工程师沟通了下,看现象不大像是新升级的网络造成的,回家又花了 1h 时间救了把火,最后查明原因发现确实跟网络没有关系,只不过在这个敏感的时间点上,出现任何的问题,正常人都会不由得往网络上面倾斜
下午先赶到公司跟我们 director 沟通了进展的,然后赶到清华,在那儿度过了下午剩余的时间,干嘛的了?我花了 3h 的时间去拜拜 RMS 大神,花了 1h 的时间跑到教室外面的走廊插上了 3G 网卡排查了一起路由问题
RMS 大神确实蛮有意思的,下面这三段视频是我当时在现场拍的,虽然 RMS 说不要把这些视频照片传到 youtube, instgram 上,但我还是本着共享的精神跟大家分享了:

  1. Windows is malware
  2. Dancing during class break
  3. St. iGNUcius avatar

下午在会场收到反馈说,我们某个 storm cluster 的处理性能出现了问题,时间点跟我们升级网络的时间几乎吻合,但是从我们内网的各项监控指标来看,数值得到了前所未有的好转,pkg loss 由原来的 8% 直接变为了 0,latency 也由原来高峰时期动辄 4, 5ms 直接下降到了 0.2ms 以下,直觉告诉我几乎不可能是核心网络引起的,但是,没有更有力的数据来证明这些
看码农们在邮件里面以 「猜测」、「推脱」的姿态开始了问题的 debug 之后,我直接以「明天人齐了一起讨论下吧。」结束了这场闹剧
听完演讲之后本想回公司报个销就回去休息的,结果的结果,碰巧我们一个核心业务线上出现了很严重的性能问题,伴着麦当劳雪碧继续搞到了接近凌晨,没找到的问题原因,但是紧急扩容了一些机器,情况有所好转

两个出口的 ngx 都挂了


两个出口的流量一个跌没了一个直接爆了

Continue reading

1000 天的日日夜夜

11 年的 7 月 10 号来到这里,一周之后的晚上,跟我们 CTO 以及另外一个 TL 一起开始了我们第一个正式 IDC  的「破土动工」,机器是不会说谎的,下图是我们第一台交换机的信息。

May 22 2014 是我们第一台线上机器跑到 1000d 的日子,这是目前我们仅有的三台跑着 CentOS 5.6 2.6.18-238.el5xen 的机器;另外,也是三台仅有的跑着 xen 的机器,当年曾经穷的把 LVS 放在这上面跑。如果不是 208.5d 的 bug,估计同一时段会有很多的机器跑到 1000d,现在同时期上的那批机器不少都跑到了 600、700d。

三年时间发生了很多事,很多有趣的事,不少悲伤的事,没有永远的朋友也没有永远的敌人,只有共同的利益。