服务器数据恢复—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

相关文章

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域