返回第509章 紧张联调(1/1)  四合院:我是雨水表哥首页

关灯 护眼     字体:

上一章 目录 下一章

    上电那天,机房里的气氛紧张得像手术室。
    陈工站在中央存储柜前面,手里拿着本子,上面密密麻麻写着上电步骤和检查项。
    诸葛彪蹲在配电柜旁,手搭在总控开关上。
    钱兰站在管理员桌前,盯着监控终端的屏幕。
    “第一步,检查所有机器电源开关,确认处于‘关’的位置。”陈工念道。
    诸葛彪挨个检查了一遍,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”的绿色字符还在安静地亮着,一明一暗,像是在呼吸。

上一章 目录 下一章