服务器数据恢复环境:
某公司一台服务器,应用 FreeNAS 做 iSCSI,借助另外两台服务器做虚拟化零碎。此虚拟化零碎装置有 5 台虚拟机,其中 3 台虚拟机比拟重要:一台虚拟机部署了 ASP.net、PHP,装置了 SqlServer 和 mysql 数据库;另一台装置的 FreeBSD 零碎并部署了 MySQL 数据库;一台虚拟机存储的是代码和数据。
FreeNAS 层采纳的是 UFS2 文件系统;服务器建一个文件而后挂载到 ESXi 零碎。
服务器故障:
服务器意外断电后重启,虚拟化零碎无奈连贯服务器,UFS2 文件系统呈现问题,管理员试图修复文件系统,然而实现修复后 ESXi 零碎无奈辨认原有的数据和文件系统。
服务器数据恢复过程:
1、剖析本案例的利用构架档次:FreeNAS(UFS2 文件系统–> 一个大的稠密模式的文件) –> ESXi(VMFS 文件系统层) -> 单台虚拟机的虚构磁盘 (windows-NTFS 文件系统 /FreeBSD-UFS2 文件系统)。
2、对 FreeNAS 做残缺镜像,基于镜像文件剖析整个存储,在存储中只发现一个文件名为 iscsidatade 的大文件。
3、依据 UFS2 文件系统的二进制构造定位到 iscsidata 文件的 Inode 数据,发现 iscsidata 文件被重建过,inode 指针指向的数据量很少。
Tips:如果 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。北亚企安数据恢复工程师只能编写程序来收集有用的指针块:
4、因为该 iscsidata 文件采纳的是稠密模式,放宽收集条件后收集到了大量的三级指针块和二级指针块。通过剖析后发现这些收集到的三级指针块都是有效的,没有发现 iscsidata 文件应用的三级指针块,预计在新建 iscsidata 文件时被笼罩(新的 iscsidata 文件挂载到 ESXi 后有个 VMFS 格式化过程,而 该 ESXi 版本应用的是 GPT 分区,GPT 分区会在磁盘最初写入冗余的 GPT 头和分区表信息数据,会应用 iscsidata 文件的三级指针块)。
5、剖析收集到的二级指针块,对有大量二级指针块的指向数据进行 DUMP,再从磁盘中的数据定位到二级指针,通过这种形式失去大量 DUMP 的数据。
6、VMFS 被从新格式化过,原 UFS2 文件系统的指针已失落,所以 VMFS 元文件不可用。只能通过单台虚拟机层 (windows(NTFS) 和 FreeBSD(UFS2)零碎的文件系统构造)向上定位到 VMFS 层,再通过 VMFS 层定位到 DUMP 出的单个 64GB 文件。通过屡次组合,最终将三台重要虚拟机的虚构磁盘完全恢复。将复原出的网页数据和数据库数据上传到筹备好的环境中,起利用后没有发现问题。