当前位置: 首页 > news >正文

服务器数据恢复—EMC存储RAID5磁盘阵列数据恢复案例

服务器数据恢复环境:
一台EMC某型号存储设备,该存储中有一组由12块(包括2块热备盘)STAT硬盘组建的raid5阵列。

服务器故障:
该存储在运行过程中突然崩溃,raid瘫痪。数据恢复工程师到达现场对故障存储设备进行初检,发现raid中有两块硬盘掉线但只有一块热备盘成功激活,所以导致阵列瘫痪,上层lun无法使用。

服务器数据恢复过程:
1、将故障存储中所有磁盘标记后取出。由硬件工程师检测后没有发现有磁盘存在物理故障,使用坏道检测工具检测也没有发现有磁盘存在坏道。将所有磁盘以只读方式进行扇区级全盘镜像,由于源磁盘的扇区大小是520字节,做完镜像后将520字节转换成512字节。
2、由于故障存储中所有硬盘经过检测没有发现存在物理故障和坏道,基本上可以推断硬盘掉线是磁盘读写性能不稳定造成的。EMC控制器的磁盘检测策略十分严格,读写性能不稳定的磁盘一般会被控制器判定为坏盘并踢出raid。当raid中掉线盘超过该raid级别的允许掉盘数量的极限,raid就会崩溃,基于raid的lun不可用。本案例中只有一个lun分配给sun小机,上层文件系统是ZFS。
3、EMC存储的LUN都是基于RAID。通过分析发现有2块盘完全没有数据,EMC存储的管理界面上显示这2块没有数据的盘都是热备盘,其中一块热备盘替换了一块离线盘。虽然这块热备盘成功激活,RAID中还有一块硬盘离线,所以数据没有同步到这块热备盘中。继续分析其他10块盘,分析数据在硬盘中的分布规律、RAID条带大小以及盘序等重组RAID所需要的信息。


4、由于RAID中有两块盘掉线,需要搞清楚这两块盘的掉线顺序。分析每一块盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是最先掉线的。通过北亚企安自主开发的RAID校验程序对这个条带做校验,最终确定这块硬盘就是最先掉线的。
5、根据上面步骤获取到的信息将RAID重组出来。EMC存储的LUN是基于RAID的。分析LUN在RAID中的分配信息,以及LUN分配的数据块MAP。根据上述信息,用北亚企安自主开发的程序解释LUN的数据MAP并导出LUN的所有数据。
6、用北亚企安自主开发的ZFS文件系统解释程序对生成的LUN做文件系统解释,但是在解释某些文件系统元文件的时候报错。开发工程师对程序做debug调试并分析程序报错原因,文件系统工程师分析ZFS文件系统是否因为版本原因而导致程序不支持。经过长达数小时的分析与调试,发现ZFS文件系统因存储瘫痪导致某些元文件损坏,从而导致文件系统解释报错。
7、北亚企安数据恢复工程师手工修复这些损坏的元文件,直到ZFS文件系统能够正常解析。
8、解析ZFS文件系统,解析所有文件节点及目录结构。用户方工程师对恢复出来的数据进行随机验证,经过仔细验证没有发现问题。

http://www.lryc.cn/news/459519.html

相关文章:

  • 使用 `netcat`(nc)工具进行TCP数据发送和接收
  • Linux虚拟化技术嬗变综述
  • .NET 通过C#设置Excel工作表的页面设置
  • Excel日期导入数据库变为数字怎么办
  • SSL---SSL certificate problem
  • linux tar 打包文件去掉文件所在路径
  • MQ快速入门【详细】个人笔记 讲解通俗易懂
  • react实现实时计时的最简方式
  • 时尚的社会心理机制:求同和树异这对互为矛盾的心理动机,使得人们在社会生活中互相模仿、互相追逐、互相竞争,使得时尚的钟摆永不停息。
  • HarmonyOS NEXT应用开发实战(二、封装比UniApp和小程序更简单好用的网络库)
  • [Hbase]一 HBase基础
  • React.createRef(),React.forwardRef(),forwardRef()结合next.js的link进行路由跳转
  • C++从入门到起飞之——AVL树 全方位剖析!
  • 利用Fail2Ban增强Jupyter Notebook安全性以防范目录遍历攻击
  • 智能贴身监测,健康生活建议,圆道妙医智能手表体验
  • C++——AVL树
  • 极市平台 | 无人机相关开源数据集资源汇总
  • React和Vue区别,以及注意事项
  • 光伏项目难管理的问题如何解决?
  • 图片美化SDK解决方案,赋能H5与小程序极致体验
  • Kron Reduction消去法如何操作,矩阵推导过程
  • 实时开放词汇目标检测(论文复现)
  • 陪诊小程序搭建:打造便利的陪诊环境
  • Qt5.15.2静态编译 MinGW with static OpenSSL
  • Linux Ubuntu dbus CAPI ---- #include<dbus.h>出现“无法打开源文件dbus/xxx.h“的问题
  • React01 开发环境搭建
  • 数据结构之旅(顺序表)
  • 掌握 C# 内存管理与垃圾回收机制
  • 【JavaEE】——初始网络原理
  • Nginx和Lua配合使用