于技术的不断进步,不同型号的服务器出现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),看硬盘还能不能再用一段时间。