服务器数据恢复—infortrend存储中RAID6数据恢复案例

2024-09-03 19:04

本文主要是介绍服务器数据恢复—infortrend存储中RAID6数据恢复案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器存储数据恢复环境:
一台infortrend存储中有一组由12块硬盘组建的RAID6阵列。RAID6阵列空间划分了一个LUN,映射到WINDOWS SERVER系统上。WINDOWS SERVER系统上划分了一个GPT分区。


    
服务器存储故障:
存储在运行过程中突然无法访问。管理员查看后发现raid6阵列中有3块盘离线。管理员通过非常规手段上线存储并开始rebuild,但通过主机访问时发现分区打不开,存储中所有数据均无法访问。咨询一些专业人士后基本上确认存储中的数据已经破坏。为避免情况进一步恶化,管理员中止rebuild,将存储关机后寻求当地一家数据恢复公司的帮助。经过该公司的全力恢复后,发现还是有大量数据丢失以及大量的文件无法打开。 
RAID6支持2块硬盘同时掉线,但当2块以上的磁盘下线后,RAID6阵列便无法正常工作了。RAID6阵列中离线的3块盘一般不会同时下线,而是每间隔一段时间就有一块盘离线。这种情况下,如果将较早掉线的盘上线,就会与在线的盘进行RAID6算法同步,导致数据混乱,无法正常读取。
本案例中的情况就是如此。所幸是本案例中rebuild时间较短,在这段时间内同步的数据量不是很大。本案例中所涉及存储中数据文件非常多,且作为素材库,文件系统前面部分的空间存放老旧数据的可能性非常大;另外因为文件数量很多,所以较新文件的目录及节点索引应该都位于磁盘后部,所以同步操作可能对存储中整体数据的影响不大,破坏程度有限。

服务器存储数据恢复过程:
1、将故障存储中所有磁盘编号后取出,由硬件工程师进行检测,经过检测没有发现有硬盘存在硬件故障。以只读方式对所有硬盘做扇区级完整镜像。镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析存储中所使用的的RAID6算法。北亚企安数据恢复工程师按照分析出来的RAID6算法对12块硬盘做C(12,2)共66种可能的缺2盘的情况组合,找到正确的缺盘情况组合。
3、搭建虚拟RAID平台,按分析出的缺盘状态、盘序、块大小、校验方向、RAID6算法进行附加。
4、对RAID做GPT分区结构解释,然后进行文件系统解释,确定算法的正确性。如不正确,调整算法,直到找到正确结构。
5、将提取出来的数据迁移到用户准备好的环境中。

Tips:
故障发生后,应在关机状态下插拔硬盘,同时对硬盘原位置进行标注。在硬盘离开存储后,不要再对存储加电。确保所有操作尽可能可回溯。  
 

这篇关于服务器数据恢复—infortrend存储中RAID6数据恢复案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133779

相关文章

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示