服务器数据恢复—ESXi无法识别数据存储和VMFS文件系统如何恢复数据?

服务器数据恢复环境:
一台某品牌服务器,通过FreeNAS来做iSCSI,然后使用两台同品牌服务器做ESXi虚拟化系统。
FreeNAS层为UFS2文件系统,使用整个存储建一个稀疏模式的文件,挂载到ESXi虚拟化系统。ESXi虚拟化系统中有3台比较重要的虚拟机,这几台虚拟机情况如下:
1、windows server操作系统,运行门户网站,采用ASP.net+PHP混合构架,部署的SqlServer和mysql数据库 。
2、FreeBSD操作系统,运行Mysql数据库,供其他多台虚拟机使用。
3、windows server系统,存放新开发的程序代码。

服务器故障&分析:
在一次机房断电之后,ESXi系统连不上存储,管理员发现FreeNAS中的UFS2文件系统出现问题,管理员使用fsck修复文件系统。文件系统修复完成后,虽然ESXi系统可以连上存储,但ESXi系统无法识别原数据存储和VMFS文件系统,管理员对VMFS进行格式化后发现里面没有任何数据。
应用构架层次:FreeNAS(UFS2文件系统–> 一个大的稀疏模式的文件) –> ESXi(VMFS文件系统层) -> 单台虚拟机的虚拟磁盘 (windows-NTFS文件系统/FreeBSD-UFS2文件系统)。

服务器数据恢复过程:
1、镜像FreeNAS层,基于镜像文件分析整个存储,只发现一个文件名为iscsidata的大文件。根据UFS2文件系统的二进制结构定位到iscsidata文件的Inode数据,发现此文件被重建过,inode指针指向的数据量很少。所以通过FreeNAS层无法解决问题,只能尝试通过VMFS层着手解决。
UFS2文件系统结构:
块大小:16KB
Segment大小:2KB
柱面组大小:188176KB
Tips:UFS2一个数据指针占8字节,一个块可存储2048个数据指针,那么一个二级指针块可存储:2048*2048*16KB=64GB数据,一个三级指针块则可存储 64GB*2048=128TB数据。如果能找到iscsidata文件的三级指针块就能解决 FreeNAS层问题。但iscsidata文件重建过,过程和大小都和原始的一样,部分指针块应该已经被覆盖。原iscsidata文件的inode和新建的iscsidata文件的inode在同一个位置,尝试搜索后没有发现其它有用的inode。北亚企安数据恢复工程师只能现场写程序收集有用的指针块。

2、由于iscsidata文件采用稀疏模式,在放宽条件后收集到大量三级指针块和二级指针块。经过分析发现所有收集到的三级指针块都是无效的,没有找到iscsidata文件使用的三级指针块,应该是在新建iscsidata文件时被覆盖(新的iscsidata文件挂载到ESXi后有个VMFS格式化过程,而ESXi使用的是GPT分区,GPT分区会在磁盘最后写入冗余的GPT头和分区表信息数据,会使用到iscsidata文件的三级指针块)。
3、分析收集到的二级指针块,对有大量的二级指针块的指向数据进行DUMP,然后再通过磁盘中的数据定位到二级指针,通过这种方式可以获取到大量DUMP的数据。
4、分析VMFS层:因为格式化过VMFS,加上原UFS2文件系统的指针已丢失,所以VMFS元文件基本上不可用,无重要参考信息,所幸虚拟机都有快照,仍可恢复。通过单台虚拟机(windows(NTFS)和 FreeBSD(UFS2)的文件系统结构),向上定位到VMFS层,再通过VMFS层定位到DUMP出的单个64GB文件。
5、通过多次组合,这3台重要虚拟机的虚拟磁盘都完全恢复。将恢复出的网页数据和数据库数据上传到新搭建的系统中,拉起应用,经过检测数据完全无问题。

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

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

相关文章

react实现时钟翻牌效果

需求:随着数字的变动要求有时钟翻动动效 问题:只在加载时有动效 解决方案:通过判断数字改变(这里通过新旧数值变动来判断,不贴代码啦),每次变动的时候手动把animationIterationCount设置为inf…

【blog项目】layui与jquery冲突导致鼠标悬停事件失效、如何调用layui.use()作用域里的方法

blog项目前台展示——查询数据库中的文章类型并展示时出现的bug 1 正常演示 2 用jquery查询数据库并添加到页面后 3 相关代码 <script src"/static/jquery-2.1.4.js"></script> <script src"/static/layui/layui.js"></script> …

dpdk tap设备不能转发大于1500报文问题分析

背景 在使用dpdk做流转发的时候,期望将部分流量转到tap设备,以供Linux协议栈消费。 做测试的时候发现两个问题, 问题一: 报文超过MTU 1500的报文,在tap设备上抓不到报文。 问题二: ifconfig 修改tap设备的MTU为 2000,在tap设备上依旧抓不到报文,猜测这个地方只是修改了L…

MySQL修改表时添加和删除约束

修改表时添加和删除约束 ①非空约束 alter table students modify column s_name varchar(20) not null; #添加 alter table students modify column s_name varchar(20) ; #删除 ②添加默认约束 alter table students modify column age int default 18; #添加 alter tabl…

分布式与一致性协议之CAP(一)

CAP理论 概述。 在开发分布式系统的时候&#xff0c;会遇到一个非常棘手的问题&#xff0c;那就是如何根据业务特点&#xff0c;为系统设计合适的分区容错一致性模型&#xff0c;以实现集群能力。这个问题棘手在当发生分区错误时&#xff0c;应该如何保障系统稳定运行而不影响…

