zoukankan      html  css  js  c++  java
  • EMC UNITY 400存储卷删除数据恢复案例

    近日,我中心接到一例存储数据恢复的业务,客户存储设备为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存储的算法结构对我们来说已经不是秘密,同样的数据卷删除问题,甚至硬盘损坏、控制器故障等情况我们已经都可以解决了。

  • 相关阅读:
    asp.net导出数据到execl并保存到本地 不需要调用Office组件
    动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等
    Oracle内置SQL函数收集整理大全
    无比强大的GridView,表头固定,表体有滚动条可滚动
    很不错的asp.net文件上传类c# 搜索文件 移动文件 删除文件等
    【备用】非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
    Asp.Net读取Execl常见问题收集
    经常用到的交叉表问题,一般用动态SQL能生成动态列
    C# asp.net中常见的字符串处理函数及数字格式化
    比较两个DataTable中不同的记录,且合并两个DataTable的列显示,有图
  • 原文地址:https://www.cnblogs.com/frombyte/p/14768412.html
Copyright © 2011-2022 走看看