【用户信息】上海某公司
【故障描述】需要进行数据恢复的设备是一台EMC CX4的存储服务器,因为硬盘出现故障导致整个存储阵列瘫痪。整个LUN是由7块1TB的硬盘组成的RAID 5。但服务器共有10块硬盘,其中有3块是以前存储中掉线的硬盘。(服务器存储在使用过程中有硬盘掉线了,但客户只是添加了一块的新的硬盘做rebuild,并没有将掉线的硬盘拔掉,所以就多出了3块)。
因客户说是存储服务器中有些硬盘有故障才导致存储服务器不可用的,所以初步判断是RAID中有硬盘掉线了。将所有硬盘交给硬件工程师检测硬盘是否有硬件故障。在检测完成后发现并没有物理故障,那么可能就是硬盘上有逻辑坏道或其他原因导致RAID不可用了 。接着对所有硬盘做全盘镜像,以保证客户现有数据的安全。<br/>【恢复过程】做完镜像后开始分析RAID的结构,打开镜像盘的后发现硬盘每512字节多加了一个8字节的校验,也就是变成了每扇区520字节了。这样虽然可以分析RAID的结构,但是重组RAID就会十分吃力!为了提高工作效率,我们需要写个小程序将8字节的校验去掉来方便后期的工作。<br/>等所有磁盘都转换完成后,就开始分析RAID的结构了。由于多了3块以前的旧盘,需要通过比较每块磁盘,即其中会有两块磁盘前面的一部分相同,而这两块当中会有一个是旧的,旧的数据量没有新盘多,就可以排除旧的磁盘。这样的磁盘会有3对,也就可以排除所有旧的磁盘了。<br/>接下来看RAID结构,由于客户用的NTFS文件系统,用MFT很容易就可以找到RAID的结构了。知道RAID结构后发现这不是一个普通的RAID 5,而是一个双循环。用winhex还没法重组RAID。最后发现,UFS可以重组RAID。那么就先用它重组RAID!重组RAID后发现数据不是最新的。我想可能是RAID 5先掉线一块硬盘,而管理员没有及时发现,没有及时添加新的硬盘做rebuild。导致运行一段时间后又有一块硬盘掉线了,才造成整个RAID不可用。所以还需要找出一块旧的磁盘,才能生成最新的数据。继续进行找盘的工作!但是怎么找呢?我们尝试依次踢掉一块硬盘,然后重组RAID。看最新的数据是否可用。直到找到最新的数据可用为止,接着就可以导出数据,验证数据了。<br/>
【恢复结果】整个恢复过程,包括做镜像,扇区转换和最后的拷贝数据,一共耗时5天。数据恢复率达百分之九十九以上。虽然整个过程比较漫长,但是最终的结果用户很高兴,因为这给他们带来了不必要的损失。
作者:邓奇 (服务器数据恢复工程师)
转载于:https://blog.51cto.com/sun510/2074030