廉价冗余磁盘阵列RAID(Redundant Array of Inexpensive Disk)是一种容量大、速度快、可靠性高的外部存储器,现已在各种高性能的服务器、工作站及大中型计算机中得到广泛应用。其中的RAID5级为无独立校验磁盘的奇偶校验磁盘阵列,采用数据分块和独立存取技术,能在同一磁盘上并行处理多个访问请求,较适用于访问请求频繁的场合,如医院信息系统(HIS)。由于此技术特点:在一个硬盘出现错误时,当插入新硬盘,能利用其他硬盘上信息对受损数据进行恢复,但当两块硬盘出现错误时,要恢复数据就会有一定的困难了,我们医院在不久前就出现过类似现象。
一、故障重现
我们医院硬件配置为:HP LH6000 PIII700 Xeon 512M内存,18G硬盘一块 Ⅹ 2台,作两机容错,操作系统为Windows NT SP4,数据库平台为Oracle 7.3,光纤为主干的星形拓扑网络,HP磁盘阵列柜一台,四块18G IBM 硬盘做RAID5用以存放HIS系统数据,分别标为硬盘ID0、ID1、ID2和ID3。下面是当时故障的重现:
1、硬盘ID2在早上7:30时出现闪红灯现象,其余硬盘正常,无出错提示。
2、硬盘ID0在下午14:00时也出现闪红灯现象,另两块硬盘正常,网络可访问,
3、14:15时,服务器屏幕上出现出错提示框:D盘(即阵列盘)不能访问。依次关掉备份服务器、主域服务器、磁盘阵列柜后保护现场,开始分析故障原因,处理故障。
二、故障分析
RAID5技术原理是:采用磁盘冗余技术和磁盘校验技术,将数据分布在磁盘阵列中的各个磁盘上,这样做可以提高数据的可靠性和读取数据时的速度。如果阵列中的某一个硬盘失效时,能运用上述技术,利用阵列中其他硬盘的信息,恢复失效硬盘中的数据,但如果有一个以上的硬盘同时失效时,在技术上来说数据是不可恢复的。结合我院出现的实际情况,我们分析:有可能是由于硬盘ID2出现错误后,数据的读取量增大,导致另三个硬盘在进行冗余校验时可能出现逻辑错误,而并不是出现了真正的物理损坏或失效。基于以上分析,我们在保证数据完整性的原则下,开始拯救数据。
三、数据拯救
1、打开磁盘阵列柜,启动主域服务器,自检至阵列柜时按Ctrl+M进入NetRaid管理程序,查看阵列信息,发现硬盘ID0与硬盘ID2状态为Failed,运用修改配置将硬盘ID0强制OnLine,重新启动服务器,在进入NT前的硬件自检时,出现硬盘ID2,ID0依次闪红灯,访问D盘失败。
2、打开磁盘阵列柜,启动主域服务器,自检至阵列柜时按Ctrl+M进入NetRaid管理程序,选择磁盘阵列,将阵列配置信息清空,然后新建磁盘阵列信息(不作初始化),并将硬盘ID2与ID0强制OnLine后,重新启动服务器,在进入NT前的硬件自检时,出现硬盘ID2,ID0依次闪红灯,访问D盘失败。
3、关闭磁盘阵列柜,将磁盘阵列柜上的所有四块硬盘全部拔除,启动主域服务器,正常进入NT,打开磁盘阵列柜,用NT下的HP NetRaid管理软件,将硬盘ID0进行热插拔,软件能检测到此硬盘,并无任何错误提示,依次将硬盘ID1,ID2,ID3进行热插拔,但在进行至硬盘ID2时软件检测不到此硬盘,立刻将其拔除,换上一块新硬盘,此时四块硬盘状态为Ready,全部选中后新建RAID5信息,成功后将硬盘ID2状态置为Failed,然后进行Rebuild,运用RAID5技术恢复这块真正失效的硬盘上的数据。但当进度到达50%左右时,出现错误提示,重新启动服务器,进入NT后,系统自动进行CHKDSK,出现修复硬盘信息,无任何错误提示,在磁盘正常自检后访问D盘成功。此时时间18:00分左右。
四、个案总结
在经过了长达6小时的紧张的数据抢救后,我们终于成功的恢复了数据,经过此次惊心动魄的数据拯救后,我们痛定思痛,总结了以下几条经验:
1、在出现问题后不能紧张,应冷静分析故障原因,全面了解硬件知识,作出正确合理的判断,以最小的代价解决问题。在我们此次故障处理过程中,我们对故障的进行了合理的分析,运用了服务器硬盘可热插拔的性能特点,在保证另两块硬盘数据完整的基础上,进行了正确的数据拯救,从而确保了故障的圆满解决。
2、在处理问题时应遵循由简单到复杂,由安全到危险的原则,应确保不破坏数据的原则下进行故障处理。硬盘内的数据信息对我们医院来说,是非常重要的,处理故障的过程也就是我们拯救数据的过程,因此我们在故障处理过程中没有进行一味的蛮干,在清除磁盘阵列信息的同时,并没有对硬盘内数据进行任何操作,从而确保了数据的安全性。
3、在处理故障时应将服务器与网络的连接切断,因为在恢复网络,受损硬盘修复的过程中,会有用户登录至服务器,进行数据操作,从而产生新的数据,这样就有可能产生新的逻辑错误,对于故障的排除非常不利。
4、经过此次故障,我们认为任何先进的技术手段都不可能是万无一失的,如果要确保数据安全,就一定要做好备份工作,最好每天作一次数据库的异地备份;并至少备好一块新硬盘,以便在第一块硬盘出现错误时就能及时换上,进行数据恢复,防止以上类似事件的再次发生。
阅读(1160) | 评论(0) | 转发(0) |