【服务器数据恢复】raidz多块硬盘离线的数据恢复案例

news2024/9/27 21:28:54

服务器数据恢复环境:
一台采用zfs文件系统的服务器,配备32块硬盘。

 

服务器故障:
服务器在运行过程中崩溃,经过初步检测没有发现服务器有物理故障,重启服务器后故障依旧,用户联系我们中心要求恢复服务器数据。

服务器数据恢复过程:
1、服务器数据恢复工程师对故障服务器中所有硬盘进行了扇区级镜像备份,后续的数据恢复操作都在镜像文件上进行,避免了可能对原始数据造成的二次破坏。
2、通过对镜像文件的分析,服务器数据恢复工程师获取关于故障服务器一些信息:服务器操作系统采用的zfs文件系统,总共组建了4组raidz。4组raidz中的2组raidz的热备盘已经启用,其中第一组启用了1块热备盘,第二组启用了3块热备盘。第一组启动了一块热备盘后又有一块正常硬盘掉线,第二组中有2块硬盘掉线。
两组raidz均在有硬盘离线的情况下启用了热备盘进行了坏盘的替换,热备盘上线后第这两组raidz又有其他的硬盘离线。zpool在每次读取数据时候都需要进行校验获取到正确数据,紧接着第二组raidz又有硬盘离线,服务器因此崩溃。
3、重组ZPOOL,追踪数据入口。zfs文件系统管理的存储池与常规存储不同,所有磁盘都由ZFS进行管理。常规RAID在存储数据时,只按照特定的规则组建池,不关心文件在子设备上的位置。而ZFS在数据存储时会为每次写入的数据分配适当大小的空间,并计算得到指向子设备的数据指针。ZFS这种特性使得RAIDZ缺盘时无法直接通过校验获取到数据,必须将整个ZPOOL作为一个整体进行解析。

4、手工截取事务块数据,北亚数据恢复工程师编写程序获取最大事务号入口:


获取文件系统入口

 

5、获取到文件系统入口后,北亚数据恢复工程师编写数据指针解析程序解析地址:


解析数据指针

 

6、获取到文件系统入口点在各磁盘的分布情况后,北亚数据恢复工程师手工截取并分析文件系统内部结构,发现入口分布所在的磁盘组无缺失盘,可直接提取信息。根据ZFS文件系统的数据存储结构顺利找到映射的LUN名称,最终找到其节点。

7、经过分析发现在此故障服务器采用的ZFS文件系统版本与开源版本有较大差别,北亚数据恢复工程师重新编写了数据提取程序。由于磁盘组内缺盘数目比较多,每个IO流都需要通过校验得到,提取进度极为缓慢。

 

8、与用户沟通得知ZVOL卷映射到XenServer作为存储设备,用户所需的文件在其中一个大小约为2T的vhd内。提取ZVOL卷头部信息,按照XenStore卷存储结构进行分析后发现这个2T的vhd在整个卷的尾部,通过计算找到这个2T的vhd的起始位置,然后从此位置开始提取数据。

9、Vhd提取完毕后对其内部的压缩包、图片、视频等文件进行验证,均可正常打开。让用户亲自验证数据,结果发现恢复出来的文件数量与系统自动记录的文件数量几乎相同,丢失的极小数量的文件可能是因为是最新生成还未刷新到磁盘。文件全部可正常打开,本次数据恢复完成。

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

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

相关文章

SpringBoot: Controller层的优雅实现

目录1. 实现目标2. 统一状态码3. 统一响应体4. 统一异常5. 统一入参校验6. 统一返回结果7. 统一异常处理8. 验证1. 实现目标 优雅校验接口入参响应体格式统一处理异常统一处理 2. 统一状态码 创建状态码接口,所有状态码必须实现这个接口,统一标准 pa…

Eolink 征文活动- -专为开发者设计的一款国产免费 API 协作平台

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! ▌背景 后端开发的程序员都需要有一个用得顺手的接口测试工具;以前,大家都喜欢用Google开发的一款接口测试工具postman来进行测试,…

Java面向对象三大基本特征之多态

多态性是面向对象编程的又一个重要特征,那么多态是什么呢? 一、多态的概念 1.概念:多态是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各…

