raid5因两块硬盘掉线导致的数据丢失恢复过程分享

简介:

1. 故障描述

本案例是HP P2000的存储vmware exsi虚拟化平台,由RAID-5由10块lT硬盘组成,其中6号盘是热备盘,由于故障导致RAID-5磁盘阵列的两块盘掉线,表现为两块硬盘亮黄灯。 经用户方维护人员检测,故障硬盘应为物理故障,表现为:序列号无法读取,在SAS扩展卡上硬盘无法识别。

_

2. 数据备份与修复
故障发生后用户方工程师与我公司联系,经过详细咨询,了解到故障比较严重,必须把RAID-5磁盘阵列带到我公司进行检测,检测RAID-5的每块成员盘是物理故障(磁头损坏或者盘片划伤)还是逻辑故障。由于情况紧急,工程师在接到原盘以后,立即着手准备检测。对能识别的好盘用连接到北亚镜像服务器上使用WinHex做扇区级镜像,同时对不能识别的坏盘进行检测。
首先将坏盘连接到外部的SAS扩展卡上,加电后通过硬盘工作声音判断硬盘电机能够起转,但是磁头没有进行寻道操作,于是尝试把硬盘PCB分离下来对HDA组件氧化部分进行清洁操作,将PCB还原后故障依旧。于是和客户沟通使用6号热备盘的好PCB替换到故障盘上进行尝试性修复,再将故障盘PCB上的ROM芯片替换到6号盘的好PCB上面后硬盘工作时起转和磁头寻道声音都正常,但是在寻道结束后,有明显的敲盘声音,于是判断有可能磁头损坏。在和用户沟通后尝试使用6号热备盘中的好磁头对故障盘进行替换操作以读取数据。在无尘室对故障盘进行开盘更换磁头操作后,将故障盘连接到专业硬盘维修工作上进行检测,发现故障盘已经不能识别,数据无法读取。
因为用户有两块故障盘,之前尝试修复的都是其中一块,再次和客户沟通尝试对另一块故障盘进行修复操作。和先前的故障盘一样,这块盘的故障依旧是磁头损坏,因为用户的HP OEM盘价格昂贵,于是尝试在网上购买ST原厂的相同型号硬盘进行磁头更换。这块硬盘的磁头更换完成后,设备能够正常识别硬盘,于是将故障盘所有扇区完整镜像到一块相同容量的备份盘中。

3.重组RAID-5步骤
【判断起始扇区】所有硬盘都镜像好后就可以重组了,用WinHex打开9块盘(热备盘不需要加进去重组),先把镜像文件解析成磁盘。可以看到这9块盘的0扇区都有“55 AA”标志,如图1所示。
1

图1
查找结果如图2所示,0x01C2H处表示该分区的类型,这里显示“05”,代表这是一个扩展分区。因此从0扇区看这是一个不正常的MBR分区结构。
2

图2
按图1方式继续往下找,分别在9号盘和8号盘找到了“55 AA”的标志。9号盘查询结果如图3所示。这是一个正常的MBR分区,其0x01C6处数值代表指向的下一个扇区为GPT的头部。
3

图3
8号盘查询结果如图4所示。其0x01C6处数值代表指向下一个扇区。但是下一个扇区很明显不是GPT的头部。
4

图4
由此可以确定9号盘是第一块盘,8号盘可能是最后一块盘。GPT分区所在扇区起始于172032扇区,因此初步确定LUN的起始扇区是172032扇区。
【判断条带(stripe)大小】条带也称块,它是RAID处理数据的基本单元。不同的RAID其条带大小有所不同。RAID-5的1个条带组中有1个校验区,1个校验区的大小等于1个条带的大小,根据这一点,针对这个RAID-5案例做分析。如果对VMFS的文件系统不熟悉,可以通过比较法确定条带大小。如某一条带组中的校验区跟这一条带组中的非校验区可能相差的很明显,通过WinHex查看并做对比,就可以找到条带大小。本案例判断出一个条带是1024个扇区。
【判断RAID-5成员盘盘序】按照1024扇区分割,使一个记录为一个条带的大小,如图5所示。并且9块盘跳到同一记录283123。
5

