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

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

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

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