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

相关文章

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.创建区域

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem