好久没有写技术类的文章了,也是就这这两天刚忙完HN2的维护来总结一下。
HN2 这次故障大概是7月7号上午开始的(这是第一个CI 在HN2 上运行失败 并且显示 ReadOnly FileSystem),当时没太注意,因为着急出门,就说估计是CI配置有问题。后来一个同事打电话过来说是不是YL的服务没开,我就突然一琢磨,好像是昨天重启之后没开那个服务。。。 不过没事,一会儿到了连个ssh 开一下就好。然而万万没想到连上SSH发现从登录开始就不正常了。 登录当时就开始提示无法读取~/.bash_profile 我就觉得有些蹊跷,毕竟昨天升级之后还调Apache 配置了,肯定盘没坏吧。 然后在几番尝试之后发现依然是这个状态,于是就决定重启(因为机房直接在外网上暴露,不敢在外网暴露iDRAC,所以没法看日志)
这重启之后,机器就没起来,不过一直可以ping 的到???? 【这里应有:黑人问号.jpg】
于是决定去联系机房,很快得到了答复是他们的网络配置有些问题,很快就修好了,然而因为机器并没有起来,所以依然连不上SSH。
在联系机房给插上显示器看一下之后,第一次看到了这次问题的真正表象。在POST阶段PERC 6/i卡会显示
Number of devices exceeded the maxium limit of devices per quad
Please remove the extra drives and reboot system to avoid losing data
System has halted due to unsupported configuration
当时看到这个我也是一脸懵逼,不过决定还是简单的搜索一下,看看有没有什么其它的人也遇到过。 很快就能找到一些吐槽PERC 6i卡的这个问题的帖子,不过每个人的解决方案也都不同,有拔插一下卡/硬盘/线就莫名好了的,有推荐换个盘位置的(这个尝试了一半,看到要求尝试导入RAID配置的时候我就没让机房往下弄了,毕竟有损坏数据的风险),总之,网上的解决方案没有什么我能远程遥控机房执行的有效的,于是,寄回维护
在寄出之前为了安心,还是让机房帮忙看了一下每个硬盘的S.M.A.R.T.状态,都是良好
到此,已经可以基本确定是RAID卡的问题,然后制定的基本策略就是回来先恢复数据,然后在捉摸怎么修这个阵列的问题。当时立马就在某宝上下单了6块硬盘准备直接换RAID 5
在等待硬盘被顺丰到家的过程中,就开始了一波数据恢复的尝试,由于当时机器的CentOS 7 是在机房让维护人员安装的,也没有具体去说明分区方式等,硬盘被按照Linux 的Virtual Volume Group 分区了,导致数据恢复必须把硬盘上的Raid信息去掉,然后放到一个Linux 机器里面去挂在这个虚拟卷。
最初尝试的Disk Genius, 虽然专业版支持对于Linux 虚拟卷的操作,但是由于好多文件名过长导致数据无法完成备份。 最终还是放弃省事,选择在闲置的一台服务器上安装了全新的CentOS,挂上了硬盘读取数据。 其实这里也是应该选择Linux恢复备份的一大原因,硬盘可以以只读方式挂载到文件系统里面,这样就可以放心的去操作而不用担心数据被误操作删除或损坏了。
至于数据的拷贝则是选择了 RSync, 毕竟是块拷贝,应该会比cp快些,而且能显示个进度条心里稍微舒服一些吧。。。23333
数据拷贝出来之后就是按照服务的重要先后顺序开始恢复到目前在线的HN1机器上面,基本就是漫长的SFTP上传,顺便吐槽一下联通的不对等网络,,,上传只有不到500k 让我上传20多个G的数据我也是很无奈啊……
这次事情基本就算告一段落了,服务器被德邦发回机房,总体下线时间不到5天(包括邮寄时间),核心服务在问题出现的第40小时左右得到了基本的恢复。