图5
当9块盘都定位到同一位置时,通过对比可以判断校验区的走向,继而判断整个RAID-5的走向。之前已经判断出9号盘是第一块盘了,把9号盘放在第一个位置,接着就可以判断走向了,结果如图6所示(drive9是第4块盘)。确定RAID-5为左走向,盘序为9,2,3,4,10,1,7,8,5。
6

图6
前面内容初步确定了LUN的起始扇区是172032扇区。用WinHex跳到172032扇区,观察各硬盘实际情况。如果172032扇区是LUN的起始扇区,那么这个扇区所属条带中的5号盘应该是校验区,但是此条带中却显示8号盘是检验区,根据本案例RAID-5的左走向,5号盘的校验区应该在172032-1024=171008扇区,即上一个条带。跳转到171008扇区,发现校验区为5号盘。因此可以确定LUN的起始扇区为171008扇区。

【重组RAID-5】使用专业恢复工具按照确定的盘序组好,添加进去,如图7所示。选择RAID-5,Stripe size 512KB,左异步。
7

图7

点击Build进行重组。组好后,由于数据从1024*8=8192个扇区开始,若专业恢复工具没有跳转到此扇区的功能,那么刚组好的RAID必须和一个文件再进行一次Build重组操作。RAID的起始扇区(Start sectors)选择8192,这个文件可以任意选择起始扇区和大小大小(Count sectors),如图8和图9所示,图10是组好的RAID-5。
8

图8
9

图9
10

图10
4.移交数据
整个RAID-5就重建好后,由我公司商务联系用户方验收数据,用户方确定数据没问题,签订完验收合同后,完整的RAID-5数据即可移交。移交时根据用户方要求把数据移交到用户方带来的新盘上。恢复完的数据保留在我公司服务器上3天,之后数据自动被系统销毁。

相关文章
|
Web App开发 iOS开发
无法安装此app,因为无法验证其完整性 ,解决方案
无法安装此app,因为无法验证其完整性 ,解决方案
|
9月前
|
机器学习/深度学习 弹性计算 搜索推荐
真正的0代码,0脚本,0门槛,QwQ-32B一键部署!
阿里云最新发布的QwQ-32B模型通过强化学习显著提升了推理能力,在多个核心指标上达到DeepSeek-R1满血版水平,超越了DeepSeek-R1-Distill-Qwen-32B。用户可通过阿里云系统运维管理(OOS)的公共扩展功能,一键部署OpenWebUI+Ollama至ECS,轻松运行QwQ-32B模型。该方案支持本地部署和连接阿里云百炼在线模型,无需编写代码,操作简便,适合新手尝试。具体步骤包括:在阿里云控制台安装OpenWebUI扩展、选择ECS实例并创建、等待几分钟后获取URL链接,即可开始使用。此外,还提供了详细的配置指南和高级玩法介绍,帮助用户更好地利用该模型。
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
1110 1
|
监控 负载均衡 Kubernetes
深入探索微服务架构中的服务治理
深入探索微服务架构中的服务治理
408 0
|
Ubuntu 网络协议 关系型数据库
|
机器学习/深度学习 JavaScript
node.js实现遍历所有文件夹里面的js文件,提取所有的url
node.js实现遍历所有文件夹里面的js文件,提取所有的url
|
Cloud Native JavaScript API
一文读懂云原生 go-zero 微服务框架
一文读懂云原生 go-zero 微服务框架
1059 1
|
Linux Docker 容器
Linux环境下Docker的卸载
本文可以满足完整卸载Docker的需求。文章记录了在Linux环境下Docker的卸载过程,包括Docker软件包、镜像、容器、数据卷等文件的删除。
13379 39
|
C++
Halcon 学习笔记九:MFC+halcon联合
Halcon 学习笔记九:MFC+halcon联合
655 0
|
关系型数据库 MySQL 数据库
记一次mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table问题
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table
2583 0