服务器数据恢复—EVA存储raid5硬盘离线的数据恢复案例

2024-01-24 14:52

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

服务器数据恢复环境:
某品牌EVA某型号存储,底层是RAID5阵列,划分了若干lun。

服务器故障&分析:
该存储设备中raid5阵列有两块硬盘掉线,存储中的lun丢失。
将故障服务器存储中的所有磁盘编号后取出,硬件工程师检测后发现掉线硬盘不存在物理故障,也没有发现坏道,都可以正常读取数据。
掉线硬盘经过检测没有发现有物理故障,可以初步判断硬盘掉线是因为硬盘读写不稳定,本案例中EVA存储中所采用的raid控制器通常会将读写不稳定的硬盘判断为坏盘并踢出阵列。由于raid5的特性,掉线硬盘超过了2块后就会导致阵列崩溃。
EVA存储中每个LUN都有一份LUN_MAP,EVA存储将LUN_MAP分别存放在不同的磁盘中,通过一个索引来指定其位置。因此在每个磁盘中找这个指向LUN_MAP的索引就可以找到LUN的信息了。

服务器数据恢复过程:
1、将故障存储中所有磁盘以只读模式进行扇区级的全盘镜像,镜像完成后将所有磁盘按照编号还原到原存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析硬盘底层数据。由于LUN的RAID结构是RAID5,只需要将一个LUN的RAID条目通过RAID5的校验算法算出校验值,再和原有的校验值进行比较就可以判断这个条目中是否有掉线盘。将一个LUN的所有LUN_MAP都校验一遍就可以知道这个LUN中有哪些RAID条目中有掉线盘,在RAID条目中都存在的盘一定就是掉线盘。剔除掉掉线盘后就可以根据LUN_MAP恢复所有LUN的数据。
3、北亚企安数据恢复工程师编写扫描程序扫描LUN_MAP,结合人工分析找到正确的LUN_MAP。
4、北亚企安数据恢复工程师编写RAID条目检测程序检测所有LUN中掉线的磁盘,结合人工分析排除掉线磁盘。
5、北亚企安数据恢复工程师编写数据恢复程序,结合LUN_MAP恢复所有LUN数据。人工核对每个LUN,确认是否和用户方描述的一致。
根据用户方工程师的描述,LUN的数据分为2部分:Vmware的虚拟机和HP-UX上的裸设备。裸设备里存放的是Oracle的dbf数据库。由于恢复的是LUN,无法看到里面的文件,因此需要人工核对哪些LUN是Vmware虚拟机,哪些LUN是HP-UX裸设备。核对完成后将不同的LUN挂载到不同的验证环境中验证恢复出来的数据是否完整。
6、验证数据完整性没有问题后,将所有存放vmware虚拟机的LUN中的虚拟机文件都提取出来,然后通过NFS共享的方式挂载到虚拟主机上。
7、通过NFS将所有虚拟机都添加到虚拟主机以后,将所有虚拟机加电开机,都能启动系统。用户方工程师进入到虚拟机内查看数据,经过验证确认虚拟机内的数据没有问题,确认恢复出来的数据完整有效。本次数据恢复工作完成。

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



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

相关文章

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. 临时