-4006-505-646

由于raid的特点和优势,磁盘阵列技术被广泛应用于服务器和存储等商用领域。由于用户基数大,出现故障的情况也不少。通过这篇文章介绍一下常见的raid磁盘阵列数故障类型和原因。


故障类型一、磁盘阵列处于降级状态时未及时rebuild。

RAID磁盘阵列的数据安全冗余是利用部分空余空间实现的,阵列中有成员盘下线便无法继续提供冗余空间。如果此时未能及时更换新磁盘并rebuild整个卷,一旦raid中有其他成员盘离线将会导致整个raid卷无法工作。这类故障是北亚企安数据恢复工作中会经常遇到case。


故障类型二、raid控制器故障。

磁盘阵列控制器在充当着操作系统与物理硬盘之间的连接纽带。磁盘阵列中的硬盘数量、容量大小、raid级别、校验方式等raid信息有的存储于硬盘,有的存储于阵列卡或者在二者中都有存储。如果控制器出现故障,raid信息就无法还原,如果出现这种故障,即使能够还原raid结构并再次重建raid阵列也无法恢复数据。


故障类型三、固件算法缺陷。

RAID的创建、重建、降级、保护等功能的实现依靠的raid固件上的一套非常复杂的算法,任何复杂的算法都会有BUG,尽管厂商不会轻易承认自家产品固件算法的BUG(有可能自己也不知道)。因为固件算法BUG,发生无法解释的故障可能性肯定是有的。比如在北亚企安接到的数据恢复case中就遇到过早期生产的某品牌服务器RAID中一块盘OFFLINE后,故障盘与报警灯不一致的情况。用户在更换故障盘进行REBUILD时被误导拔错盘,导致整个RAID崩溃。


故障类型四、IO通道受阻导致RAID掉盘。

RAID控制器在设计时候优先考虑的是数据的安全性,RAID会尽可能避免将数据写到不稳定的存储介质上。当控制器与物理盘进行IO时,如果时间超过某个阈值或校验关系不满足,RAID控制器便会认为对应的存储介质已不具备持续稳定工作的能力并让其强制下线,然后通知管理员尽快解决问题。这种设计的初衷从技术上和逻辑上来看没有问题,但对于如物理连接线路松动,硬盘工作反应超时(硬盘还是完好的)等场景来说,控制器无法分辨存储介质是否真的出现物理故障,这种情况下会大概率强制磁盘下线。这类故障发生概率比较高且无法避免,很多用户因此类故障质疑服务器厂商。实际上。越是设计安全的RAID控制器,越容易发生此类故障。


故障类型五、控制器的稳定性。

RAID的控制器在ONLINE状态下(无离线盘)工作是最稳定的。当部分硬盘(物理故障或者逻辑故障)离线后控制器便会工作在一个相对不稳定的状态,这也是好多中低端的RAID控制器在有磁盘离线后就表现出读写性能下降的原因。控制器的不稳定会增加数据吞吐时IO滞留的可能性,从而导致上述第四个类型的故障的发生。中低端的控制器(无高性能处理芯片或者大容量高速缓存)发生这类故障的概率要高得多。


故障类型六、阵列中硬盘故障。

很多人认为磁盘阵列只要在正常工作,阵列中就不会存在有物理故障的硬盘。这个观点的判断依据是一旦raid中有硬盘出现物理故障,阵列控制器就会将故障硬盘踢下线。然而实际上并非如此。

RAID很少会读取到物理硬盘的所有磁盘空间,同一时间更是不可能。部分情况下,硬盘会在RAID没有读取到的区域或者RAID以前读取过的区域出现坏道,这类坏道因为没有被RAID读过,所以在控制器来看还是好的。

出现这种情况后可能会产生的直接后果就是在REBUILD过程中,当一块物理硬盘离线后,在进行REBUILD过程中,如果其他硬盘存在这类没有被RAID读取到的坏道,由于REBUILD是对全盘做全面同步,在REBUILD过程中就一定会读写到这类之前没有被RAID读取到的坏道。这时REBUILD还没完成,新盘无法上线,又在旧盘发现了坏道,RAID极有可能将发现坏道的旧盘踢出,这样就会导致RAID故障。


故障类型七、人为误操作。

人为误操作导致的RAID故障,例如:误拔了RAID里的硬盘、更换坏盘不及时、拔出硬盘更换或者进行其他操作后忘记硬盘在RAID中的顺序、不小心删除了原RAID配置等。