0x00
网络操作中心里没有天气。
这里只有恒定的21摄氏度,和一种被空气过滤器反复过滤的、干燥的空气。L称之为“罐头空气”。
墙上是一整面巨大的拼接屏,上面是数据港的实时流量图。那上面奔涌的线条,就是这座城市的脉搏。L的工作,是确保它们永不间断,永不紊乱。
他是夜班的运维工程师。他的世界由仪表盘、日志和告警组成。
凌晨3:17,“嘀嘀。嘀嘀。”
一声低沉的蜂鸣,优先级3级的告警。不算紧急,但足够烦人。
L端起桌上的杯子,喝了一口。咖啡已经冷透了,像微酸的铁锈水。他没在意,吞了下去,眼睛盯着屏幕:
告警:[EU-West-04] R-42-U17-Srv3 磁盘阵列 输入/输出 延迟 > 500ms
一个老旧的边缘节点。
他熟练地调出Srv3的后台,日志如瀑布般刷过。没有坏道,没有中央处理器抢占。一切看起来……正常。
他敲了几个命令,强制清空了一次缓存。
状态:已解决。
他靠在椅背上。椅子发出轻微的“吱呀”声。这是网络操作中心里除了键盘声和告警声之外,唯一的“自然”声响。
凌晨3:29,“嘀嘀。嘀嘀。”
还是Srv3。
L皱起眉。他又看了一遍日志。一切正常。他远程重启了那台服务器。这是最无奈,也通常最有效的方法。
几分钟后,绿灯亮起。
他起身去接水。经过同事Z的工位时,Z正趴着,口水流在胳膊上。他的屏幕上,是一个刚满月的孩子的照片。L放轻了脚步。
他回到座位,喝了一口热水。胃里稍微舒服了点。
凌晨4:01,“嘀嘀。嘀嘀。”
Srv3。
L的火气“噌”地一下涌了上来。他不是对机器发火,而是对自己。他看漏了什么?
他调出了R-42机柜的物理传感器数据。温度:正常。湿度:正常。功耗:平稳。
这就像一个幽灵。
他点开工单系统,准备把问题升级给白天的硬件组。在“问题描述”一栏,他停住了。他该怎么写?“它就是会响”?
他删掉了写好的一行字。
0x01
数据港太大了。它本身就是一座城。网络操作中心是“云端”,是“天上”的指挥室。而数据大厅,就是这里的引擎。
L不喜欢去那里。
他刷卡,打开一层又一层厚重的气密门。最后一道门打开时,风来了。
那不是自然的风。那是数万台服务器风扇汇聚而成的、震耳欲聋的咆哮。热风像一面墙一样拍在他脸上。这里的“风”是烫的,是尖锐的。
他戴上降噪耳塞,世界瞬间安静了许多。只剩下低沉的、通过骨骼传来的震动。
EU-West-04区在B座三楼。这里很旧,空气中有一股老旧电容轻微泄露的酸味。这里是“云”的物质基础,是无数人“诗和远方”的物理载体。L只觉得这里是流放地。
他找到了R-42号机柜。
“U17-Srv3”。他找到了那台机器。指示灯绿色,风扇运转平稳。他拉出服务器导轨,像拉出一个沉重的抽屉。
他蹲下身,打开机壳。里面很干净,没有积灰。他盯着那块磁盘阵列卡,试图“看”出问题。
就在这时,他感觉到了,一种极其轻微的、高频的……震动。
它不是来自Srv3本身。他把手按在机柜的金属外壳上。是的,整个机柜都在抖。
这不正常。数据中心的机柜是严格固定的。
他走出R-42所在的“热通道”,绕到机柜后排。他用手电照着。
在R-42和R-43的夹缝深处,靠墙的地方,他看到了一根线。一根本不该在那里的、灰色的同轴电缆。它穿过了防火墙板,通向……墙的另一边。
0x02
墙的另一边,是数据港的“物业保障部”。
L从未去过那里。他刷了工卡,门没开。
权限不足。
他只好按了门铃。
开门的是个五十多岁的保安,正提着一个搪瓷缸。看到L,他愣了一下,好像在看一个外星人。
“嘛事?”
“师傅,我查个东西。你们这边是不是有什么机器在震?”
“震?天天震。”他指向角落,“那玩意儿,刚换的。中央空调的循环泵。”
那是一个巨大的、漆着绿漆的泵机,上面布满了阀门和仪表。它正在低沉地轰鸣。
L将手放上去,感受到的震动频率和R-42机柜上的,一模一样。
“这玩意儿,跟咱们机房的墙,就隔了一层水泥。”保安喝了口浓茶,“以前那个旧的没这么大动静。这个新的,进口货,劲儿大。半夜值班,坐这儿屁股都麻。”
L瞬间全明白了。
新的循环泵,频率高,马力足。它的物理震动,穿透了墙壁,引起了R-42机柜的“共振”。
Srv3是台老机器,磁盘阵列的机械臂和磁头本就有些老化。这种特定的高频共振,导致磁头寻道时产生了极其微小的物理偏移。
对系统来说,这就是“输入/输出 延迟”。
它不是一个算法问题。它是一个物理问题。
0x03
L回到了网络操作中心。
“罐头空气”似乎也没那么窒息了。
他坐在工位上。Z已经醒了,在看新发的工单。
“嘀嘀。嘀嘀。”
Srv3又响了。
L看着那条告警。他想,他应该提一个优先级1级的工单,让物业部给循环泵做“隔震处理”。或者,他应该申请一个“紧急变更”,把整个R-42机柜的服务器连夜迁移。
不过,那意味着一堆报告,无数个会议,以及未来两周的加班。
他看着屏幕上那些奔流的、永不停歇的数据。它们如此重要,以至于那个小小的、物理的震动也成了灾难。
他移动鼠标,点开了Srv3的告警配置。
很快就找到了“输入/输出延迟”的阈值:500ms。
把数字改成“800ms”,然后点击“保存”。
世界安静了。
他解决不了那台泵,也解决不了这栋大楼的共振。他甚至解决不了Srv3的老化。他只是决定,他不想再听见它了。
0x04
早上7:58,L打卡下班。
他走出数据港大门。一股潮湿的、带着水汽的风扑面而来。
这才是真正的风,带着隔壁早点铺的油条味。
他看到Z在路边发动他的旧电瓶车,后座上绑着一个粉色的儿童头盔。
“走了啊。”Z喊。
“拜拜。”L挥挥手。
他没有回家,而是拐进了那家早点铺。
“老板,一碗豆花,多加辣。”
他坐下来,滚烫的豆花滑进胃里。一种扎实的、滚烫的暖意从胃里升起,驱散了湿冷空气带来的寒意。他感觉自己重新活了过来。
他知道,网络操作中心的巨墙上,那些奔流的线条依旧在闪烁。
它们无处不在,在高处汇聚,又在低处渗透。
但那又怎样。
老板在隔壁案板上“咚咚”地剁着菜。
L又喝了一口汤。
他在人间。