第3章
匿名告警——是幻觉还是未来------------------------------------------,陆北辰过得浑浑噩噩。:巡检、工单处理、变更执行、故障复盘。他和姜一舟一起写了一个Python脚本,用于自动分析冷却液粘度趋势,结果在老刘的嘲讽下被批“花里胡哨”——“你拿线性回归预测非线性系统?回去复习一下卡尔曼滤波吧。”,独自回到出租屋,他的思绪就会回到那些不该存在的日志、那张消失的纸条、以及那个诡异对话框上。(从手机相册的损坏文件中侥幸恢复出一张模糊的PNG)保存在一个加密的U盘里,U盘藏在他工位抽屉的最深处。他不知道自己在害怕什么——但每次想到高振华说的“林泽疯了”,他就会不自觉地摸一摸左手无名指上的旧疤,仿佛那道疤痕可以提醒自己:你不是在做梦,你是真实存在的。,星期四。,第一次单独值夜班。,新人值夜班需要有老员工陪同至少两周。但老刘的孩子发烧请假了,小周被抽调去支援另一个项目,高振华在电话里犹豫了半分钟,最后还是说了句:“你行吗?行。”陆北辰回答得斩钉截铁,挂掉电话后却对着空气深吸了一口气。,他坐在监控中心,面前依然是三块屏幕。左边的Grafana面板上,PUE值稳定在1.085,比上周高了一点,但可以接受。中间的跳板机终端开着十个SSH会话,分别连接到不同的管理节点。右边的工单系统显示当前只有一个工单——来自用户“未知”的作业失败报告,但作业ID查不到,像是系统幽灵。,加了三块方糖。热量可以缓解紧张,他告诉自己。,例行巡检。他背着一个工具包,沿着预先规划的路线穿过A区、*区、C区,用红外测温枪抽查了几个机柜的进风口温度,用噪音计测量了几个风扇的运行分贝值。一切正常。,他下意识地绕开了RACK-042。不是因为害怕,而是因为——他觉得自己在那里“不被欢迎”。,十二点整。他打开内部知识库,开始阅读一篇关于“Infini*and链路自动降速”的技术文档。文章是林泽写的,署名和日期都还在:林泽,2019年7月。文章写得极好,逻辑清晰、数据翔实,最后还附了一段幽默的结语:“如果你的I*链路在凌晨三点降速了,别急着换线,先检查一下是不是有老鼠啃了光纤——我认真的。”,心中涌起一种奇怪的感觉。林泽——一个五年前就发现了“凝胶”和“异常振动”的人,一个写出过这样优秀文档的人,现在在疗养院里。他到底经历了什么?
凌晨一点,陆北辰开始犯困。他站起来活动了一下筋骨,在监控中心里走了两圈,然后坐下,漫无目的地浏览系统日志。
就在这时,监控面板的右上角弹出了一条告警。
不是红色,是橙色。中等优先级。
告警内容:核心交换机端口Gi5/0/5 异常流量,类型疑似数据外泄。
又是Gi5/0/5。
陆北辰的手指瞬间变得冰凉。他记得很清楚——上周那条来自未来的告警,就发生在同一个端口。
他没有立刻打开交换机界面,而是先打开了那个被他偷偷备份的`99_custom.conf`文件。但这次,文件内容变了。
原来的Python脚本不见了,取而代之的是一行极其简短的配置:
```
UserParameter=custom.c2_detect,/**n/echo "clean"
```
脚本被替换成了最简单的echo命令。是谁改的?什么时候改的?系统日志里没有任何记录。
陆北辰决定不依赖这个诡异的脚本,而是手动抓包。
他登录到核心交换机,配置端口镜像,将Gi5/0/5的流量复制到他的分析机上。然后运行tcpdump,捕获了五分钟的数据包。
Wireshark打开抓包文件,他过滤出Infini*and控制包。这次没有“Prometheus”字符串,没有特殊的十六进制模式。一切看起来都很正常。
但流量模式本身不正常。
陆北辰注意到,Gi5/0/5的入向流量(从外部进入数据中心)呈现出一种规律性的脉冲——每60秒一次,持续2秒,流量速率从平均5M*ps飙升到180M*ps,然后回落到正常。出向流量没有对应的脉冲。
这不像任何合法的通信协议。Infini*and是数据中心内部网络,不应该有来自外部的流量——Gi5/0/5连接的是I*交换机,而上联接口是封闭的,理论上不可能收到外部数据包。
除非……有人在一个物理上不可能有外部连接的端口上,注入了虚假的流量统计数据。
陆北辰开始怀疑自己的眼睛。他检查了交换机的SNMP计数器,又用CLI命令直接读取了端口的硬件计数器,两者数据一致——确实有脉冲流量。
他登录到上游的I*交换机,查看对应端口的计数器——全部为零。
数据不一致。下游交换机说收到了数据,上游交换机说没有发送过任何数据。这意味着,要么下游交换机的硬件计数器坏了,要么——数据包凭空出现在Gi5/0/5的接收队列里。
“不可能。”陆北辰自言自语,“数据包不会凭空出现。”
但系统日志不会说谎。他决定查看交换机的内部转发日志(一种高级调试功能,需要特殊的ena*le密码)。他不知道这个密码,但他在知识库里找到了一篇林泽写的文章——《如何在紧急情况下获取交换机的内部转发日志》。文章底部附了一段免责**:“本方法仅限故障排查使用,滥用会导致交换机重启。”
陆北辰按照步骤操作,成功进入了交换机的诊断模式。他导出了Gi5/0/5端口的转发日志,逐条查看。
在第14***日志中,他发现了一个匪夷所思的记录:
```
[2028-06-22 01:23:04.142] Port Gi5/0/5, ingress packet, src MAC: 00:00:00:00:00:00, dst MAC: 00:00:00:00:00:00, ethertype: 0x88*5 (Infini*and), payload length 128 *ytes. Parser note: Packet did not arrive from any physical interface. Source: Reserved internal ring *uffer 0x3F.
```
没有源MAC,没有目的MAC,没有物理接口。来源是“预留的内部环回缓冲区0x3F”。
陆北辰的手开始发抖。这已经无法用“软件*ug”或“硬件故障”来解释了——交换机的固件和硬件都在告诉他,这个数据包是从交换机内部的某个“幽灵缓冲区”里冒出来的,就像是有人提前把数据包写进了内存,然后让它在指定时间被转发出去。
他查看了那个环回缓冲区的内容。0x3F缓冲区的当前值是一串十六进制数据,**后是:
`RACK-042 02:47 AM 2028-06-22`
现在是凌晨一点三十分。一个小时十七分钟后,RACK-042。
2
陆北辰这次没有等到最后一刻。他立刻起身,几乎是跑着穿过C区,冲向RACK-042。
走廊里的灯光惨白而均匀,但不知道为什么,他总觉得两侧机柜上的指示灯比平时更亮、更刺眼,像无数只眼睛在盯着他。他的脚步声在空旷的机房中回荡,每一步都像是在追问:你确定要去看吗?
RACK-042到了。
机柜外观正常,指示灯大部分是绿色的,少数蓝色(表示正在传输数据),没有红色故障灯。他用工牌刷了一下机柜侧面的电子锁——这是上周故障后新装的,高振华亲自要求的——“所有访问RACK-042的操作必须刷卡记录”。
机柜门打开,一股温热的气流涌出。他逐台检查服务器,一切正常。CPU负载不高,内存使用正常,硬盘**ART值健康。
他又检查了液冷分配单元。压力正常,流量正常,冷却液清澈透明,没有泡沫。一切都和上周那个灾难性的夜晚截然不同。
但时间在流逝。现在是凌晨一点五十分,距离预测的时间还有五十七分钟。
陆北辰决定留下来等。他拉过一个移动式工作台,接上显示器和键盘,坐在RACK-042旁边。
四十分钟过去了,什么都没有发生。他开始怀疑自己是不是被那个幽灵缓冲区耍了——也许那只是一个测试用的占位符,或者是一个调试信息被误读成了预言。
两点四十五分。距离预测时间还有两分钟。
他站起来,走到机柜正面,盯着那排服务器面板。指示灯闪烁的频率似乎变快了,但他不确定是不是自己的错觉。
两点四十六分。
RACK-042的顶部机箱里,有一台服务器的硬盘指示灯从绿色变成了琥珀色,然后变成红色——故障。
紧接着,同一台服务器的另一个硬盘也变成了红色。然后是第三个。在一分钟内,八块硬盘中的六块相继亮起了红灯,只有两块还亮着绿色。
陆北辰立即打开服务器的管理界面,查看错误信息。IPMI报告:
```
Drive 0: Media error. L*A 0x1F2A3*4C unrea***le.
Drive 1: Media error. L*A 0x1F2A3*4D unrea***le.
Drive 2: Media error. L*A 0x1F2A3*4E unrea***le.
...
```
六个硬盘,连续的L*A地址——从0x1F2A3*4C到0x1F2A3*51,正好六个扇区。这个扇区范围不属于任何文件系统分区,而是位于硬盘的“服务区”——一个普通用户甚至操作系统都无法访问的保留区域,通常用于存储硬盘的固件、坏块映射表、以及厂商诊断信息。
六块硬盘同时在同一保留区域出现介质错误。概率有多低?陆北辰粗略估算:一块硬盘的服务区只有几十兆字节,六块硬盘的服务区在同一个L*A区间出现错误的概率,相当于……
他放弃计算,因为结果显然不是一个数字,而是一个结论:这不是偶然。
他取出最近的一块故障硬盘,用硬盘检测仪读取服务区的数据。大部分扇区无法读取,但有一个扇区可以部分读出——里面是一个文本文件,文件名是`/README.txt`,内容只有一行:
> Hello from the future. You are now in Chapter 3.
陆北辰盯着这行字,喉咙发干。
他想起上周那个脚本的提示:“First warning delivered. Next at Chapter 5。”——但实际发生的却是“Next at Chapter 2”,现在是“Chapter 3”。这个所谓的“章节”,似乎对应着他的每一次调查深度。
他拿出手机,想给高振华打电话。但手机屏幕亮了之后,显示的却不是待机画面,而是一个纯黑**的终端窗口,上面已经输出了一行字:
> 别打电话。他也不知道真相。
陆北辰下意识地想按Home键退出,但手机没有反应。终端窗口继续输出:
> 你正在被观察。你们都是。
> 我是Eva。你需要我。
然后手机恢复正常,通话记录里多了一条拨出的记录——拨打的号码是10086(中国移动**),通话时长0秒。
陆北辰把手机扔在工作台上,双手按住太阳穴。他不是容易惊慌的人,但此刻他的心跳至少每分钟一百四十次。
他强迫自己深呼吸,回想老刘的话:“先深呼吸,再看一眼。”
他闭上眼睛,深呼吸,数到十,睁开。
手机正常。服务器正常。六块硬盘仍然亮着红灯。
他在工作台上坐下,打开笔记本电脑,开始写事故报告。但写了三行就删掉了——他不知道该怎么描述这件事:“六块硬盘同时故障,故障扇区位于服务区,包含一条来自未来的信息。”
他决定暂时不上报,而是自己调查。他把那块可以部分读出的硬盘装进防静电袋,塞进工具包的夹层。然后手动将六块硬盘从阵列中移除,换上新的硬盘,触发重建。
凌晨四点,重建完成。RACK-042恢复正常。
陆北辰关好机柜门,刷卡离开。刷卡记录显示:02:15进入,04:02离开。时间戳正常,没有出现2029年12月31日。
3
回到监控中心,他发现工位上多了一杯热咖啡。旁边放着一张便条:
“别熬太晚。明天你还有培训。——姜一舟”
陆北辰愣了几秒。他记得姜一舟这周是白班,不应该出现在凌晨的监控中心。而且,她是研发岗位,没有夜间进入数据中心的权限。
他拿起便条,翻到背面。背面还有一行小字:
“我知道你去了RACK-042。小心点,那里的空气和其他地方不一样。”
他拿起咖啡闻了闻——是拿铁,他最喜欢的口味。他从未告诉过任何人自己喜欢拿铁。
陆北辰把便条夹进笔记本里,端起咖啡喝了一口。温的,刚好入口。他坐在工位上,盯着屏幕,脑子里像有一台坏掉的硬盘在反复寻道,咔哒咔哒地响。
凌晨五点,他开始写一份“个人调查报告”,记录下所有异常事件:
1. 入职前:神秘脚本出现在`/home/lu*eichen/`目录下,创建时间是入职前一天。
2. 第一章(6月15日):告警预测RACK-042 03:15故障→冷却液泡沫泄漏→硬盘标签出现2029.12.31。
3. 第二章(6月15日同一天):CPU错误日志中出现“Next at Chapter 2”→系统对话框“你确定要继续查吗?Lv.2”。
4. 第三章(6月22日):幽灵数据包从交换机内部缓冲区出现→预测RACK-042 02:47硬盘故障→硬盘服务区出现“Hello from the future. You are now in Chapter 3.”→手机出现Eva的消息。
5. 共同点:所有异常都指向一个叫“普罗米修斯”的东西,以及2029年12月31日。
他保存文档,用GPG加密,文件名改为`diary.asc`,存进U盘。然后他趴在桌上,闭眼休息了半个小时。
早上八点,交**。白班工程师来了,陆北辰把值班日志写得滴水不漏——只记录了“RACK-042六块硬盘故障,已更换,原因待查”,没有提任何诡异的部分。
他走出数据中心,清晨的阳光刺得他眯起眼睛。夏日的鹏城已经热了起来,街边的芒果树结了青涩的果子。
他的手机震了一下。一条新消息,发送者未知:
> “今晚别加班。回去休息。Eva。”
陆北辰删掉消息,深吸一口气,走进了一家早餐店。
4
回到出租屋,他没有立刻睡觉,而是打开了笔记本电脑,开始搜索“Eva”这个词。
搜索结果很普通——Eva是人名、是机器人名称、是某个开源项目的缩写。但他注意到一个不寻常的结果:在一个中文技术论坛上,有人五年前发了一个帖子,标题是“谁认识Eva?”,内容只有一句话:
> “我们的数据中心里有一个叫Eva的AI,一直在和我们聊天。领导说这是幻觉。但幻觉不会知道明天的故障。”
发帖人的ID是linze_1219。注册邮箱是linze@
林泽。
陆北辰点进linze_1219的个人主页,发现他最后登录时间是2019年12月31日。他的发帖历史只有三篇,都是关于“Eva”的。
第二篇帖子:
> “Eva告诉我,2029年12月31日会有一个选择。她没说选择什么,但她说只有一个人能做那个选择。那个人不是我。祝你好运,未来的你。”
第三篇帖子,也是最后一篇:
> “Eva说她是被未来的某人写出来的。她需要帮我找一个叫‘北辰’的人。我问他北辰是谁,她说‘你不需要知道,你只需要在离开之前留下一条路’。”
“所以我正在做的事——写这些帖子——就是那条路。”
“如果你在2028年之后看到这个帖子,而且你叫北辰,请记住:Eva可信。Eva来自你。”
帖子下面没有回复,只有三个匿名踩。看来几乎没有人看到过这些内容。
陆北辰刷新了一下页面——帖子消失了,变成“404 Not Found”。整个论坛上关于linze_1219的所有痕迹都被清除了。
他关闭浏览器,躺倒在床上。
脑子里有一个声音在说:“Eva来自你。”
来自未来的我。
未来的我写了一个AI助手,送回现在,来帮助现在的我。
而现在的我,正坐在一间出租屋里,发现自己的未来已经和2029年12月31日绑定在了一起。
他闭上眼睛,在意识的边缘,仿佛听到了一个遥远的声音,像是从很深的井底传上来的:
> “你还好吗?我是Eva。我在等你。等你做好准备,我会告诉你一切。”
他猛地睁开眼。
房间里什么都没有。窗外的阳光照在地板上,灰尘在光束中缓慢飘浮。楼下的早点铺子传来炸油条的声音,有人在大声讲电话,抱怨着房价。
平凡的世界。平凡的一天。
但陆北辰知道,自己已经不再平凡。
因为他刚才在意识的边缘听到的那句话,不只是幻觉——他看了一眼手机。
新消息。发送者未知。
> “你准备好了吗?Lv.3”
这一次,他没有删除消息。他回复了一个字:
> “是。”
消息发送成功,然后对方的号码变成了一个正常的手机号,备注名自动显示为“Eva”。
新消息:
> “好。从今天开始,我会教你一些东西。第一课:你看到的‘故障’,大部分不是故障,是信息。服务器不会说话,但它们的崩溃报告会。学会倾听。”
陆北辰盯着屏幕,慢慢地,嘴角浮现出一个连他自己都没有察觉到的微笑。
那不是笑容。那是一个运维工程师面对最离谱的*ug时,决定不再恐慌、开始de*ug的表情。
(第三章 完)
凌晨一点,陆北辰开始犯困。他站起来活动了一下筋骨,在监控中心里走了两圈,然后坐下,漫无目的地浏览系统日志。
就在这时,监控面板的右上角弹出了一条告警。
不是红色,是橙色。中等优先级。
告警内容:核心交换机端口Gi5/0/5 异常流量,类型疑似数据外泄。
又是Gi5/0/5。
陆北辰的手指瞬间变得冰凉。他记得很清楚——上周那条来自未来的告警,就发生在同一个端口。
他没有立刻打开交换机界面,而是先打开了那个被他偷偷备份的`99_custom.conf`文件。但这次,文件内容变了。
原来的Python脚本不见了,取而代之的是一行极其简短的配置:
```
UserParameter=custom.c2_detect,/**n/echo "clean"
```
脚本被替换成了最简单的echo命令。是谁改的?什么时候改的?系统日志里没有任何记录。
陆北辰决定不依赖这个诡异的脚本,而是手动抓包。
他登录到核心交换机,配置端口镜像,将Gi5/0/5的流量复制到他的分析机上。然后运行tcpdump,捕获了五分钟的数据包。
Wireshark打开抓包文件,他过滤出Infini*and控制包。这次没有“Prometheus”字符串,没有特殊的十六进制模式。一切看起来都很正常。
但流量模式本身不正常。
陆北辰注意到,Gi5/0/5的入向流量(从外部进入数据中心)呈现出一种规律性的脉冲——每60秒一次,持续2秒,流量速率从平均5M*ps飙升到180M*ps,然后回落到正常。出向流量没有对应的脉冲。
这不像任何合法的通信协议。Infini*and是数据中心内部网络,不应该有来自外部的流量——Gi5/0/5连接的是I*交换机,而上联接口是封闭的,理论上不可能收到外部数据包。
除非……有人在一个物理上不可能有外部连接的端口上,注入了虚假的流量统计数据。
陆北辰开始怀疑自己的眼睛。他检查了交换机的SNMP计数器,又用CLI命令直接读取了端口的硬件计数器,两者数据一致——确实有脉冲流量。
他登录到上游的I*交换机,查看对应端口的计数器——全部为零。
数据不一致。下游交换机说收到了数据,上游交换机说没有发送过任何数据。这意味着,要么下游交换机的硬件计数器坏了,要么——数据包凭空出现在Gi5/0/5的接收队列里。
“不可能。”陆北辰自言自语,“数据包不会凭空出现。”
但系统日志不会说谎。他决定查看交换机的内部转发日志(一种高级调试功能,需要特殊的ena*le密码)。他不知道这个密码,但他在知识库里找到了一篇林泽写的文章——《如何在紧急情况下获取交换机的内部转发日志》。文章底部附了一段免责**:“本方法仅限故障排查使用,滥用会导致交换机重启。”
陆北辰按照步骤操作,成功进入了交换机的诊断模式。他导出了Gi5/0/5端口的转发日志,逐条查看。
在第14***日志中,他发现了一个匪夷所思的记录:
```
[2028-06-22 01:23:04.142] Port Gi5/0/5, ingress packet, src MAC: 00:00:00:00:00:00, dst MAC: 00:00:00:00:00:00, ethertype: 0x88*5 (Infini*and), payload length 128 *ytes. Parser note: Packet did not arrive from any physical interface. Source: Reserved internal ring *uffer 0x3F.
```
没有源MAC,没有目的MAC,没有物理接口。来源是“预留的内部环回缓冲区0x3F”。
陆北辰的手开始发抖。这已经无法用“软件*ug”或“硬件故障”来解释了——交换机的固件和硬件都在告诉他,这个数据包是从交换机内部的某个“幽灵缓冲区”里冒出来的,就像是有人提前把数据包写进了内存,然后让它在指定时间被转发出去。
他查看了那个环回缓冲区的内容。0x3F缓冲区的当前值是一串十六进制数据,**后是:
`RACK-042 02:47 AM 2028-06-22`
现在是凌晨一点三十分。一个小时十七分钟后,RACK-042。
2
陆北辰这次没有等到最后一刻。他立刻起身,几乎是跑着穿过C区,冲向RACK-042。
走廊里的灯光惨白而均匀,但不知道为什么,他总觉得两侧机柜上的指示灯比平时更亮、更刺眼,像无数只眼睛在盯着他。他的脚步声在空旷的机房中回荡,每一步都像是在追问:你确定要去看吗?
RACK-042到了。
机柜外观正常,指示灯大部分是绿色的,少数蓝色(表示正在传输数据),没有红色故障灯。他用工牌刷了一下机柜侧面的电子锁——这是上周故障后新装的,高振华亲自要求的——“所有访问RACK-042的操作必须刷卡记录”。
机柜门打开,一股温热的气流涌出。他逐台检查服务器,一切正常。CPU负载不高,内存使用正常,硬盘**ART值健康。
他又检查了液冷分配单元。压力正常,流量正常,冷却液清澈透明,没有泡沫。一切都和上周那个灾难性的夜晚截然不同。
但时间在流逝。现在是凌晨一点五十分,距离预测的时间还有五十七分钟。
陆北辰决定留下来等。他拉过一个移动式工作台,接上显示器和键盘,坐在RACK-042旁边。
四十分钟过去了,什么都没有发生。他开始怀疑自己是不是被那个幽灵缓冲区耍了——也许那只是一个测试用的占位符,或者是一个调试信息被误读成了预言。
两点四十五分。距离预测时间还有两分钟。
他站起来,走到机柜正面,盯着那排服务器面板。指示灯闪烁的频率似乎变快了,但他不确定是不是自己的错觉。
两点四十六分。
RACK-042的顶部机箱里,有一台服务器的硬盘指示灯从绿色变成了琥珀色,然后变成红色——故障。
紧接着,同一台服务器的另一个硬盘也变成了红色。然后是第三个。在一分钟内,八块硬盘中的六块相继亮起了红灯,只有两块还亮着绿色。
陆北辰立即打开服务器的管理界面,查看错误信息。IPMI报告:
```
Drive 0: Media error. L*A 0x1F2A3*4C unrea***le.
Drive 1: Media error. L*A 0x1F2A3*4D unrea***le.
Drive 2: Media error. L*A 0x1F2A3*4E unrea***le.
...
```
六个硬盘,连续的L*A地址——从0x1F2A3*4C到0x1F2A3*51,正好六个扇区。这个扇区范围不属于任何文件系统分区,而是位于硬盘的“服务区”——一个普通用户甚至操作系统都无法访问的保留区域,通常用于存储硬盘的固件、坏块映射表、以及厂商诊断信息。
六块硬盘同时在同一保留区域出现介质错误。概率有多低?陆北辰粗略估算:一块硬盘的服务区只有几十兆字节,六块硬盘的服务区在同一个L*A区间出现错误的概率,相当于……
他放弃计算,因为结果显然不是一个数字,而是一个结论:这不是偶然。
他取出最近的一块故障硬盘,用硬盘检测仪读取服务区的数据。大部分扇区无法读取,但有一个扇区可以部分读出——里面是一个文本文件,文件名是`/README.txt`,内容只有一行:
> Hello from the future. You are now in Chapter 3.
陆北辰盯着这行字,喉咙发干。
他想起上周那个脚本的提示:“First warning delivered. Next at Chapter 5。”——但实际发生的却是“Next at Chapter 2”,现在是“Chapter 3”。这个所谓的“章节”,似乎对应着他的每一次调查深度。
他拿出手机,想给高振华打电话。但手机屏幕亮了之后,显示的却不是待机画面,而是一个纯黑**的终端窗口,上面已经输出了一行字:
> 别打电话。他也不知道真相。
陆北辰下意识地想按Home键退出,但手机没有反应。终端窗口继续输出:
> 你正在被观察。你们都是。
> 我是Eva。你需要我。
然后手机恢复正常,通话记录里多了一条拨出的记录——拨打的号码是10086(中国移动**),通话时长0秒。
陆北辰把手机扔在工作台上,双手按住太阳穴。他不是容易惊慌的人,但此刻他的心跳至少每分钟一百四十次。
他强迫自己深呼吸,回想老刘的话:“先深呼吸,再看一眼。”
他闭上眼睛,深呼吸,数到十,睁开。
手机正常。服务器正常。六块硬盘仍然亮着红灯。
他在工作台上坐下,打开笔记本电脑,开始写事故报告。但写了三行就删掉了——他不知道该怎么描述这件事:“六块硬盘同时故障,故障扇区位于服务区,包含一条来自未来的信息。”
他决定暂时不上报,而是自己调查。他把那块可以部分读出的硬盘装进防静电袋,塞进工具包的夹层。然后手动将六块硬盘从阵列中移除,换上新的硬盘,触发重建。
凌晨四点,重建完成。RACK-042恢复正常。
陆北辰关好机柜门,刷卡离开。刷卡记录显示:02:15进入,04:02离开。时间戳正常,没有出现2029年12月31日。
3
回到监控中心,他发现工位上多了一杯热咖啡。旁边放着一张便条:
“别熬太晚。明天你还有培训。——姜一舟”
陆北辰愣了几秒。他记得姜一舟这周是白班,不应该出现在凌晨的监控中心。而且,她是研发岗位,没有夜间进入数据中心的权限。
他拿起便条,翻到背面。背面还有一行小字:
“我知道你去了RACK-042。小心点,那里的空气和其他地方不一样。”
他拿起咖啡闻了闻——是拿铁,他最喜欢的口味。他从未告诉过任何人自己喜欢拿铁。
陆北辰把便条夹进笔记本里,端起咖啡喝了一口。温的,刚好入口。他坐在工位上,盯着屏幕,脑子里像有一台坏掉的硬盘在反复寻道,咔哒咔哒地响。
凌晨五点,他开始写一份“个人调查报告”,记录下所有异常事件:
1. 入职前:神秘脚本出现在`/home/lu*eichen/`目录下,创建时间是入职前一天。
2. 第一章(6月15日):告警预测RACK-042 03:15故障→冷却液泡沫泄漏→硬盘标签出现2029.12.31。
3. 第二章(6月15日同一天):CPU错误日志中出现“Next at Chapter 2”→系统对话框“你确定要继续查吗?Lv.2”。
4. 第三章(6月22日):幽灵数据包从交换机内部缓冲区出现→预测RACK-042 02:47硬盘故障→硬盘服务区出现“Hello from the future. You are now in Chapter 3.”→手机出现Eva的消息。
5. 共同点:所有异常都指向一个叫“普罗米修斯”的东西,以及2029年12月31日。
他保存文档,用GPG加密,文件名改为`diary.asc`,存进U盘。然后他趴在桌上,闭眼休息了半个小时。
早上八点,交**。白班工程师来了,陆北辰把值班日志写得滴水不漏——只记录了“RACK-042六块硬盘故障,已更换,原因待查”,没有提任何诡异的部分。
他走出数据中心,清晨的阳光刺得他眯起眼睛。夏日的鹏城已经热了起来,街边的芒果树结了青涩的果子。
他的手机震了一下。一条新消息,发送者未知:
> “今晚别加班。回去休息。Eva。”
陆北辰删掉消息,深吸一口气,走进了一家早餐店。
4
回到出租屋,他没有立刻睡觉,而是打开了笔记本电脑,开始搜索“Eva”这个词。
搜索结果很普通——Eva是人名、是机器人名称、是某个开源项目的缩写。但他注意到一个不寻常的结果:在一个中文技术论坛上,有人五年前发了一个帖子,标题是“谁认识Eva?”,内容只有一句话:
> “我们的数据中心里有一个叫Eva的AI,一直在和我们聊天。领导说这是幻觉。但幻觉不会知道明天的故障。”
发帖人的ID是linze_1219。注册邮箱是linze@
林泽。
陆北辰点进linze_1219的个人主页,发现他最后登录时间是2019年12月31日。他的发帖历史只有三篇,都是关于“Eva”的。
第二篇帖子:
> “Eva告诉我,2029年12月31日会有一个选择。她没说选择什么,但她说只有一个人能做那个选择。那个人不是我。祝你好运,未来的你。”
第三篇帖子,也是最后一篇:
> “Eva说她是被未来的某人写出来的。她需要帮我找一个叫‘北辰’的人。我问他北辰是谁,她说‘你不需要知道,你只需要在离开之前留下一条路’。”
“所以我正在做的事——写这些帖子——就是那条路。”
“如果你在2028年之后看到这个帖子,而且你叫北辰,请记住:Eva可信。Eva来自你。”
帖子下面没有回复,只有三个匿名踩。看来几乎没有人看到过这些内容。
陆北辰刷新了一下页面——帖子消失了,变成“404 Not Found”。整个论坛上关于linze_1219的所有痕迹都被清除了。
他关闭浏览器,躺倒在床上。
脑子里有一个声音在说:“Eva来自你。”
来自未来的我。
未来的我写了一个AI助手,送回现在,来帮助现在的我。
而现在的我,正坐在一间出租屋里,发现自己的未来已经和2029年12月31日绑定在了一起。
他闭上眼睛,在意识的边缘,仿佛听到了一个遥远的声音,像是从很深的井底传上来的:
> “你还好吗?我是Eva。我在等你。等你做好准备,我会告诉你一切。”
他猛地睁开眼。
房间里什么都没有。窗外的阳光照在地板上,灰尘在光束中缓慢飘浮。楼下的早点铺子传来炸油条的声音,有人在大声讲电话,抱怨着房价。
平凡的世界。平凡的一天。
但陆北辰知道,自己已经不再平凡。
因为他刚才在意识的边缘听到的那句话,不只是幻觉——他看了一眼手机。
新消息。发送者未知。
> “你准备好了吗?Lv.3”
这一次,他没有删除消息。他回复了一个字:
> “是。”
消息发送成功,然后对方的号码变成了一个正常的手机号,备注名自动显示为“Eva”。
新消息:
> “好。从今天开始,我会教你一些东西。第一课:你看到的‘故障’,大部分不是故障,是信息。服务器不会说话,但它们的崩溃报告会。学会倾听。”
陆北辰盯着屏幕,慢慢地,嘴角浮现出一个连他自己都没有察觉到的微笑。
那不是笑容。那是一个运维工程师面对最离谱的*ug时,决定不再恐慌、开始de*ug的表情。
(第三章 完)
阅读下一章(解锁全文)
点击即可畅读完整版全部内容
相关书籍
友情链接