vSAN数据恢复-vSAN架构下虚拟机磁盘组件出现问题的数据恢复案例

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、由用户方对数据进行检测,经过检测确认恢复出来的数据完整可用。本次数据恢复工作完成。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8快速复现 官网版本 ultralytics

YOLOV8环境安装教程.:https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频:https://www.bilibili.com/video/BV12p4y1c7UY/ 1 平台搭建YOLOv8 平台:https://www.a…

使用Python进行员工流失分析

员工流失分析是指分析离开公司、企业的员工的行为,并将他们与公司中的现有员工进行比较。它有助于找出哪些员工可能很快离开。所以,如果你想学习如何分析员工流失,这篇文章适合你。本文中,将带您完成使用Python进行员工流失分析的…

【李沐深度学习笔记】基础优化方法

课程地址和说明 基础优化方法p2 本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。 基础优化方法 在讲具体的线性回归实现之前,要先讲一下基础的优化模型的方法 梯度下降 当模型没有显示解&#xff08…

华为孟晚舟:从最惨千金 到最强战士

作者:积溪 简评:华为25号开发布会,有何深意?从最惨千金到最强战士,孟晚舟和华为都回来了 #华为发布会 #孟晚舟 #任正非 #华为 华为发布会 在打谁的脸? 苹果只是前菜 今天才是正餐 两年前的今天 华为…

数据结构 | 树

树 树是n(n>0)个结点的有限集。当n 0时,称为空树。在任意一棵非空树中应满足: 有且仅有一个特定的称为根的结点。当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm&#…

git_回退到上一次commit与pull

git 回退到上个版本 rollback 回滚 git reset HEAD, git 回退到上一版本

SpringCloud 学习(一)简介和环境搭建

1. 简介 1.1 SpringCloud SpringCloud 基于 SpringBoot 提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了 NetFlix 的开源组件做高度抽…

SpringMVC 学习(一)Servlet

1. Hello Servlet (1) 创建父工程 删除src文件夹 引入一些基本的依赖 <!--依赖--> <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test<…

【KMP算法】C++

KMP算法的原理是通过构建部分匹配表&#xff0c;来利用已经匹配过的信息&#xff0c;避免不必要的回溯。部分匹配表是一个长度与模式字符串相等的数组&#xff0c;用于记录在每个位置上的最长公共前后缀的长度。 这样图片完全表达了KMP算法的核心思想&#xff0c;出处来自添加链…

ruoyi-nbcio项目增加右上角的消息提醒

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 因为以后流程的通知需要提醒&#xff0c;所以右上角需要增加消息提醒。 1、增加右上角的按钮与信息 <div class"right-menu"><templat…

深入探讨Vue.js:从基础到高级(最佳实践)

文章目录 Vue.js 基础1. Vue.js 是什么&#xff1f;2. Vue 实例3. 双向数据绑定 Vue 组件1. 什么是 Vue 组件&#xff1f;2. 组件之间的通信 Vue 模板语法1. 插值和指令2. 条件和循环3. 事件绑定和表单输入绑定 Vue 路由1. Vue Router安装和配置&#xff1a;导航&#xff1a; 2…

常识判断 --- 党史

目录 中共1~3大 例题 国民党 例题 中共4~5大 例题 中共起义~会议 例题 中共六届六中全会&#xff08;1938年9月&#xff09; 中共七大&#xff08;1945年4月&#xff09; 例题 中共七届二中全会 例题 中共8~10大 中共11~12届全会 例题 中共13~14大 …

拼多多商品详情数据接口

拼多多商品详情接口的具体内容。获取拼多多商品详情&#xff0c;可以参考如下方式&#xff1a; item_get_app-根据ID取商品详情原数据接口包括&#xff1a;标题&#xff0c;价格&#xff0c;促销价&#xff0c;优惠券&#xff0c;库存&#xff0c;销量&#xff0c;详情图片&am…

前端自定义导出PPT

1、背景 前端导出PPT&#xff0c;刚接触这个需求&#xff0c;还是比较懵逼&#xff0c;然后就在网上查找资料&#xff0c;最终确认是可行的&#xff1b;这个需求也是合理的&#xff0c;我们做了一个可视化数据报表&#xff0c;报表导出成PPT&#xff0c;将在线报表转成文档类型…

【编码魔法师系列_构建型1.2 】工厂方法模式(Factory Method)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

设置github的默认分支

设置github的默认分支 更换默认分支默认分支的作用 更换默认分支 之前默认的分支想main, 现在想更换默认的分支 点击main, 可以看到有两个分支: main和gpuVersion, 可以看到这里默认main分支为default 如果想设置gpuVersion作为default,可以点击View all branches, 进入下一个…

测试域: 流量回放-工具篇jvm-sandbox,jvm-sandbox-repeater,gs-rest-service

JVM-Sandbox Jvm-Sandbox-Repeater架构_小小平不平凡的博客-CSDN博客 https://www.cnblogs.com/hong-fithing/p/16222644.html 流量回放框架jvm-sandbox-repeater的实践_做人&#xff0c;最重要的就是开心嘛的博客-CSDN博客 [jvm-sandbox-repeater 学习笔记][入门使用篇] 2…

数据结构 | 树和二叉树

树 树是n&#xff08;n>0&#xff09;个结点的有限集。当n 0时&#xff0c;称为空树。在任意一棵非空树中应满足&#xff1a; 有且仅有一个特定的称为根的结点。当n>1时&#xff0c;其余节点可分为m&#xff08;m>0&#xff09;个互不相交的有限集T1,T2,…,Tm&#…

uni-app 之 去掉顶部导航

uni-app 之 去掉顶部导航 uniapp怎么样去掉顶部导航 uniapp去掉顶部导航的方法&#xff1a; 1、去掉所有导航栏&#xff1b; 2、单一页面去掉顶部导航栏。 image.png uniapp去掉顶部导航的方法&#xff1a; 1、去掉所有导航栏 "globalStyle": {"navigationBar…

Perceptual Compression与Semantic Compression的含义

这是我在读LDMS的学到的 Perceptual Compression 保留人类能够感知的重要信息&#xff0c;例如纹理&#xff0c;局部边缘等 Semantic Compression 保留数据的实际意义&#xff0c;例如图片包含了人物、建筑&#xff0c;人物之间的关系等