vsan数据恢复环境:
一套VMware vSAN超融合基础架构,全闪存,开启压缩重删。共11台服务器节点。每台服务器节点上配置1块PCIE固态硬盘和8-10块SSD固态硬盘。
每个服务器节点上创建1个磁盘组,每个磁盘组将1个PCIE固态硬盘识别为2个硬盘作为缓存盘,将8-10个SSD固态硬盘作为容量盘,共同组成vSAN存储空间,用来存储虚拟机文件。
vsan故障&检测:
vSAN中一台服务器节点的PCIE缓存盘发生故障,导致vSAN逻辑架构出现故障,2台虚拟机磁盘组件出现问题,虚拟机无法正常使用。
将11台节点服务器中的所有磁盘编号后取出,以只读方式做全盘镜像备份,备份完成后将磁盘按照编号还原到原节点服务器中,后续的数据分析和数据恢复操作都基于镜像文件,避免对原始磁盘数据造成二次破坏。
扫描&分析全部镜像文件,发现由于版本更新和开启了压缩重删机制,底层结构差异较大。
针对这种情况的数据恢复,难点在于压缩和重删的算法,因为需要大量数据碰撞测试和大量代码来测试压缩和重删算法。
vsan数据恢复过程:
1、基于镜像文件分析底层数据。根据底层记录的磁盘ID等信息,将节点、磁盘组、缓存盘、容量盘等信息及对应关系进行整理记录。
2、尝试在底层搜索&分析组件信息,结果发现组件信息被压缩,无法进行分析。
3、测试压缩和重删。因该vSAN集群开启了压缩重删机制,底层数据结构发生很大的变化。北亚企安数据恢复工程师搭建相同版本的环境,在搭建好的环境中通过大量数据碰撞测试来研究压缩重删的算法和存储结构。
4、通过大量数据碰撞测试研究压缩重删算法,因为不确定该vSAN集群的采用了何种压缩算法,所以北亚企安数据恢复工程师只能通过大量规律数据进行逆向推理确定其压缩算法,然后解压缩。
压缩块:
解压后:
5、解析重删位图。通过大量数据测试确定压缩位图位置、记录方式、位图索引块大小等,从而获取位图索引方式,解析重删位图。
6、因为VSAN中所有文件都是以对象的方式存在,每个对象会被分割为多个组件。北亚企安数据恢复工程师编写程序扫描组件信息,根据组件中的runlist找到每个数据块和该块在组件的逻辑位置,然后编写程序提取完整组件。
7、根据组件信息中的描述信息将组件按照描述信息中记录的RAID级别和各个组件在对象中的逻辑位置进行组合,拼接出完整的对象,即完整的vmdk文件。因为每个组件可能会有部分数据留在缓存盘上,并没有写入到容量盘中,所以北亚企安数据恢复工程师编写程序将缓存盘上的数据刷新到对应的组件或对象中。
8、因为本案例中虚拟磁盘使用Windows下DFS分布式文件系统并且开启重删机制,无法直接提取数据。新建DFS环境,将合并完成的虚拟磁盘挂载到该环境下,挂载后可直接访问数据。
9、由用户方对数据进行检测,经过检测确认恢复出来的数据完整可用。本次数据恢复工作完成。