乐趣区

关于数据恢复:虚拟机数据恢复FreeNASESXi数据恢复案例

虚拟机数据恢复环境:
架构在一台 DELL 服务器上的存储应用 FreeNAS 来做 iSCSI;
另外两台 DELL 服务器做 ESXi 虚拟化零碎(共 5 台虚拟机);
FreeNAS 是 UFS2 文件系统,整个存储建一个稠密模式的文件,挂载到 ESXi 零碎。
ESXi 虚拟化零碎中最重要的 3 台虚拟机根本状况:
一台 windows server 零碎,外部数据为该公司的门户网站,ASP.net+PHP 混合构架,数据库:SqlServer+mysql。
一台为 FreeBSD 零碎,存储 Mysql 数据库,供其它多台虚拟机应用。
一台为 windows server 零碎,存储此公司新开发的程序代码。

虚拟机故障状况:
一次意外断电后,ESXi 零碎连贯不上存储。通过查看后发现 FreeNAS 中的 UFS2 文件系统呈现问题。管理员用 fsck 修复文件系统。修复实现后 ESXi 零碎能够连上存储,但 ESXi 零碎不能辨认到原来的数据存储和 VMFS 文件系统。管理员分割咱们数据恢复核心进行数据恢复。

虚拟机数据恢复过程:
本案例的利用构架档次:FreeNAS(UFS2 文件系统–> 一个稠密模式的文件) –> ESXi(VMFS 文件系统层) -> 单台虚拟机的虚构磁盘 (windows-NTFS 文件系统 /FreeBSD-UFS2 文件系统)。
1、镜像 FreeNAS 层。整个存储的文件就是一个名称为 iscsidata 的 900+GB 的文件。
2、通过 UFS2 文件系统的二进制构造,定位到 iscsidata 文件的 Inode 数据,数据恢复工程师发现此文件被重建过,inode 指针指向的数据量很少。FreeNAS 层的问题无奈解决,就无奈进入到下一步的 VMFS 层剖析。
收集 UFS2 文件系统的重要构造:
块大小:16KB
Segment 大小:2KB
柱面组大小:188176KB
UFS2 一个数据指针占 8 字节,一个块可存储 2048 个数据指针,一个二级指针块可存储:2048204816KB= 64GB 数据,一个三级指针块可存储 64GB*2048= 128TB 数据。如果能找到 iscsidata 文件的三级指针块就能解决 FreeNAS 层的问题。iscsidata 文件重建过,推断有局部指针块已被笼罩。原始 iscsidata 文件的 inode 和新建 iscsidata 文件的 inode 就在一个地位,数据恢复工程师尝试搜寻没有发现其它有用的 inode,只能编写程序收集有用的指针块:

3、因为 iscsidata 文件是应用稠密模式,放宽程序的收集条件,收集到大量三级指针块和二级指针块。
4、对所有收集到的三级指针块进行剖析,数据恢复工程师发现这些指针块都是有效的,没有发现 iscsidata 文件应用的三级指针块。数据恢复工程师推断呈现这种状况是因为在新建 iscsidata 文件时被笼罩(新的 iscsidata 文件在挂载到 ESXi 后有个 VMFS 格式化过程,而本案例中的 ESXi 版本 应用的是 GPT 分区,GPT 分区会在磁盘最初写入冗余的 GPT 头和分区表信息数据,这样会应用 iscsidata 文件的三级指针块)。
5、数据恢复工程师剖析收集到的二级指针块,对有大量的二级指针块的指向数据进行 DUMP,而后再从磁盘中的数据定位到二级指针。通过这种形式取得大量 DUMP 的数据。
6、剖析 VMFS 层。因为管理员格式化过 VMFS,原始 UFS2 的指针已失落,VMFS 元文件基本上不可用,无重要参考信息。所幸虚拟机都有快照,仍可复原。通过单台虚拟机层 (windows(NTFS) 和 FreeBSD(UFS2)零碎的文件系统构造)向上定位到 VMFS 层,再通过 VMFS 层定位到 DUMP 出的单个 64GB 文件。通过屡次组合,最终将这三台重要的虚拟机的虚构磁盘数据完全恢复进去。
7、将复原进去的网页数据和数据库数据上传到新构建的零碎中,拉起利用,没有发现任何问题。历时 4 天,数据恢复实现。

退出移动版