面向对象设计与分析(41)建造者模式builder

文章目录 1 定义2 示例3 实际应用1 定义 看下builder模式的官方定义: The intent of the Builder design pattern is to separate the construction of a complex object from its representation. By doing so the same construction process can create different represe…

基于STM32和阿里云的智能台灯(STM32+ESP8266+MQTT+阿里云+语音模块)

一、主要完成功能 1、冷光模式和暖光模式两种灯光 主要支持冷光和暖光模式两种&#xff0c;可以通过语音模块或手机app远程切换冷暖光 2、自动模式和手动模式 主要支持手动模式和自动两种模式&#xff08;app或语音助手切换&#xff09; (1)自动模式&#xff1a;根据环境光照…

第七天 dfs剪枝优化

第七天 dfs剪枝&优化 1可行性剪枝 2最优性剪枝 3重复性剪枝 题 1 输入 5 5 6 …S. XX.X. …X… …D.X …X… 输出 YES —————————————— 题解 #include<iostream> #include<cstdio> using namespace std; const int N 10; int n,m,T; char …

架构师系列-Nginx、OpenResty(三)- 负载均衡配置

Nginx负载均衡 负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求&#xff0c;一个最基本的upstream模块是这样的&#xff0c;模块内的server是服务器列表&#xff1a; #动态服务器组 upstream dynamicserver {server 172.16.44.47:9001; #…

绿色便携方式安装apache+mysql+tomcat+php集成环境并提供控制面板

绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境 目录 绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境[TOC](目录) 前言一、XAMPP二、安装和使用1.安装2.使用 三、可能的错误1、检查端口占用2、修改端口 前言 安装集成环境往往配置复杂&#xff0c…

无人机飞行特点

你知道吗&#xff1f;无人机飞行竟然有这么多的神奇特点&#xff01; &#x1f929;想象一下&#xff0c;它们如同天空中的自由精灵&#xff0c;不受束缚地穿梭在云端。 &#x1f681; 首先&#xff0c;无人机的飞行高度和角度都可以随心所欲地调整&#xff0c;无论是俯瞰美景…

自动化立体库安全使用管理制度

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料&#xff0c;请球友到知识星球 【智能仓储物流技术研习社】自行下载 关于自动化立体库安…

四、Flask进阶

Flask-Cache pip install flask-caching安装flask_cache初始化 # ext.py from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_caching import Cachedb SQLAlchemy() migrate Migrate() cache Cache(config{CACHE_TYPE: simple # 缓存…

webpack、rollup、vite、esbuild 前端构建工具到底有什么关系和区别?

一、为什么需要构建工具&#xff0c;前端构建工具具体干了些什么&#xff1f; 前端最开始的开发模式为HTMLJSCSS&#xff0c;写起来痛不欲生&#xff0c;要直面js操作dom、浏览器兼容js / css、代码压缩、开发中要不断手动刷新等问题。直到nodeJS后&#xff0c;出现了angular、…

MybatisPlus(简单CURD,MP的实体类注解,MP条件查询,MP分页查询,MP批量操作,乐观锁,代码生成器)

目录 一、MP入门 1. MP是什么 2. MP使用入门 1 说明 2 准备MP项目环境 1) 添加依赖 2) 创建配置文件 3) 创建引导类 3 MP使用入门 1 创建实体类 2 创建Mapper 3 使用测试 3. 小结 二、MP简单CURD【重点】 1. 说明 2. 示例 3. 小结 三、MP的实体类注解[重点] …

字符串漏洞注入深入学习

字符串型漏洞注入&#xff0c;特别是针对Web应用程序的SQL注入&#xff0c;是一种常见的网络安全威胁。它涉及攻击者在不受控制的情况下&#xff0c;通过构造特定的字符串输入&#xff0c;干扰或改变应用程序中原有的SQL查询语句&#xff0c;从而执行恶意的SQL代码。 要深入学…

常用vim命令

vim 是一种文本编辑器&#xff0c;常用于命令行界面下。它具有强大的功能和灵活的配置选项&#xff0c;适用于编辑各种类型的文本文件&#xff0c;包括代码文件、配置文件等。使用 vim 可以进行文本的编辑、查找、替换、复制、粘贴等操作。 1、编辑文件 - vim filename&#x…

微软Phi-3,3.8亿参数能与Mixtral 8x7B和GPT-3.5相媲美,量化后还可直接在IPhone中运行

Phi-3系列 Phi-3是一系列先进的语言模型&#xff0c;专注于在保持足够紧凑以便在移动设备上部署的同时&#xff0c;实现高性能。Phi-3系列包括不同大小的模型&#xff1a; Phi-3-mini&#xff08;38亿参数&#xff09; - 该模型在3.3万亿个令牌上进行训练&#xff0c;设计得足…

go学习知识点

学习 Go 语言涉及许多不同的概念和知识点。以下是一些关键的学习领域&#xff1a; 基础概念 变量和类型&#xff1a;了解 Go 的基本数据类型&#xff0c;如整型、浮点型、布尔型、字符串等&#xff0c;以及如何声明和使用变量。包管理&#xff1a;学习如何导入和使用其他包&a…

【Stable Diffusion系列】(一):AI绘画本地部署教程

目录 一、总览 二、本地部署 1、安装cuda 2、安装python 3、安装git 4、方法一 1&#xff09;获取安装包 2&#xff09;update 3&#xff09;run 5、方法二 1&#xff09;git clone 2&#xff09;双击webui-user.bat 3&#xff09;更新 6、设置启动参数 7、…