技巧进阶:如何排除服务器中RAID 5故障?

由于技术的不断进步,不同型号的服务器出现RAID 5故障后,处理方法也不同。

现在大型应用程序的网络拓朴结构,一般都采用C/S结构或B/S结构,至少需要一台装有大型数据库的服务器安放于中心机房。基于对服务器安全性与可靠性的考虑,通常会对服务器的磁盘采用磁盘阵列RAID(Redundant Array of Inexpensive Disk)进行磁盘冗余备份。其中RAID 5阵列级别为无独立校验磁盘的奇偶校验磁盘阵列,采用数据分块和独立存取技术,能在同一磁盘上并行处理多个访问请求,同时允许阵列中的任何一个硬盘出现故障。

实际应用中,由于某些不可避免的客观原因,可能会造成一些阵列故障。最常出现的状况就是硬盘自行脱机,联机状态显示为DDD(Defunct Disk Drive,无效磁盘驱动器),硬盘出现物理故障或逻辑故障。如果是物理故障,只有进行硬盘更换;如果是逻辑故障,可以通过有针对性的技术修复,恢复硬盘的在线状态,继续保持其原始阵列中的硬盘数据条带化分布状态,延续数据存储体系的一致性。

但是,对HP的一些老服务器(如HP LH6000)数据的恢复与新服务器(如HP ProLian系列服务器)的数据恢复是不同的。所以不同的服务器对RAID 5故障的处理也是不同的。笔者曾接触过两台服务器因意外断电而造成的RAID 5阵列卡数据故障,由于采用了不同的策略而解决了问题。

故障修复

一台是在2000年购买的HP LH6000的服务器,4块18GB的硬盘做成RAID 5磁盘阵列,其阵列卡是NetRaid;另一台是2006年购买的HP ProLian ML370服务器,4块146GB的硬盘做成RAID 5磁盘阵列,其阵列卡是Smart Array 642并带有热备份硬盘(Hot Spare)。两者操作系统都为Window 2000,数据库是Server 2000。

HP LH6000的故障如下: 一块硬盘红灯闪亮,机器还在正常运行,但没有多久,系统就不能正常运行,这时才发现另一块硬盘的红灯也在闪亮。

解决办法如下:

1.启动服务器,自检至阵列时按Ctrl+M进入NetRaid管理程序。查看阵列信息,发现硬盘状态为Failed,运用修改配置将一硬盘强行设置成OnLine。重新启动服务器,在进入系统前的硬件自检时无效,启动失败。

2.启动服务器,自检至阵列时按Ctrl+M进入NetRaid管理程序。选择磁盘阵列,将原来OnLine挂起来的硬盘手工Fail掉,然后再把另一块Failed的硬盘手工设置成OnLine,重新启动服务器就可以进入系统了。

3.查看系统及数据库都运行正常后,再进阵列配置工具把Failed的硬盘手工设置成Rebuild,100%完成重建后再重启服务器,所有的阵列及系统都恢复原状了。

笔者所在单位另一台运行ERP系统的服务器(HP ProLiant ML370),由4块146GB热插拔硬盘通过RAID卡(Smart array阵列卡)配置成一台具有RAID 5级的磁盘阵列。其中一块硬盘在运行过程中突然出现故障。服务器RAID 5自动启用热备份硬盘(Hot Spare),对损坏硬盘进行逻辑替代。整个硬盘的数据访问任务仍然完整地运行在原来的读写进程序列中,应用程序和数据库没有发生影响。

通过HP自带的ACU工具查看硬盘状态进行检查,发现红灯示警的硬盘处于脱机状态。如果HP ProLiant服务器中的Raid 5有两块硬盘出现亮红灯时,表明系统已经崩溃,数据库也就不能访问,但系统不会自动关机。当第二块硬盘亮红灯后,用常规的手段是不能恢复数据的,只有付费找专业的第三方数据恢复公司恢复数据。

因此,对惠普老型号HP LH6000系列服务器来说,阵列的设计方面与现在HP ProLiant系列服务器的阵列有很多不同。就操作方法看,HP LH6000服务器的阵列操作方法有很多可选项,包括阵列失败后可以重新删除阵列并重建等,初始化也是手工选择的。但是HP ProLiant系列服务器阵列的初始化是在配置阵列后自动在后台执行的,所以ProLiant系列服务器在阵列出错后是不能重配阵列的。

HP LH6000服务器会因其他意外的原因导致阵列中的磁盘出现掉线现象,可让维护人员手工选择用Online或Offline、Rebuild等来恢复数据。但是现在的HP ProLiant系列服务器在阵列中不会再出现像老的服务器那样有磁盘掉线的现象,所以硬盘亮红灯的时候,这块硬盘基本上是损坏了需要更换。当然可以选择热插拔硬盘来重建(Rebuild),看硬盘还能不能再用一段时间。

做好技术后备

从以上两个例子可以看出,同一品牌、不同系列的服务器因其内含技术的不同,其Raid 5磁盘故障的排除也是不同的。但经过重建(Rebuild)数据后,数据被拯救了,从中可以得出以下经验:

我们认为任何先进的技术手段都不是万无一失的。如果要确保数据安全,就一定要做好备份工作,最好每天做一次数据库的异地备份。至少备用一块新硬盘。需要指出的是,加入阵列的硬盘必须大于或等于故障硬盘的容量。

如果条件允许,推荐"RAID 5+热备盘"的阵列创建方案。这样在数据丢失前,我们有两次更换硬盘的机会。对于一般的应用,只用 RAID 5即可,可以同时提供数据的存取性能、可靠性和最大的磁盘空间。

管理员必须经常观察阵列的状态,包括查看磁盘阵列的黄色警告灯和管理软件里的驱动器状态。出现故障,及时排除。无论是什么级别的阵列,在排除故障前,都应做好数据备份。