8

【服务器数据恢复】意外断电导致FreeNAS中UFS2文件系统故障的数据恢复案例

 2 years ago
source link: https://blog.51cto.com/sun510/5279191
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【服务器数据恢复】意外断电导致FreeNAS中UFS2文件系统故障的数据恢复案例

原创

宋国建 2022-05-07 10:45:22 ©著作权

文章标签 数据 服务器 文件系统 文章分类 其他 服务器 阅读数165

服务器数据恢复环境:

一台服务器使用FreeNAS做iSCSI,借助两台服务器做虚拟化系统;

FreeNAS采用UFS2文件系统;

整个服务器建一个文件挂载给ESXi系统;

ESXi虚拟化系统有5台虚拟机:一台虚拟机部署了ASP.net和PHP,SqlServer2005和 mysql5.1两个数据库;另一台安装FreeBSD系统,MySQL数据库;第三台虚拟机存储的是代码数据,这三台虚拟机上的数据是需要重点恢复的。

服务器故障:

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

服务器数据恢复过程:

此服务器数据恢复案例的应用构架层次:FreeNAS(UFS2文件系统–> 一个大的稀疏模式的文件) –> ESXi(VMFS文件系统层) -> 单台虚拟机的虚拟磁盘 (windows-NTFS文件系统/FreeBSD-UFS2文件系统)。

1、镜像FreeNAS层并分析整个存储,只发现一个900多GB的文件名为iscsidata的大文件。通过UFS2文件系统的二进制结构定位到iscsidata文件的Inode数据发现此文件被重建过,inode指针指向的数据量很少。FreeNAS层问题无法解决,就无法进入到下一步的VMFS层分析。

2、收集UFS2文件系统的重要结构:

块大小:16KB

Segment大小:2KB

柱面组大小:188176 KB

UFS2一个数据指针占8字节,一个块可存储2048个数据指针。那么一个二级指针块则可存储:2048*2048*16KB=64GB的数据。一个三级指针块则可存储64GB*2048=128TB的数据。如果能找到iscsidata文件的三级指针块就能解决FreeNAS层问题。但iscsidata文件重建过,过程和大小都和原始的一样,初步判断有部分指针块已被覆盖。原始 iscsidata文件的inode和新建的iscsidata文件的inode就在一个位置。

3、尝试进行搜索没有发现其它有用的inode,数据恢复工程师只得现场写程序收集有用的指针块:

【服务器数据恢复】意外断电导致FreeNAS中UFS2文件系统故障的数据恢复案例_文件系统

由于iscsidata文件采用的是稀疏模式,收集条件只能放宽,收集到了大量三级指针块和二级指针块。

4、对收集到的所有三级指针块进行分析,没有发现iscsidata文件使用的三级指针块,初步判断在新建iscsidata文件时被新的覆盖(新的iscsidata文件在挂载到ESXi后有个VMFS格式化过程,而ESXi使用GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,这样就会使用iscsidata文件的三级指针块)。

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

5、分析VMFS层。重格式化过VMFS,原始UFS2的指针已丢失,VMFS元文件基本上不可用,无重要的参考信息,所幸虚拟机都有快照,仍可恢复。通过单台虚拟机层(windows(NTFS)和 FreeBSD(UFS2)系统的文件系统结构)向上定位到VMFS层,再通过VMFS层定位到DUMP出的单个64GB 文件,通过多次组合,最终将这三台重要的虚拟机的虚拟磁盘完全恢复。将恢复出来的网页数据和数据库数据上传到新构建的系统中,应用运行没有发现问题。经过3天的努力,服务器内的所有数据被成功恢复。

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK