【存储服务器介绍】

发生故障的服务器存储为常见存储模式,物理存储为一台Dell服务器,虚拟化系统为esxi5.0。上层采用iSCSI方式实现FCSAN功能,上层的iSCSI是使用FreeNAS构建的。
·
服务器的FreeNAS层采用了UFS2文件系统,虚拟化系统里有3台虚拟机,本次服务器数据恢复的重点就是这三台虚拟机。其中一台虚拟机采用的是FreeBSD 系统,存储的是数据库文件,另外两台分别存储了网站数据和Windows2003服务器,存储的是数据库数据和工作程序代码。
·

【存储服务器故障发生过程】

客户机房供电系统不稳定导致服务器存储非正常关机,重启后ESXI系统无法连接存储。机房管理员对服务器进行故障排查,发现FreeNAS的UFS2文件系统由于非正常关机出现故障,于是对文件系统进行fsck修复并将ESXI系统连接到服务器存储上。
·
管理员对上层文件系统及数据进行检查,发现原服务器上的文件系统和存储数据都无法被识别,把vmfs进行了格式化等操作,最终导致数据丢失。
·

【服务器存储数据恢复过程】

数据恢复中心接到客户的服务器硬盘后首先对FreeNAS层进行镜像,然后进行底层数据分析。服务器数据恢复工程师在存储内发现了一个被命名为iscsidata的大文件,文件的容量有900G左右。服务器数据恢复工程师继续分析文件系统结构,根据UFS2文件系统的存储结构定位到这个大文件的iNode数据进行下一步查看。FreeNAS+ESXi5异常断电,ESXI系统无法连接存储_第1张图片
·
通过查看发现iscsidata文件此前被重建过,iNode指针所指向的数据量非常少,在这种情况下,想要进入到vmfs文件系统层进行数据分析和恢复首先要分析出FreeNAS层面的必要信息和数据。服务器数据恢复工程师通过分析得到如下信息。
·
UFS2文件系统块大小为16kb,segment大小为2kb,柱面组大小为188176kb,每数据指针大小为8字节,每个块可容纳数据指针数量为2048个。
·
由此信息可以计算出,一个二级指针块可存储的数据量=2048204816KB=64GB。三级指针块可存储的数据量=64GB*2048=128TB。
·
服务器数据恢复工程师计划通过iscsidata文件的三级指针块来恢复FreeNAS层的数据,但由于该文件曾经被重建,导致了部分指针被重建的数据所覆盖,原文件的iNode和重建后的文件iNode所在的位置完全一致,也没有其他可用于数据恢复iNode数据。
·
服务器数据恢复工程师根据服务器的实际数据情况编写了比以往数据恢复时条件更宽泛的小程序收集有用的指针块,并收集到了大量二级指针块和三级指针块。
·
服务器数据恢复工程师首先分析三级指针块,但遗憾的是这些指针块经过检查都是无效的,于本次服务器数据恢复而言无用(估计是重建时被覆盖了,新的iscsidata文件在挂载到ESXi5.0后有个VMFS格式化过程,而 ESXi5.0 使用GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,这样会使用iscsidata文件的三级指针块)。
·
继续分析二级指针块,对有大量的二级指针块的指向数据进行DUMP,然后再从磁盘中的数据定位到二级指针。这样得到大量DUMP的数据
·
服务器数据恢复工程师运用以往研究到的NTFS和UFS2文件系统结构想想定位到vmfs层,继而定位到DUMP出的单个64GB文件,进行数据组合。
·
经过复杂的查询和重组操作,最终服务器数据恢复工程师成功恢复出了客户服务器存储内的3台虚拟机及虚拟机内的全部数据。FreeNAS+ESXi5异常断电,ESXI系统无法连接存储_第2张图片
·

【服务器数据恢复结果验证】

服务器数据恢复工程师将恢复出来的数据上传到新构建出来的系统中进行验证,经客户管理员进行验证,所有数据恢复成功,本次数据恢复的成功率为100%。