近日,我中心接到一例存储数据恢复的业务,客户存储设备为EMC Unity 400型号存储,是EMC新一代中端存储,同时支持block,file和vvol三种服务类型。
在此之前,国内的同行似乎都还没有过该型号存储恢复的经验,也没有听说过任何成功恢复的案例,可以说我们没有任何可借鉴的经验、技术,需要我们完全自助的研究开发。
而经过研发部门小伙伴的不懈努力,我们终于成功逆向解析出了EMC Unity 400存储的数据算法结构,解决了EMC Unity 400存储的故障恢复,为客户挽回了数据。以下就是此次恢复案例的具体故障情况及恢复过程。
一.故障描述
故障情况:客户设备为EMC UNITY400存储,共连接2台硬盘柜。在2台硬盘柜上,共创建2组POOL,这2组POOL互相独立。
在使用过程中,由于误操作,删除了 2组POOL上的部分数据卷,这2组POOL共包含21块6T容量的硬盘,硬盘规格为520字节硬盘。
二.故障检测
1、对客户全部硬盘进行备份,并转换为512字节格式。
2、与客户进行沟通,得知共删除5个数据卷,
3、对硬盘底层进行初步检测分析,硬盘底层数据量较多,删除数据卷后,相关数据空间应该没有进行回收清零,数据具有可恢复性。
三.数据恢复
1、Raid分析重组
对被删除卷涉及的共21块6T硬盘进行分析,共配置2组RAID6。其中1号RAID包含11块硬盘. 2号RAID包含10块硬盘,
根据以上信息使用专用数据恢复软件虚拟重组出2组RAID,并分别导出成镜像文件。
2、全局位图整理
对每组RAID前面的全局位图信息进行读取,整理。如图为存储的全局位图
将整理后的位图信息写入数据库
整理后的全局位图中,offset代表RAID(POOL)中的数据块的块号,据此,可以大致获取RAID(POOL)中被删除的数据卷对应的,已释放的数据块。
3、自由数据块整理
对获取到的自由数据块进行遍历扫描,找到被删除的数据卷的头部。并确用户数据的一个索引信息,根据这个索引信息,可以索引到完整的用户数据卷。
对被删除的数据卷的头部进行读取,获取到用户数据卷的部分索引位图。同时对自由数据块继续进行遍历扫描,获取到剩余的索引位图。
4、自由数据块拼接
根据与客户的沟通得知,客户删除的5个数据卷,全部为NTFS格式的数据卷,据此,根据NTFS文件系统的结构,结合自由数据块位图和用户数据卷索引位图,编写程序对自由数据块进行匹配拼接,完整拼接复原出5个NTFS格式的数据卷。
5、文件系统修复
数据卷拼接完成后,对数据卷中NTFS文件系统的正确性及完整性进行校验,修复文件系统中的错误,手工对部分未匹配到的自由数据块进行分析处理,拼接到相应的数据卷中。
解析恢复出的数据卷,将数据拷贝到客户准备的目标空间中。
四.数据恢复结果
经过客户的验证,被删除的5个数据卷基本完全恢复,其中数据完整度达100%,数据全部可用,此次数据恢复工作圆满成功。
经此一役,EMC Unity 400存储的算法结构对我们来说已经不是秘密,同样的数据卷删除问题,甚至硬盘损坏、控制器故障等情况我们已经都可以解决了。