VMFS简介:
物理区:物理上连续的磁盘空间,即通常意义上的分区。
本地区:VMFS管理的物理区分为保留区和本地区,前面一部分是保留区,后面部分是本地区。本地区又分为元文件区和数据区。
元文件:与NTFS的元文件类似,属于FS的管理用数据。VMFS有6个元文件:.VH.SF/.FBB.SF/.FDC.SF/.SBC.SF/.PBC.SF/.PB2.SF。
元文件区:6个元文件占用的所有空间,在本地区的前面部分。
数据区:用于存放文件数据。
datastore:在ESX服务器上看到的VMFS存储空间。
LV:logical volume,所指的范围其实和本地区一样,即虚拟化卷。
LVM逻辑卷组:用来管理跨disk的LV,相当于VMFS的存储空间datastore。
VMFS元文件:
.VH.SF: volume header文件,承载了‘本地区(或者LV)’的大小、时间、块大小、块数等信息。
.FBB.SF:file-bitmap文件,承载了‘datastore’里的块使用情况的位图信息。
.FDC.SF:file-discriptor文件,承载了‘datastore’里所有文件、目录的结点信息。
.SBC.SF: subblock分配文件,承载了‘datastore’里所有小文件、目录的数据区。
.PBC.SF: point-block文件,指针文件,承载了大文件的额外指针(超出结点记录范围的地址)。
.PB2.SF: .PBC.SF的再扩展。
虚拟机删除的数据恢复流程:
虚拟机删除后空间被回收,数据会暂存于自由空间中。根据entry中的位图将所有空闲子块全部提取出来,在自由空间中进行查找恢复,防止现有数据的干扰。虚拟机删除后是否可以恢复,关键在于磁盘头部是否还存在,若磁盘头部还存在就可以尝试拼接虚拟磁盘。
1、将所有磁盘做好标记后取出,硬件工程师对所有硬盘进行检测看是否有硬盘存在硬件故障。如果有硬盘存在硬件故障,尝试修复故障硬盘。
2、将所有磁盘在只读模式下进行扇区级全盘镜像,镜像完成后将所有磁盘按照原样还原到原服务器/存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
3、基于镜像分析所有磁盘底层数据。需要分析的内容包括:每个块组中子块的数量,每个area中entry的数量,元文件头部的大小,子块大小,area的数量。根据entry特征值分析entry的大小。根据entry中的位图信息,使用北亚企安自主开发的虚拟化数据恢复工具提取VMFS卷的自由子块。
4、通过解析每个块第一条指针至数据区来判断丢失虚拟磁盘头部是否存在。如果存在则尝试进行虚拟机的拼接工作。
5、遍历所有类型的子块,判断第一条指针是否为磁盘头部。使用北亚企安自主开发的虚拟化分析工具判断每个类型子块第一条指针是否为磁盘头部及头部类型(MBR、EXT4、LVM、Sparse、SeSparse等),并将判断结果保存至数据库中。数据库只记录磁盘类型和磁盘头部所在位置,需根据丢失虚拟机大小、文件系统等判断是否有符合丢失磁盘特征的头部。
6、分析符合特征的磁盘头部。按照文件系统存储结构进行寻址拼接。计算出需要匹配数据块的特征值和该数据块在磁盘中的位置,以及特征值在数据库内的偏移位置。
7、根据需要修复的文件系统特征值和位置,使用北亚企安自研的工具匹配符合结构的数据块。
8、根据匹配结果及该数据块在子块中的连续性,使用北亚企安自研的工具拼接正确的数据块。直至恢复出所有数据。