Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226918
  • 博文数量: 473
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4765
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-02 14:16
文章分类

全部博文(473)

文章存档

2024年(37)

2023年(218)

2022年(181)

2020年(12)

2019年(24)

我的朋友

分类: 服务器与存储

2022-04-12 15:02:33

服务器数据恢复环境:

Dell服务器;
虚拟化系统为esxi;
上层采用iSCSI方式实现FCSAN功能,iSCSI是通过FreeNAS构建;
FreeNAS层采用UFS2文件系统,虚拟化系统里有3台虚拟机;
其中一台虚拟机采用FreeBSD系统,存储的是数据库文件,另外两台分别存储了网站数据和Windows服务器,存储的数据是数据库和工作程序代码。


故障:

异常断电导致服务器存储非正常关机,重启后ESXI系统无法连接存储。服务器管理员发现FreeNAS的UFS2文件系统由于非正常关机出现故障,于是对文件系统进行fsck修复并将ESXI系统连接到服务器存储上。

对上层文件系统及数据进行检查,发现原服务器上的文件系统和存储数据都无法被识别,服务器管理员对vmfs执行了格式化等操作,数据丢失。服务器管理员联系北亚数据恢复中心进行数据恢复,服务器管理员要求恢复这三台虚拟机。



服务器数据恢复过程:

1、北亚数据恢复中心拿到服务器硬盘后对FreeNAS层进行镜像。

2、对镜像进行底层数据分析。北亚数据恢复工程师在存储内发现了一个900G左右大小命名为iscsidata的大文件。

3、继续分析文件系统结构,根据UFS2文件系统的存储结构定位到这个大文件的iNode数据进行下一步检查。

4、通过对iNode数据的检查发现iscsidata文件此前被重建过,iNode指针所指向的数据量非常少,在这种情况下,想要进入到vmfs文件系统层进行数据分析和恢复首先要分析出FreeNAS层面的必要信息和数据。北亚数据恢复工程师通过分析得到如下信息:

UFS2文件系统块大小为16kb,segment大小为2kb,柱面组大小为188176kb,每个数据指针大小为8字节,每个块可容纳数据指针数量为2048个。

通过这些信息可以计算出:一个二级指针块可存储的数据量=2048*2048*16KB=64GB,三级指针块可存储的数据量=64GB*2048=128TB。

5、数据恢复工程师团队计划通过iscsidata文件的三级指针块来恢复FreeNAS层的数据,但由于该文件曾经被重建,导致了部分指针被重建的数据所覆盖,原文件的iNode和重建后的文件iNode所在的位置完全一致,也没有其他可用于数据恢复iNode数据。

6、北亚数据恢复工程师根据服务器的实际数据情况编写了比以往数据恢复时条件更宽泛的小程序收集有用的指针块,并收集到了大量二级指针块和三级指针块。

7、首先分析三级指针块,但遗憾的是经过检查后发现这些指针块都是无效的(应该是重建时被覆盖了,新的iscsidata文件在挂载到ESXi后有个VMFS格式化过程,而 本案例的ESXi版本使用的是GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,这样会使用iscsidata文件的三级指针块)。

8、继续分析二级指针块,对有大量的二级指针块的指向数据进行DUMP,然后再从磁盘中的数据定位到二级指针。这样得到大量DUMP的数据。

9、北亚数据恢复工程师根据以前研究过的NTFS和UFS2文件系统结构定位到vmfs层,然后定位到DUMP出的单个64GB文件,进行数据组合。

10、经过复杂的查询和重组,最终成功恢复出了服务器存储内的3台虚拟机及虚拟机内的全部数据。



服务器数据恢复结果:

北亚数据恢复工程师将恢复出来的数据上传到新构建出来的系统中进行验证,经服务器管理员亲自验证,确认所有数据恢复成功。
阅读(284) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~