Linux 文件操作(一) —— 遍历指定目录下的所有文件

目录 一、访问目录相关函数 1、打开/访问目录 (opendir / fdopendir) 2、读取目录内容 (readdir) 3、关闭目录 (closedir) 二、遍历指定目录下的所有文件 一、访问目录相关函数 1、打开/访问目录 (opendir / fdopendir) opendir / fdopendir 函数的作用是访问指定路径的…

工程基建--前端基建

序: 工程基建 : 编码规范、api规范、前后端协作、环境部署、微服务、微前端、性能、安全防御、统计监控、可视化 等等的建设; 后端基建: 后端规范文档、后端模板、安全、日志、微服务、RESTful API、中间件、数据库、分布式、权…

新手怎么做微信商城小程序_微信商城小程序模版哪里找

微信小程序已经在我们的生活中随处可见,甚至是抖音头条等其它的平台也开始做起了小程序,在这种情况下,微信小程序势必会成为未来商城的主战场之一。闻风而来想做小程序的人不少,而其中新手零基础也能做的小程序商城模板类工具&…

C++入门教程2||C++ 数据类型

C 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。 您可能需要存储各种数据类型(比如字符型、宽字符型、整型…

【Leetcode】15. 三数之和

一、题目 难度不小 注意是不能重复 Python提交格式,返回一个list 二、暴力解法 排序 三重循环 有没有像我这样的傻子,三重循环,还没去重 后来发现要去重,必须要先排序,然后判断一下当前的数是否跟前面那个数相同&am…

SpringBoot项目如何优雅的实现操作日志记录

前言 大家好,我是希留。 在实际开发当中,对于某些关键业务,我们通常需要记录该操作的内容,一个操作调一次记录方法,每次还得去收集参数等等,会造成大量代码重复。 我们希望代码中只有业务相关的操作&…

html5期末大作业 基于HTML+CSS制作dr钻戒官网5个页面 企业网站制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Java中的多重继承问题

继承是面向对象编程 (OOP) 语言(如Java)的主要功能之一。它是一种以增强软件设计中类重用能力的方式组织类的基本技术。多重继承是众多继承类型之一,是继承机制的重要原则。但是,它因在类之间建立模棱两可的…

使用HTML实现一个静态页面(含源码)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

什么密码,永远无法被黑客攻破?

在开始本文前,先给大家出个解谜题,密码是一句英文,开动你的脑筋吧,我们在本文结尾会揭晓答案: 密文:Cigumpz yin hvq se 提示:和身份有关的一切 说起破译密码,就不得不提一个人&a…

Vue3中vite.config.js文件相关配置和mock数据配置

文章目录1. vite.config.js文件相关配置2. 路径别名3. mock数据配置1. vite.config.js文件相关配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import vueJsx from vitejs/plugin-vue-jsx import path from path// https://vitejs.dev/config/ ex…

简单的股票行情演示(二) - AKShare

一、概述二、环境搭建三、使用总结 1、API文档2、数据字典3、效果截图4、后台服务四、相关文章原文链接:简单的股票行情演示(二) - akshare 一、概述 上一篇文章简单的股票行情演示(一) - 实时标的数据中讲述了从新浪…

web前端期末大作业 HTML+CSS+JavaScript仿安踏

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

连续仨月霸占牛客榜首,京东T8呕心巨作:700页JVM虚拟机实战手册

什么是Java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息&#xff0c…

Linux下 生成coredump文件

一. coredump文件路径 网上很多博文说到 coredump 文件默认会在默认的目录下生成。 按照网上很多的说法,再运行程序就会生成core文件,一般路径和可执行程序一个路径。 但是,我尝试在 ubuntu20.04系统下,怎么也找不到去哪里了&a…

设计模式之美——KISS、YAGNI原则

KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等。 我们知道,代码的可读性和可维…

ASIFT算法过程实现 --- 配置避坑指南

常规的SIFT算法进行图像匹配的时候,只能进行两个摄像机夹角比较小的(最大是15),拍摄的图像进行相机的图像匹配,但是针对于相机之间的夹脚比较大的时候,上述的算法匹配就是会出现问题.为了解决上面的这个问题,使用了一种改进的算法匹配方式ASIFT算法进行匹配.具体这种算法的优点…