服务器数据恢复-zfs下raidz多块磁盘离线导致服务器崩溃的数据恢复案例

服务器数据恢复环境:
一台服务器共配备32块硬盘,组建了4组RAIDZ,Windows操作系统+zfs文件系统。

服务器故障:
服务器在运行过程中突然崩溃,经过初步检测检测没有发现服务器存在物理故障,重启服务器后故障依旧,需要恢复服务器内的大量数据。
经过北亚企安数据恢复工程师的初步检测,发现故障服务器中4组raidz里有两组raidz中的热备盘启动。其中第一组raidz启用了一块热备盘,之后又有一块硬盘掉线;第二组raidz第一块磁盘离线后又有2块硬盘掉线,总共启用了三块热备盘。
这两组raidz中硬盘离线后均启用了热备盘替换坏盘,热备盘上线后这2组raidz中又出现其他硬盘离线的情况。为了得到正确数据,zpool在每次读取数据时都会进行校验。第二组raidz热备盘上线后又有硬盘离线,服务器彻底崩溃。

服务器数据恢复过程:
1、将故障服务器中所有磁盘编号后取出,以只读方式将所有磁盘做全盘镜像,镜像完成后将所有磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、ZFS管理的存储池与常规RAID不同。常规RAID在存储数据时会按照特定的规则组建存储池,并不考虑文件在子设备上的位置;而ZFS在存储数据时会为每次写入的数据分配适当大小的空间,通过计算获取指向子设备的数据指针。ZFS的这种特性让RAIDZ在缺盘时无法直接进行校验得到数据,必须将整个ZPOOL作为一个整体进行解析。
3、手工截取事务块数据,北亚企安数据恢复工程师编写程序获取最大事务号入口。
获取文件系统入口:

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

5、获取到文件系统入口点在各磁盘分布情况后,数据恢复工程师手工截取&分析文件系统内部结构。入口分布所在的磁盘组无缺失盘,可直接提取信息。根据ZFS文件系统的数据存储结构顺利找到映射的LUN名称,进而找到其节点。
6、由于在此ZFS版本与开源版本有较大差别,无法使用原先开发的解析程序进行解析,所以数据恢复工程师只能重新编写数据提取程序。

7、由于磁盘组内缺盘个数较多,每个IO流都需要通过校验得到,提取进度极为缓慢。与用户方沟通后得知此ZVOL卷映射到XenServer作为存储设备,用户需的文件在其中一个大小约为2T的vhd内。提取ZVOL卷头部信息,按照XenStore卷存储结构进行分析,发现2T vhd在整个卷的尾部,计算得到其起始位置,从起始位置开始提取数据。
8、Vhd提取完毕后,对其内部的压缩包、图片、视频等文件进行验证,均可正常打开。
9、用户发经过验证后,确定恢复出来的文件数量与系统自动记录的文件数量差不多,极小部分丢失的文件可能是由于这些文件是新生成的还未刷新到磁盘。用户验证文件的可用性,文件全部可正常打开,本次数据恢复工作完成。
 

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

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

相关文章

读书笔记|《数据压缩入门》—— 柯尔特·麦克安利斯 亚历克斯·海奇

前言:在接触文本隐写研究领域时了解到这本书。本书可算作《数据压缩》的入门书籍之一,这本书对熵编码、变长编码、统计编码、自适应统计编码、字典编码、上下文编码等常用编码方式的定义及来源进行介绍,对不同场景下不同格式的压缩数据有针对…

数字时代古文的传承———云南文化瑰宝“爨文化“(我为家乡发声)

文章目录 前言⭐ "爨"意味着什么,究竟何为"爨文化"?⭐ 爨文化鲜明的特点1.经济生活2.政治生活3.文化艺术 ⭐ 数字时代古文的传承与传播1.藏品数字化2.建立数据库3.传播大众化 前言 爨文化是继古滇文化之后崛起于珠江正源南盘江流域…

已解决 Bug——SyntaxError: Unexpected token o in JSON at position 1问题

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

Linux进程控制

文章目录 前言一、进程创建1、fork函数2、写时拷贝3、子进程从哪里开始执行父进程代码 二、进程终止1、进程终止时,操作系统做了什么2、进程终止的常见方式2.1 main函数退出码 3、在代码中终止进程3.1 使用return语句终止进程3.2 使用exit函数终止进程3.3 使用_exit…

Selenium上传文件有多少种方式?不信你有我全

Selenium 封装了现成的文件上传操作。但是随着现代前端框架的发展,文件上传的方式越来越多样。而有一些文件上传的控件,要做自动化控制会更复杂一些,这篇文章主要讨论在复杂情况下,如何通过自动化完成文件上传 1.input 元素上传文…

大数据-玩转数据-双流JOIN

一、双流JOIN 在Flink中, 支持两种方式的流的Join: Window Join和Interval Join 二、Window Join 窗口join会join具有相同的key并且处于同一个窗口中的两个流的元素. 注意: 1.所有的窗口join都是 inner join, 意味着a流中的元素如果在b流中没有对应的, 则a流中这个元素就不会…

spark SQL 任务参数调优1

1.背景 要了解spark参数调优,首先需要清楚一部分背景资料Spark SQL的执行原理,方便理解各种参数对任务的具体影响。 一条SQL语句生成执行引擎可识别的程序,解析(Parser)、优化(Optimizer)、执行…

106.从中序与后序遍历序列构造二叉树

力扣题目链接(opens new window) 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder [9,3,15,20,7]后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树: class Solution { public:Tr…

大语言模型之十四-PEFT的LoRA

在《大语言模型之七- Llama-2单GPU微调SFT》和《大语言模型之十三 LLama2中文推理》中我们都提到了LoRA(低秩分解)方法,之所以用低秩分解进行参数的优化的原因是为了减少计算资源。 我们以《大语言模型之四-LlaMA-2从模型到应用》一文中的图…

AJAX--Express速成

一、基本概念 1、AJAX(Asynchronous JavaScript And XML),即为异步的JavaScript 和 XML。 2、异步的JavaScript 它可以异步地向服务器发送请求,在等待响应的过程中,不会阻塞当前页面。浏览器可以做自己的事情。直到成功获取响应后&#xf…

【Spring Cloud】深入探索统一网关 Gateway 的搭建,断言工厂,过滤器工厂,全局过滤器以及跨域问题

文章目录 前言为什么需要网关以及网关的作用网关的技术实现 一、Gateway 网关的搭建1.1 创建 Gateway 模块1.2 引入依赖1.3 配置网关1.4 验证网关是否搭建成功1.5 微服务结构分析 二、Gateway 断言工厂2.1 Spring 提供的断言工厂2.2 示例:设置断言工厂 三、Gateway …

RabbitMQ安装与简单使用

安装 下载资源 可以访问官网查看下载信息rabbitmq官网 选择合适的版本,注意:rabbitmq需要下载一个Erlang才能使用 我自己是在一下两个连接中下载的 rabbitmq 3.8.8 erlang 21.3.8.15 需要下载其他版本的同学注意erlang版本是否匹配,可以访…