2月5日
上午到公司就检查硬盘,拷贝完成,至于数据是否正确需要上机验证,准备好后就开始了恢复阵列的试验。用拷贝好的22块硬盘和老的raid卡进行操作,点亮机器进入RAID卡的BIOS中查看阵列状态,结果如图:
可得出三点结论:
1、昨天拷贝的6块硬盘拷贝成功,现在硬盘里有了RAID信息可以被阵列认到
2、 这22块硬盘的物理状态应该是正常的,应该没有扇区的损坏,因为在执行扇区级拷贝的时候,如果硬盘有物理损坏会提示扇区拷贝错误,而拷贝顺利完成,所以可初步判断硬盘没有问题。
3、 一共22块硬盘,缺1块没了数据的硬盘,另外一块是offline的状态(这个状态是用户在最初故障时,对硬盘做了热拔插操作,硬盘状态从fail转变为了offline),阵列呈现出了发生故障后的状态。
在这个基础上进行了两个尝试操作:
1、 将显示为外部状态的阵列进行导入
2、 将offline的硬盘强制上线
这两个操作都不能进行,判断原因,外部阵列不能导入是因为RAID5的状态是缺失两块硬盘,一块是missing,一块是offline。Missing的那块盘就不用想了,offline的那块需要先强制上线才可能导入阵列,而offline的状态的硬盘是灰色状态,不能操作。估计是因为RAID卡中的信息与硬盘中的RAID信息均记录了改判的missing状态,所以产生了死锁。
换了新的RAID卡,因为新的RAID卡没有RAID信息,看是否可以做上线的操作,结果硬盘还是灰色状态。
当然也没放过通过LSI卡的管理软件MSM尝试,结果一样。
跟梁总沟通后,没有合适的方法,被建议将一套拷贝的硬盘发到他们那里,帮着尝试数据恢复。
这时候看起来没什么办法了,因为能做的操作都尝试了,没有什么可操作的地方了。
这时候换了种思路,联系了对LSI卡熟悉的邱晨,跟邱晨说明了故障过程和现场情况后,邱晨提出了一个大胆的思路,那就是将这一套硬盘的RAID信息删除,再重新做一次RAID,这样就能忽略offline的那块硬盘的RAID信息,而让它的实际数据被读出,让新的RAID来识别整个阵列的数据。也就是将阵列的逻辑架构删除,重新来一遍构建新的逻辑架构以达成一个完整的raid5,来识别本来就没有被动过的实际数据。只要数据是完整了,这个方法在理论上就是可行的。
邱晨强调这个方法他只是知道,从来没用过,好在我们有备份盘,可以尝试一下。
要保证这个方法能成功,有以下几个关键因素:
1、 新做RAID的关键参数原来同原来的老RAID相同,包括A、硬盘数量及容量,B、RAID级别,C、条带大小,其他的类似IO等信息并非关键信息。
2、 硬盘的数据没有出现问题,因为已经有一块盘没了数据,所以另外那块offline的盘里面的数据是否正确尤其关键。(但好在如果方法可行的话即使有少部分数据丢失也能找到大部分数据)
3、 操作过程中不能有任何失误,否则数据就会全部错乱
这样操作的难度大,但是理论上是可行的,我们分析后觉得只要做够充分的论证和实验应该可行,所以决定这样试一下,但保险起见,我们又拷贝了一套盘,如果这个方法不能成功,那就用另外一套拷贝盘发到梁总那里尝试数据恢复。
花了一个下午去对整个流程做了充分的试验。









网友评论