亲,欢迎光临泡书吧!
错缺断章、加书:站内短信
后台有人,会尽快回复!
  • 主题模式:

  • 字体大小:

    -

    18

    +
  • 恢复默认

上电那天,机房里的气氛紧张得像手术室。

陈工站在中央存储柜前面,手里拿着本子,上面密密麻麻写着上电步骤和检查项。

诸葛彪蹲在配电柜旁,手搭在总控开关上。

钱兰站在管理员桌前,盯着监控终端的屏幕。

“第一步,检查所有机器电源开关,确认处于‘关’的位置。”陈工念道。

诸葛彪挨个检查了一遍,16台KJ-0A的电源开关都拨到了“关”的位置。“确认。”

“第二步,检查中央存储柜电源开关,确认处于‘关’的位置。”

“确认。”

“第三步,合总控配电箱开关。”

诸葛彪把总控开关推上去。

机房里传来一声低沉的“嗡”,那是稳压电源的变压器开始工作的声音。

配电柜上的电压表指针跳了一下,稳稳停在二百二十伏。

电流表纹丝不动。

“第四步,合中央存储柜电源。”

诸葛彪走到柜子后面,推上开关。

柜子正面的绿色指示灯亮了起来,散热风扇开始转动。

陈工盯着指示灯,等了几秒:“第五步,合一号机电源。”

一号机的指示灯一排一排亮起来,绿色的电源灯、黄色的待机灯,红色的故障灯没亮。

散热风扇的声音比中央柜稍大,但还算安静。

监控终端上,一号机的状态从“离线”变成了“待机”。

然后是二号、三号……一直到最后16号。

每一台机器上电的时候,所有人都屏住呼吸盯着指示灯。

绿灯亮,黄灯亮,红灯不亮。

16台全部上电之后,机房里充斥着风扇的嗡嗡声,像一群蜜蜂在飞舞。

但声音并不刺耳,反而有一种秩序感,像某种低沉的、持续的背景音,听久了反而会觉得安静。

陈工在本子上写了几笔,抬起头:“静态上电完成。所有机器待机正常,没有短路、没有过流、没有故障指示。”

吕辰点点头,走到管理员桌前。

监控屏幕上,16个绿色的方块整整齐齐排列着,每一个方块代表一台KJ-0A,显示着编号和状态。

全部是绿色:待机状态。

“开始装系统。”

“系统”不是后来那种有图形界面的操作系统,而是一套固化在只读存储器里的微程序和引导程序。

每一台KJ-0A都要先加载引导程序,初始化寄存器,自检外设,然后才能加载真正的控制程序。

二维卡插进读卡机,按下加载按钮,读卡机“咔嗒”一声把卡片吞进去。

显示器上绿色字符一行一行跳动:

LoAdING bootLoAdER......

mIcRocodE LoAdING......

INItIALIZING REGIStERS......

SELF tESt......

mEmoRY tESt......oK

cpU tESt......oK

I/o tESt......oK

ALL tEStS pASSEd

16台机器的自检结果全部是“ALL tEStS pASSEd”。

陈工靠在管理员桌旁,点了一根烟,吸了一口慢慢吐出来。

烟雾在空调送风下迅速散开,被回风口吸走,消失在格栅后面。

“吕工,硬件装完了,系统装完了。联调方案你定,我们执行。”

吕辰从兜里掏出一个小本子,翻开一页,上面密密麻麻写着字。

“联调方案分五个阶段。”他把本子摊在桌上,陈工、诸葛彪、钱兰都凑过来看。

……

联调方案被分解为五个阶段,层层递进。

第一阶段:单机自检加环回测试。

每台机器独立运行,环网接口板设为环回模式,自己发自己收,不经过环网。

运行固定测试向量(斐波那契数列、矩阵乘法),验证cpU和内存;读写本地暂存存储器,验证存储板。

自检结果写入本机特定内存地址,在显示器上输出“节点x自检通过”或“失败”。

16台机器同时上电。

机房里16台显示器的屏幕上,绿色的字符同时跳动,像16面旗子在风中飘扬。

NodE 0 SELF tESt......pASS

NodE 1 SELF tESt......pASS

...

NodE 15 SELF tESt......pASS

陈工在本子上记了一笔:“单机自检,16台全部通过。”

第二阶段:星型网单点读写测试。

连接所有星型网线缆,环网断开。

