EVA存储数据恢复环境:
EVA控制器+三个扩展柜+数十块FC硬盘。
EVA存储故障&检测:
磁盘掉线导致存储中的部分LUN丢失,部分LUN损坏不可用。
由于是磁盘掉线导致存储中的LUN不可用。拿到所有磁盘后,先由硬件工程师对所有磁盘做物理故障检测,经过检测,没有发现有硬盘存在物理故障,都可以正常读取。使用坏道检测工具检测磁盘坏道,也没有发现有硬盘存在坏道。
磁盘坏道检测日志:
EVA存储数据恢复过程:
1、将所有磁盘以只读方式进行扇区级全盘镜像备份,镜像完成后将所有磁盘归还用户方,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。部分备份数据如下:
2、由于所有磁盘都没有检测出物理故障或者坏道,因此可以初步判断磁盘掉线是某些磁盘读写不稳定造成的。EVA控制器的磁盘检查策略非常严格,会将性能不稳定的磁盘识别为坏盘并踢出磁盘组。一旦某个LUN的同一个条带中掉线的磁盘数量超过极限,这个LUN将不可用。如果EVA存储中所有的LUN都包含这些掉线的盘,所有LUN都会受影响。所以磁盘掉线导致整个EVA存储的LUN不可用的情况也可能出现。本案例中的情况是8个LUN正常,7个LUN损坏,6个LUN丢失。用户方要求恢复所有LUN的数据。
3、EVA存储的LUN是以RAID条目的形式存储数据的,EVA将每个磁盘的不同块组成一个RAID条目,RAID条目的类型有很多种。恢复数据之前需要分析出组成LUN的RAID条目类型以及RAID条目是由哪些盘的哪些块组成。这些信息都存放在LUN_MAP中,每个LUN都有一份LUN_MAP。EVA将LUN_MAP分别存放在不同的磁盘中并通过一个索引来指定其位置。因此在磁盘中找这个指向LUN_MAP的索引就可以找到现存LUN的信息。
4、虽然磁盘中记录了指向LUN_MAP的索引,但是它只记录现存的LUN,丢失的LUN是不会记录索引的。EVA中删除一个LUN只会清除这个LUN的索引,而不会清除这个LUN的LUN_MAP。所以只需要扫描所有磁盘找到所有符合LUN_MAP的数据块,然后排除掉现有的LUN_MAP,剩下的也不一定全是删除的LUN的LUN_MAP,也有一些是以前旧的LUN的LUN_MAP。使用北亚企安自主开发的程序将所有LUN_MAP的数据都恢复出来,然后通过人工去核对哪些是属于删除LUN的LUN_MAP。
5、虽然所有磁盘经过检测没有发现明显物理故障和坏道,但是可能会因为性能不稳定而被踢出磁盘组。这些被踢出的磁盘中存放了旧的数据,在生成数据的时候需要将这些磁盘都排除掉。如何判断哪些磁盘是掉线的呢?由于本案例中LUN的RAID级别大多是RAID5,只需要将一个LUN的RAID条目通过RAID5的校验算法算出校验值,再和原有的校验值作比较就可以判断这个条目中是否有掉线盘。将一个LUN的所有LUN_MAP都校验一遍就可以知道这个LUN中哪些RAID条目中有掉线盘,而这些RAID条目中都存在的那个盘就一定是掉线盘。排除掉线盘,然后根据LUN_MAP恢复所有LUN的数据即可。
6、北亚企安数据恢复工程师编写程序扫描全部LUN_MAP,结合人工分析获取到准确的LUN_MAP。北亚企安数据恢复工程师编写检测RAID条目的程序检测所有LUN中掉线的磁盘,结合人工分析排除掉线的磁盘。北亚企安数据恢复工程师编写LUN数据恢复程序,结合LUN_MAP恢复所有LUN数据。
7、人工核对每个LUN,确认是否和用户方工程师描述的一致。
部分LUN的数据:
8、用户方对恢复出来的所有数据进行仔细检验后确认数据完整有效,认可本次数据恢复结果。本次服务器数据恢复工作完成。
阅读(385) | 评论(0) | 转发(0) |