苏州FreeNAS+ESXi5数据恢复案例

【物理与逻辑存储】

此公司使用一种廉价的存储模式,用iSCSI方式来达到FC SAN的功能。

物理存储构架在一台 DELL 服务器上,使用 FreeNAS 来做 iSCSI,然后使用两台 DELL 服务器做ESXi5.0 的的虚拟化系统。FreeNAS 层为UFS2文件系统,整个存储建一个稀疏模式的文件,挂给ESXi5.0 系统。ESXi系统内跑有5台虚拟机,其中有三台最为重要。

一台windows2003系统虚拟机是此公司在当地的门户网站。使用 ASP.net和 PHP 混合构架,使用数据库为 SqlServer2005和 mysql 5.1 。一台为FreeBSD 系统,跑有 Mysql数据库,供其它多台虚拟机使用。一台为windows2003服务器,存储此公司新开发的程序代码。

【故障现象】

在一次存储突然断电之后,ESXi系统连不存储,管理员在FreeNAS中发现UFS2文件系统出现问题,然后管理员用fsck 修复好了文件系统,此时 ESXi 系统已能连上存储,但发现ESXi系统未能识别到原来的数据存储和VMFS文件系统,管理员格式化VMFS后,发现里面空无一物。

【数据恢复过程】

客户找到了几家数据恢复公司,耗时一个星期,仍无结果。事情太过于复杂。后经上海某运维公司介绍,客户联系上了北京北亚数据恢复中心。在进行详细沟通后制定了一个详细的数据恢复方案,经客户认可后,工程师直接飞往苏州进行数据恢复。分析故障,最大化利用可用信息。

开始抽丝剥茧:

应用构架层次:FreeNAS(UFS2文件系统–> 一个大的稀疏模式的文件) –> ESXi 5.0(VMFS文件系统层) -> 单台虚拟机的虚拟磁盘 (windows-NTFS文件系统/FreeBSD-UFS2文件系统)。

第一步是镜像 FreeNAS 层,然后分析整个存储,发现就一个900多GB的大文件,文件名: iscsidata。通过UFS2文件系统的二进制结构,定位到 iscsidata 文件的Inode数据,发现此文件被重建过,inode指针指向的数据量很少。

FreeNAS层无法解决,就无法进入到下一步的 VMFS层分析。收集UFS2文件系统的重要结构:

块大小:16KB

Segment 大小:2KB

柱面组大小:188176 KB

UFS2一个数据指针占 8字节,一个块可存储 2048个数据指针。那么一个二级指针块则可存储:2048*2048*16KB= 64GB 数据。一个三级指针块则可存储 64GB*2048= 128TB 数据

如果能找到 iscsidata 文件的三级指针块就能解决 FreeNAS层问题。但iscsidata文件重建过,过程和大小都和原始的一样,估计有部分指针块已被覆盖。原始 iscsidata 文件的 inode和新建的 iscsidata 文件的 inode 就在一个位置,尝试进行搜索,无其它有用的inode出现。只得现场写程序收集有用的指针块:

图一:

由于iscsidata文件是使用稀疏模式,收集条件只能放宽,收集到了大量三级指针块和二级指针块。对收集到的所有三级指针块进行分析,都是无效的,无iscsidata文件使用的三级指针块,估计在新建iscsidata文件时被新的覆盖(新的iscsidata文件在挂载到ESXi5.0后有个VMFS格式化过程,而 ESXi5.0 使用GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,这样会使用iscsidata文件的三级指针块)。

现只能分析收集到的二级指针块,对有大量的二级指针块的指向数据进行DUMP,然后再从磁盘中的数据定位到二级指针。

这样得到大量DUMP的数据。

开始分析 VMFS 层:

重格式化过VMFS,和原始UFS2的指针已丢失,造成VMFS元文件已基本上不可用,无重要的参考信息,所幸虚拟机都无快照,仍可恢复。

通过 单台虚拟机层(windows(NTFS)和 FreeBSD(UFS2)系统的文件系统结构),向上定位到VMFS层,在通过VMFS层定位到DUMP出的单个64GB 文件,通过多次组合,最终这三台重要的虚拟机的虚拟磁盘都已完全恢复。

客户将恢复出的网页数据和数据库数据上传到一新构建的系统中,拉起应用,数据完全无问题。

图二:

【数据恢复结果】

耗时2天,最终数据100% 恢复成功。

【数据恢复服务承诺】

1. 免费检测

2. 与客户签订保密协议,对客户的数据严格保密

3. 数据恢复不成功不收费

4. 专业工程师提供服务

5. 数据恢复前报价,客户确认后工程师开始数据修复

6. 整个恢复过程不会对客户的原盘有任何的写操作,以确保原盘的数据完全

