基本信息
|
客户姓名 | 某网络公司 |
![]() |
|
送修日期 | 2015 | |||
恢复用时 | 5天小时 | |||
故障描述 | 在一次存储突然断电之后,ESXi系统连不上存储,管理员在FreeNAS中发现UFS2文件系统出现问题,然后管理员用fsck 修复好了文件系统,此时 ESXi,系统已能连上存储,但发现ESXi系统未能识别到原来的数据存储和VMFS文件系统,管理员格式化VMFS后,发现里面数据已清空。 | |||
检查恢复 | 镜像工程师FreeNAS层分析整个存储,发现就一个900多GB的大文件,文件名: iscsidata。通过UFS2文件系统的二进制结构,定位到 iscsidata 文件的Inode数据,发现此文件被重建过,inode指针指向的数据量很少。进一步分析FreeNAS层,收集UFS2文件系统的重要结构:块大小:16KB,Segment 大小:2KB,柱面组大小:188176 KB。UFS2一个数据指针占 8字节,一个块可存储 2048个数据指针。那么一个二级指针块则可存储:2048*2048*16KB= 64GB 数据。一个三级指针块则可存储 64GB*2048= 128TB 数据 。为了寻找iscsidata文件的三级指针块,现场写程序收集有用的指针块:由于iscsidata文件是使用稀疏模式,收集条件只能放宽,收集到了大量三级指针块和二级指针块。对收集到的所有三级指针块进行分析,都是无效的,无iscsidata文件使用的三级指针块,估计在新建iscsidata文件时被新的覆盖(新的iscsidata文件在挂载到ESXi5.0后有个VMFS格式化过程,而 ESXi5.0 使用GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,这样会使用iscsidata文件的三级指针块)。现只能分析收集到的二级指针块,对有大量的二级指针块的指向数据进行DUMP,然后再从磁盘中的数据定位到二级指针。这样得到大量DUMP的数据。分析 VMFS 层:重格式化过VMFS,和原始UFS2的指针已丢失,造成VMFS元文件已基本上不可用,无重要的参考信息,所幸虚拟机都无快照,仍可恢复。通过单台虚拟机层(windows(NTFS)和 FreeBSD(UFS2)系统的文件系统结构),向上定位到VMFS层,在通过VMFS层定位到DUMP出的单个64GB 文件,通过多次组合,最终这三台重要的虚拟机的虚拟磁盘都已完全恢复。客户将恢复出的网页数据和数据库数据上传到一新构建的系统中,拉起应用,数据完全无问题。 |