那天下午机房里传来了急促的警报声,大家赶紧冲到现场一看,那套并行文件存储的集群居然死机了!四台 IO 节点还在拼命往外送数据,可盘柜里的硬盘却像商量好的一样集体掉线。虽然重启后系统又短暂恢复了一下,不过这掉线的毛病老是复发,搞得 GPFS 文件系统只能被迫降级,业务那边简直快要崩溃了。 为了先把生产保住,工程师们只能采取断电重启的暴力手段,想把硬盘给重新弄上来。刚开始看着似乎有起色,硬盘倒是上线了,可没过多久掉线的次数反而变多了。大家这才意识到,断电重启根本不是长久之计,于是就开始全天候蹲在机房里找问题。 技术团队整整折腾了两周,先是把存储控制器、硬盘柜挨个检查升级,最后发现固件也没招儿。直到最后才终于找到了“元凶”——原来是机箱后面的 SAS 线缆老化了!这些线把时序都搞漂移了,导致硬盘老是识别失败。看来必须得给机箱来个“换芯”手术了。 按照常规步骤,首先要把每块硬盘在旧机箱的位置记下来贴上标签。接着把旧机箱卸下来换上新的,再按照原位把硬盘插回去。等到控制器重建完 Raid 之后,还得重新映射一下 vdisk 才行。结果刚把新机箱装上去,硬盘竟然一点动静都没有!大家试了半天发现问题出在内存上——新控制器的内存容量和旧的不一样! 好不容易弄完新的控制器,又报出了一堆奇怪的错误代码。团队成员先把日志清理干净再重启一遍才算行得通。这下子盘符全乱套了,GPFS 的 nsd 对应关系也得全部手动重新映射一遍。最后这一步最关键:用 GPFS 内置的命令 mmchnsd 把旧的盘符全部换成新的才行! 这一套操作下来整整花了三天两夜才把集群给救活了。其实所谓的“换芯”手术看着简单,背后却是硬件兼容性、固件版本、操作系统还有文件系统这些环节互相耦合的博弈过程。能够在不影响生产的情况下顺利完成这次修复,靠的全是平时对每一根线缆、每一颗螺丝的极致打磨!