EMC CX4-480数据恢复案例

2024-08-22 19:32
文章标签 案例 数据恢复 emc 480 cx4

本文主要是介绍EMC CX4-480数据恢复案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

E​M​C​ ​C​X​4​-​4​8​0数据恢复案例

 EMC做为存储界的领军品牌,其存储产品可谓是人尽皆知啊!并且EMC自己的存储系统以及它自己的硬件在存储领域中都是领先的。但这还是不能百分之百保证用户数据的绝对安全,因为用户的误操作以及硬件的老化都会导致用户重要的数据丢失。而发生这些故障之后只能找专业的数据恢复公司做数据挽救工作。作者最近就处理过一起EMC CX4-480因磁盘故障导致存储不可用的案例,见下文。

         一位上海的客户描述说他们有一台EMC CX4的存储服务器,因为硬盘出现故障,导致整个存储阵列瘫痪。整个LUN是由7块1TB的硬盘组成的RAID 5。由于客户是在上海,并且不方便将服务器邮寄过来,只好电话指导客户将存储服务器正常关机,并取出硬盘做好标记。然后将所有硬盘打包好,邮件到北京进行数据恢复。在接到客户邮寄过来的包裹后发现,客户寄过来的是10块1T的硬盘。当时很惊讶!不是说是7块盘么?怎么多了3块。在打电话仔细问过客户后得知,其中有3块是以前存储中掉线的硬盘。好吧!估计是以前存储中有硬盘掉线了,但客户只是添加了一块的新的硬盘做rebuild,并没有将掉线的硬盘拔掉,所以就多出了3块。因客户说是存储服务器中有些硬盘有故障才导致存储服务器不可用的,所以初步判断是RAID中有硬盘掉线了。将所有硬盘交给硬件工程师检测硬盘是否有硬件故障。在检测完成后发现并没有物理故障,那么可能就是硬盘上有逻辑坏道或其他原因导致RAID不可用了 。接着对所有硬盘做全盘镜像,以保证客户现有数据的安全。对所有盘做镜像可是真一个很漫长的时间啊!

做完镜像后开始分析RAID的结构,可是当我用winhex打开镜像盘的时候,我惊呆了!因为EMC的硬盘每512字节多加了一个8字节的校验,也就是变成了每扇区520字节了。这样虽然可以分析RAID的结构,但是重组RAID就现的费劲了!为了提高工作效率,我决定还是写个小程序将8字节的校验去掉吧!这样后期的工作也方便了许多。就这样码代码中......

         经过漫长的写码加调试,终于OK了。那么开始一个磁盘一个磁盘的转换吧!哦买噶....这又是一个很耗时的工程。慢慢等吧!

         等所有磁盘都转换完成后,就开始分析RAID的结构了。由于多了3块以前的旧盘,需要先找出这三块旧盘。这个比较好办,可以比较一下每块磁盘,其中会有两块磁盘前面的一部分相同,而这两块当中会有一个是旧的,旧的数据量应该没有新的多,就可以排除旧的磁盘了。这样的磁盘会有3对,也就可以排除所有旧的磁盘了。接下来看RAID结构,由于客户用的NTFS文件系统,用MFT很容易就可以找到RAID的结构了。知道RAID结构后发现这不是一个普通的RAID 5,而是一个双循环。用winhex还没法重组RAID。最后找了半天发现,UFS可以重组RAID。那么就先用它重组RAID看看是什么情况吧!重组RAID后发现数据不是最新的。我想可能是RAID 5先掉线一块硬盘,而管理员没有及时发现,没有及时添加新的硬盘做rebuild。导致运行一段时间后又有一块硬盘掉线了,才造成整个RAID不可用。所以还需要找出一块旧的磁盘,才能生成最新的数据。那就找呗!但是怎么找呢?只能尝试依次踢掉一块硬盘,然后重组RAID。看最新的数据是否可用。直到找到最新的数据可用为止,接着就可以导出数据,验证数据了。

         整个恢复过程,包括做镜像,扇区转换和最后的拷贝数据,一共耗时5天。数据恢复率达百分之九十九以上。虽然整个过程比较漫长,但是最终的结果用户很高兴,因为这给他们带来了不必要的损失。

 

作者:邓奇 (北亚服务器数据恢复工程师)

邮箱:dq@frombyte.com

联系方式:010-4006505808-801

 

这篇关于EMC CX4-480数据恢复案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

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

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

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

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

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

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插