关于数据恢复:服务器数据恢复意外断电导致FreeNAS中UFS2文件系统故障的数据恢复

124次阅读

共计 1456 个字符,预计需要花费 4 分钟才能阅读完成。

服务器数据恢复环境:

一台服务器应用 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 个数据指针。那么一个二级指针块则可存储:2048204816KB=64GB 的数据。一个三级指针块则可存储 64GB*2048=128TB 的数据。如果能找到 iscsidata 文件的三级指针块就能解决 FreeNAS 层问题。但 iscsidata 文件重建过,过程和大小都和原始的一样,初步判断有局部指针块已被笼罩。原始 iscsidata 文件的 inode 和新建的 iscsidata 文件的 inode 就在一个地位。

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

因为 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 天的致力,服务器内的所有数据被胜利复原。

正文完
 0