苏州FreeNAS+ESXi5数据恢复案例相关推荐

  1. 苏州某公司FreeNAS+ESXi5数据丢失恢复过程

    苏州某公司FreeNAS+ESXi5数据丢失恢复过程 [物理与逻辑存储] 此公司使用一种廉价的存储模式,用iSCSI方式来达到FC SAN的功能.物理存储构架在一台 DELL 服务器上,使用 Free ...

  2. 4块硬盘做raid几_HP-P4500存储RAID硬盘离线数据恢复案例

    在这里北亚小编分享一篇关于HP-P4500存储RAID硬盘离线数据恢复案例,经客户描述:一台HP-P4500的存储系统,底层是12块1TB的硬盘组的RAID.其中每6个1TB的盘一组,第一组的前面一部 ...

  3. MySQL中truncate误操作后的数据恢复案例

    MySQL中truncate误操作后的数据恢复案例 这篇文章主要介绍了MySQL中truncate误操作后的数据恢复案例,主要是要从日志中定位到truncate操作的地方然后备份之前丢失的数据,需要的 ...

  4. ibm v7000配置文档_IBM_V7000底层结构及服务器数据恢复案例详解

    [IBM原理详解] IBM_V7000(全名IBM Storwize V7000)是IBM推出的新一代中端存储系统,尽管定位中端,Storwize V7000却提供了以往高端存储才具备的强大存储管理功 ...

  5. 2个硬盘离线导致raid崩溃的数据恢复案例

    案例1:多块硬盘离线导致raid6崩溃的数据恢复案例 服务器数据恢复环境: 6块750G磁盘的RAID6: WEB服务器+MYSQL数据库: 存放了大量其它文件. 服务器故障: 先后有两块磁盘离线,服 ...

  6. linux 恢复 raid5数据,Raid5数据恢复案例(raid阵列数据恢复方法)

    原标题:Raid5数据恢复案例(raid阵列数据恢复方法) Raid5数据恢复算法原理 要理解 raid5数据恢复原理首先要先认识raid5,"分布式奇偶校验的独立磁盘结构"也就是 ...

  7. 【服务器数据恢复】哪些故障会导致服务器数据丢失?多块硬盘离线的数据恢复案例

    在服务器运行过程中难免出现故障导致数据的丢失,哪些服务器故障会导致数据丢失呢? 1.同一阵列内多块硬盘出现故障: 2.服务器模块老化: 3.服务器系统更新: 4.意外断电: 5.错误的拔插服务器硬盘: ...

  8. hp服务器硬盘离线改在线,HP服务器硬盘不在线数据恢复案例分析

    原标题:HP服务器硬盘不在线数据恢复案例分析 [数据恢复故障描述] HP DL360G5 一台,其中 希捷 146G SAS硬盘 5块,raid 信息丢失,所有物理硬盘不再是ONLINE状态.这种情况 ...

  9. V7000存储底层结构原理+V7000存储数据恢复案例

    Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...

最新文章

  1. java自增运算符与自减运算符
  2. TensorFlow AI 新品更易用!联手NVIDIA,支持Swift和JavaScript
  3. Redis5新特性Streams作消息队列
  4. 责任链模式——HeadFirst设计模式学习笔记
  5. 致传统企业朋友:不够痛就别微服务,有坑
  6. python vscode_VScode 配置为Python编辑器
  7. 开发app用户协议_家电商城APP开发,方便用户选购家电商品
  8. 关于流控器件和压控器件
  9. java 变量名 字符串_如何使字符串值在java中调用特定的现有JButton变量名?
  10. Linux浏览器libgtk-3,终于把WebKit(基于GTK)移植到ARM上
  11. 集成hello到OpenDaylight发行版中
  12. 【元胞自动机】基于matlab元胞自动机人流疏散【含Matlab源码 665期】
  13. python三菱modbus解密_Modbus PLC攻击分析:Python和Mbtget读写PLC
  14. Rainmeter 雨滴桌面 主题分享
  15. creo数控编程怎么样_creo3.0数控编程加工使用实例视频教程入门到精通 车床编程...
  16. 徐州一姑娘写的(女孩看了是自省,男孩看了是激励)
  17. 2019年 年终总结
  18. 【附源码】计算机毕业设计SSM七七美食汇
  19. java公告栏按月查询_求java公告栏特效代码
  20. Polkadot波卡链众筹成本价与总量、创始人团队简介

热门文章

  1. 小米Android系统限制联网,Android 7 以上版本,绕过CA限制,抓取https
  2. select * from什么意思_SQL入门教程第15课:什么是内连接
  3. python 迭代器 生成器_Python迭代器和生成器
  4. java让程序暂停几秒_影响JAVA系统性能的微观指标
  5. python server酱_用Python抢到回家的车票,so easy
  6. git checkout切换到指定commit
  7. 匈牙利命名法为何被淘汰_被称为手表中“蓝血贵族”的百达翡丽,为何会受到如此的追捧?...
  8. hexo next 主题安装 livere 评论插件
  9. php怎么修改滑动条,修改滚动条样式的方法
  10. 修改 连接层_Mybatis连接池_动态sql语句_多表查询实现