每台机器独立执行:生成一个唯一的测试数据块,通过星型网写入中央存储柜的指定区域,等待一段随机时间(用本机时钟计数器的低几位做延时,避免同时写冲突),然后从存储柜同一地址读回数据,比较读写是否一致。

结果写入存储柜的状态表区域,在显示器上打印“成功”或“失败”。

监控终端上,16个绿色方块的状态从“待机”变成“运行”。

中央存储柜的指示灯开始闪烁,多端口存储控制器在忙碌地处理着来自16个节点的并发请求。

仲裁、排队、响应。

不到十分钟,所有节点的显示器上全部出现了“pASS”。

陈工又记一笔:“星型网单点读写,16台全部通过。”

第三阶段:环状网令牌传递测试。

断开星型网,仅连接环网同轴电缆。

所有节点初始化为监听模式。

吕辰走到一号机前,在操作台上敲了几个键,指定Id=0的节点生成测试令牌。

诸葛彪按下“运行”按钮。

显示器上字符开始跳动:

toKEN GENERAtEd

toKEN SENt to NodE 1

机房里16台显示器的字符开始依次跳动。

令牌从一号机传到二号、三号……每一台机器收到令牌时,都会在显示器上打印一行:“toKEN REcEIVEd FRom NodE x, FoRwARd to NodE Y”。

令牌像一列看不见的火车,在环网上飞驰。

大约一秒钟后,令牌回到一号机。

最后一行字符出现:

toKEN REtURNEd to NodE 0

AccUmULAtEd SUm: 120

RING coNNEctIVItY tESt: pASS

接力传信通过,接下来是令牌环基础测试。

令牌里带着目的地址和源地址,在环网上广播。

每一台收到令牌的节点把自己的Id添加到数据中,然后转发给右邻。

又是一秒钟,令牌回到一号机:

toKEN RING tESt: ALL NodES pRESENt (16/16)

RING pRotocoL tESt: pASS

陈工笑了:“环状网令牌传递,16台全部通过。”

第四阶段:混合拓扑全连通测试。

星型网和环网同时连接。

16台机器运行“全对全向量求和”算法,每台机器通过星型网向存储柜写入自己的初始值,再读取所有其他节点的值累加;同时通过环网与左右邻居交换数据计算边界差。

所有节点最终都计算出全局和120,边界差验证正确。

监控终端上16个方块全部显示“运行”,中央存储柜指示灯闪烁得比昨天更快。

大约五分钟后,所有节点的显示器上同时出现:

LocAL SUm S=120, VERIFIcAtIoN pASS

boUNdARY dIFF VERIFIcAtIoN pASS

hYbRId topoLoGY tESt: pASS

陈工写道:“混合拓扑全连通测试通过。”

第五阶段:容错与压力测试。

这是最漫长的阶段,也是最暴露问题的阶段。

先做节点离线测试。

孙班长走到七号机后面,拔掉电源插头。

七号机的显示器瞬间熄灭,风扇停止转动。

监控终端上七号机的绿色方块变成红色,旁边出现一行字:“NodE 7 oFFLINE dEtEctEd”。

不到一秒钟,其他十五台机器的显示器上都打印出了“NodE 7 oFFLINE”的警告。

吕辰看了一眼时间:“响应速度合格。”

孙班长把电源插回去,机器重新启动,自检通过,自动加入环网。

监控终端上的方块从红色变回绿色。

然后是存储柜端口故障测试。

孙班长走到中央存储柜后面,拔掉五号机的星型网线。

五号机的显示器上正在运行的程序突然报错:“StAR NEtwoRK REAd ERRoR”。

监控终端上五号机的方块从绿色变成黄色,旁边出现“NodE 5 StoRAGE AccESS FAILEd”。

吕辰在本子上记:“故障检测正常。”

接下来是环网断线测试,这是整个联调中唯一出现逻辑不直观的地方。

孙班长走到八号机和九号机之间,拔掉了那段同轴电缆。

这一次,故障不是立即全面显现的。

环网上的令牌还在跑,但跑到八号机的时候,发不出去了。

八号机的显示器上出现一行字:“toKEN tImEoUt, No RESpoNSE FRom NodE 9”。

与此同时,九号机也检测不到左邻的信号,同样显示超时。

而十号机、十一号机等下游节点,则在各自等待了一段时间后陆续报出超时,因为令牌永远到不了它们那里。

监控终端上,从八号机到十五号机的方块全部变成了黄色,分别写着“tImEoUt”或“No toKEN”。

只有零号到七号机还保持绿色,它们虽然收不到返回的令牌,但尚未判定自己失联。

