服务器数据恢复—LeftHand存储中raid5阵列多块磁盘离线的数据恢复案例

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

LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等。下面简单聊一下LeftHand存储的结构和一个LeftHand p4500存储中磁盘阵列数据恢复案例。
服务端:

客户端:

LeftHand存储结构:
Lefthand存储有物理磁盘、逻辑磁盘、逻辑卷三个级别,多个物理磁盘组成一个逻辑磁盘,也就是RAID磁盘阵列。在RAID之上,将不同RAID组成一个大空间,将大空间中不同的区域组成一个卷。

Lefthand存储中的卷是由不同RAID中的多个不连续的片段组成,存放用户的数据,记录这些片段的MAP存放在RAID前面的一部分空间。RAID是Lefthand存储能识别的最小单元,大多数情况下LeftHand存储采用的是RAID5阵列或RAID6阵列。Lefthand存储中记录的数据是不连续的。如果是采用的是RAID5阵列或RAID6阵列,那么物理磁盘中还包括校验数据。

LeftHand P4500存储数据恢复案例
一台LeftHand P4500存储因raid故障导致存储不可用,为raid更换磁盘强制上线后,存储仍然不可用。
该存储中的磁盘阵列:

1、将故障存储中所有磁盘编号后取出,由硬件工程师对所有硬盘进行检测,没有发现有硬盘存在硬件故障。将所有磁盘以只读方式进行扇区级全盘镜像,镜像完成后将所有磁盘按照编号还原到故障存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有硬盘底层数据。经过分析发现RAID是一个双循环RAID5阵列,第一组RAID正常,第二组RAID中多块磁盘掉线。
3、北亚企安数据恢复工程师使用穷举+校验的方法分析出最早掉线的磁盘并踢出,然后根据分析底层数据获取到的raid结构信息重组raid。
*穷举法:假设其中某一块磁盘是最早掉线的,踢掉此盘,重组RAID然后生成全部数据。将数据挂载到P4500上,看数据是否正确。如果数据不正确,再假设另一块盘是掉线的,以此循环。虽然这种方案可行,由于每次重组RAID生成数据的数据时间太长,并且准确性较低。
*穷举+校验:和穷举法一样,假设某个磁盘是最早掉线的,踢掉磁盘后重组RAID,但不是生成全部的数据,而是只生成前面几个G的数据。因为P4500存放的数据的索引表位图位于RAID的前几个G的数据中,只需要查看这个索引表位图的信息是否正确就可以判断此RAID是否正确。如果正确则生成此RAID的数据即可。
4、将生成的数据和第一组完好的RAID一同挂载到P4500上,启动存储,上层卷可用,检查最新文件正常。
5、交由用户方检测,经过用户方仔细检测,确认恢复出来的数据完整可用,认可数据恢复结果。

这篇关于服务器数据恢复—LeftHand存储中raid5阵列多块磁盘离线的数据恢复案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时