数据恢复之RAID通常出现的故障有哪些方面?
2014-01-18 21:45:22 来源:华军科技数据恢复
RAID数据恢复在数据恢复中可以是排头兵,不但记录着海量的数据,而且数据的重要性不容小觑。RAID提供的存储安全还有一些不太容易避免的漏洞,虽然可能性不大,但存储在RAID上的数据价值可能无法评估,出丝毫的故障都可能会导致一场大的信息灾难。下面笔者来简单介绍一下RAID通常出现的故障可能性都有哪些方面,以飨数据恢复从业者或服务器机房管理维护员。
1、固件算法缺陷
RAID的创建、重建、降级、保护等工作在控制器的实现上是非常复杂的算法,当然这里面的复杂更多地是提供尽可能万无一失的无漏洞算法,尽管厂商不会轻易承认控制器的BUG,但毫无疑问,这些问题在任何一款控制器上都无法避免。因为固件算法上BUG,可能会产生很多无法解释的故障。比如在部分服务器数据恢复案例中,有一些早期生产的DELL 2950服务器,会有RAID一块盘OFFLINE后故障盘与报警灯不一致的情况,导致客户在更换故障盘REBUILD时拔错盘,整个RAID组崩溃。
2、人为误操作
涉及数据恢复的数据灾难有相当一部分也是可以避免的,但总会有这样的情况:无关人员误拔RAID里的硬盘、没准备备件盘、不及时换盘、给RAID除尘时忘了原来的顺序、不小心删除了原RAID配置等。
3、控制器的稳定性
RAID的控制器在ONLINE状态下(无离线盘)工作是最稳定的,相对而言,当部分硬盘损坏(可能是逻辑故障)后离线,控制器便会工作在一个比较吃力的状态,这也是好多中低端的RAID控制器在一块盘离线后读写性能急速下降的原因。控制器的负载太重便会极大地增加数据吞吐时出现IO滞留的可能性,从而导致如上面第4点提及的RAID离线。一个不具备高速硬件处理芯片,不具备高速缓冲的控制器发生这类故障的概率要高得多。为了避免出现故障后数据恢复带来的业务停顿与额外开销,还是尽量不要选择这类磁盘阵列控制器。
4、处于降级状态时,未及时rebuild
RAID是通过多出来的部分存储空间来提供算法上的数据安全冗余的,但当某些盘出现故障下线后,RAID便不能再提供这种存储冗余,如果管理员不及时更换盘,REBUILD整个卷,这时候其余工作中的硬盘再出现故障,RAID卷便无法正常工作了。这类故障在RAID数据恢复中比例相当高,服务器维护管理跟不上很容易发生。
5、控制器故障
控制器是连接物理硬盘与操作系统之间的数据存储纽带,同时因RAID的组成方式并非自然约定(特定),硬盘容量的大小,硬盘数量的多少,RAID组成级别,逻辑磁盘分割方式,块大小,校验方式等因素组合成不同的RAID信息(RAID元数据),这些RAID信息有时候会写在阵列卡上,有时候会写在硬盘上,还有的时候两者皆有。如果控制器出现故障,很多情况下更换新的控制器并不能RAID信息还原,中低端的控制器出于成本考虑,这方面漏洞更会大得多。同时即使记得住原先的RAID结构,再次重建也都是错误的数据恢复方法。
6、其他我暂时想不起来的原因
这些灾难原因除人为原因外,大多数很难直接避免,只能通过结合备份,构建整体存储安全方案来解决。其他文章会提到原因,以及抛开数据恢复话题的安全建议。
7、IO通道受阻导致RAID掉盘
RAID控制器在设计时为了数据的绝对安全,会尽可能避免写数据到不稳定的存储介质上,这样,当控制器与物理硬盘进行IO时,如果时间超过某个阀值,或不满足校验关系,便会认为对应的存储设备已不具备持续工作的能力,但会让其强制下线,通知管理员尽快解决问题。这种设计的初衷很好,同时也是正确的设计方式,但对于如物理链接线路松动,或因硬盘机械工作时反应超时(可能硬盘还是完好的)等随机原因对控制器而言无法分辨设备是否具备和之前一样的稳定状态,所以很不在意的某些小环节,便会导致RAID卷出现故障,此类故障的发生概率极大,而且无法避免。这也是大多数RAID出现故障后,硬盘并未有故障的原因,我们好多数据恢复服务的客户会因此质疑服务器厂商,实际上是有苦难言的,一定程度上,越是设计安全的控制器,越会发生此类现象。
8、坏硬盘
这类情况很有趣,好多人会认为正常工作的RAID里不会有坏硬盘,因为只要硬盘一坏,RAID就会让他这块坏硬盘脱机,更换新硬盘后REBUILD就又是好硬盘了。但实际上,这类情况却是不可避免的,原因是:一组RAID卷在工作很长时间以后也很少会读到物理硬盘的所有磁盘空间,同一时间更是不可能。部分情况下,硬盘会在没有读到的区域或者以前读取是良好的区域产生坏道,这类坏道因为没有读写过,所以在控制器看来是好的。产生这种坏磁道的最直接危害是在REBUILD过程中。当一块物理硬盘离线后,通常所有的技术人员及官方资料都会写尽快做REBUILD,但如果其他硬盘存在这类平常不知的坏磁道,REBUILD又都是对全盘做全面同步,就一定会读写到那些坏道,这时候REBUILD没完成,新盘无法上线,因旧盘里又发现了坏道,便会导致RAID又多出一些下线的硬盘,这样就可能会导致RAID出现故障,无法自行进行数据恢复了。