ITPub博客

首页 > IT基础架构 > 服务器/存储 > 服务器数据恢复案例:FreeNAS数据恢复过程记录

服务器数据恢复案例:FreeNAS数据恢复过程记录

原创 服务器/存储 作者:北亚数据恢复 时间:2019-09-09 15:38:00 0 删除 编辑

【服务器数据恢复背景】

本次数据恢复的设备是一台服务器,使用的是FreeNAS做iSCSI,再借助于两台服务器做虚拟化系统。FreeNAS层面是UFS2文件系统,整个服务器建一个文件然后挂在给ESXi5.0 系统。这个虚拟化系统中一共有5台虚拟机,其中一台虚拟机采用了ASP.net和 PHP 混合构架,SqlServer2005和 mysql 5.1两个数据库。还有另一台是FreeBSD系统,MySQL数据库,还有一台服务器存储的是代码数据,这三台虚拟机是该服务器上数据恢复的重点数据,必须要进行完美数据恢复。

【服务器数据恢复故障】

需要数据恢复的服务器在正常运行过程中意外断电,重启后虚拟化系统无法链接服务器,FreeNAS中发现UFS2文件系统出现问题,该公司管理员对文件系统进行了修复,但是ESXI系统不能识别原有数据和文件系统。管理员联系到数据恢复中心进行服务器数据恢复。

【服务器数据恢复过程】

分析故障,最大化利用可用信息。开始抽丝剥茧:

应用构架层次: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 文件,通过多次组合,最终这三台重要的虚拟机的虚拟磁盘都已完全恢复。将恢复出的网页数据和数据库数据上传到一新构建的系统中,拉起应用,数据完全无问题。

图二:(图片来源于数据恢复中心)

【服务器数据恢复结果】

耗时3天,该服务器内的所有数据成功恢复。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31380569/viewspace-2656481/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事数据恢复工作,擅长服务器/虚拟机/数据库等方面的数据恢复

注册时间:2016-08-02

  • 博文量
    172
  • 访问量
    94166