服务器数据恢复环境:
一台服务器通过FreeNAS(本案例使用的是UFS2文件系统)实现iSCSI存储,整个UFS2文件系统作为一个文件挂载到ESXi虚拟化系统(安装在另外2台服务器上)上。该虚拟化系统一共有5台虚拟机,其中有3台虚拟机中的数据比较重要:一台虚拟机上部署了ASP.net+SqlServer和PHP+mysql;第二台虚拟机安装的FreeBSD,部署了MySQL数据库;第三台虚拟机存放的是代码数据。
本案例应用构架层次:FreeNAS(UFS2文件系统–> 一个大的稀疏模式的文件) –> ESXi (VMFS文件系统层) -> 单台虚拟机的虚拟磁盘 (windows-NTFS文件系统/FreeBSD-UFS2文件系统)。
服务器故障:
作为iSCSI存储的服务器在正常运行过程中异常断电,重启后虚拟化系统无法连接该服务器,FreeNAS的UFS2文件系统出现问题,管理员对UFS2文件系统进行了修复,但是ESXI虚拟化系统无法识别原有的数据和UFS2文件系统。
服务器数据恢复过程:
1、对FreeNAS层做只读镜像,后续的数据分析和数据恢复操作都基于镜像文件进行,避免数据恢复操作对原始数据造成二次破坏。
2、基于镜像文件分析整个存储,只发现了一个文件名为iscsidata的、大小数百GB的文件。
3、根据UFS2文件系统的二进制结构定位到iscsidata文件的Inode数据,经过检测发现该文件被重建过,inode指针指向的数据量很少,在FreeNAS层无法解决问题,所以就无法进行下一步的VMFS层分析。
4、由于iscsidata文件重建过,过程和大小都和原iscsidata文件一致,应该有部分指针块被覆盖。原iscsidata文件的inode和新建的iscsidata文件的inode在同一个位置,尝试搜索没有发现其它有用的inode。
5、北亚企安数据恢复工程师编写程序收集有用的指针块。
由于iscsidata文件采用的稀疏模式,放宽收集条件后收集到了大量三级指针块和二级指针块。
6、经过分析发现所有收集到的三级指针块都是无效的,没有找到iscsidata文件使用的三级指针块,应该是在新建iscsidata文件时被覆盖。
7、分析收集到的二级指针块并对大量的二级指针块的指向数据进行DUMP,然后从磁盘中的数据定位到二级指针。通过这种方式获取到大量DUMP的数据。
8、分析VMFS层。由于VMFS重新格式化过,原始UFS2的指针已丢失,所以VMFS元文件不可用。
9、通过单台虚拟机层(windows(NTFS)和FreeBSD(UFS2)的文件系统结构),向上定位到VMFS层,然后通过VMFS层定位到DUMP出的单个64GB文件。通过多次组合,最终将三台重要虚拟机的虚拟磁盘完全恢复。将恢复出的网页数据和数据库数据上传到准备好的系统中,拉起应用并对数据进行检测,没有发现任何问题。
10、经过用户方的仔细检测后,确认3台重要虚拟机中的数据成功恢复,认可本次数据恢复结果。本次服务器数据恢复工作完成。