您所在的位置:首页 > 成功案例 > 虚拟化数据恢复

断电导致ESXi虚拟化系统故障的数据恢复案例

最新动态来源:本站原创点击数:255更新时间:2023/3/15

服务器数据恢复环境:
某公司一台服务器,使用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文件。通过多次组合,最终将三台重要虚拟机的虚拟磁盘完全恢复。将恢复出的网页数据和数据库数据上传到准备好的环境中,起应用后没有发现问题。