陈工盯着屏幕看了一会儿,用手指点了点八号和九号之间的位置:“断点在这里。八号发不出,九号收不到,下游全部超时。”

孙班长把电缆接回去。

大约两秒钟后,令牌重新开始在环网上流动,所有节点的状态陆续恢复绿色。

吕辰在本子上写:“环网断线测试,故障定位准确,恢复自动完成。”

然后是最关键的并发压力测试。

所有节点同步开始,同时向存储柜写入数据。

每个节点连续写100次,每次写一个带节点Id和序号的数据块。

写完之后,再读取所有写入的数据,检查有没有缺失或错乱。

第一次压力测试运行了大约十分钟。

节点零汇总结果时,显示器上出现了一行字:

dAtA INtEGRItY chEcK: 1 ERRoR dEtEctEd

吕辰皱了一下眉头。

他走到节点零的显示器前仔细看错误信息:“NodE 12, wRItE 47, REAdbAcK mISmAtch”

钱兰走到十二号机前检查机器状态,没有发现异常。

诸葛彪走到中央存储柜后面检查十二号机的星型网线缆,插头插得很紧,没有松动。

陈工拿着万用表量了一下线缆两端之间的电阻,又量了对地绝缘,都在正常范围内。

“可能是电磁干扰。”吕辰说,“电源线和信号线虽然分开走了,但交叉的地方屏蔽可能不够。把十二号机的这根线换成双层屏蔽的试试。”

孙班长换了一根线。第二次压力测试开始。

这一次,所有节点都通过了。

节点零的显示器上出现了“dAtA INtEGRItY chEcK: 0 ERRoR”。

吕辰在本子上写:“并发压力测试通过。发现星型网线缆屏蔽不足,已更换双层屏蔽线。建议所有节点的星型网线全部换成双层屏蔽。”

接下来是持续的稳定性测试。

系统连续运行,白天跑测试程序,晚上跑空载待机。

每一台机器的状态都被监控终端记录下来,每小时的温度、电压、电流、风扇转速、芯片温度,全部记在本子上。

这一个月里也出过一些小问题。

有一次,某台机器在环网测试中始终收不到令牌。

换了环网接口板、换了芯片、换了t型接头,问题依旧。

陈工最后发现是同轴电缆的终端匹配电阻偏大,导致信号反射,令牌包在传输过程中被干扰了。

换了一个匹配电阻,问题解决。

还有一次,某台机器的星型网读写偶尔出错,频率不高,一天也就一两次。

诸葛彪带着人查了两天,发现是电源线的接地没做好,地电位波动影响了信号质量。

重新做了接地,问题消失。

第31天,钱兰把所有的测试记录汇总在一起,厚厚一沓,放在吕辰面前。

“容错与压力测试完成。所有故障场景都验证了,系统检测正常。压力测试连续运行三十天,没有发现数据丢失或错乱。星型网、环网、混合拓扑,全部稳定。”

吕辰翻开记录本,一页一页地看。

“所有节点自检通过,硬件基本正常。”

“星型网读写一致,存储柜、I/o板、线缆良好。”

“令牌绕环一周累加和等于120,环网物理连通且顺序正确。”

“全连通求和一致,混合拓扑协同正常。”

“压力测试无丢数,存储控制器仲裁可靠。”

他合上本子,看着机房那16台墨绿色的机柜。

“联调通过了。”

陈工站在他旁边,也看着那些机柜。

日光灯的光照在他的眼镜片上,反射出一片白茫茫的光。

他伸出手,轻轻拍了拍最近一台机柜的铁皮外壳,像拍一个老朋友的肩膀。

“吕工,”他说,“这个系统,可以投入使用了。”

吕辰转身走到管理员桌前,拿起那部黑色电话机,拨了一个号码。

电话那头响了两声,被接起来。

“刘教授,机房联调通过了。16台KJ-0A,三个中央存储柜,星型-环状混合拓扑,全部稳定运行了一个月。”

电话那头沉默了几秒钟。

然后刘星海的声音传过来:“好。分布式辅助电路设计系统,可以启动了。”

吕辰挂了电话,站在窗前。

窗外的天边泛起了鱼肚白。

远处,红星轧钢厂的烟囱已经开始冒烟,新的一天又开始了。

机房里,16台KJ-0A的显示器上,那行“ALL tEStS pASSEd”的绿色字符还在安静地亮着,一明一暗,像是在呼吸。