一.服务器数据恢复故障描述

需要进行数据恢复的服务器共10个磁盘柜,每个磁盘柜满配24块硬盘。其9个存储柜用作数据存储使用,另外1个存储柜用作元数据存储使用。元数据存储里一共24块146G硬盘,其中设置了9组RAID 1阵列,1组4盘位RAID 10阵列,4个热备硬盘。

数据存储中,每6块硬盘设置一组RAID 5阵列,共36组RAID,这36组RAID阵列中,又分为2个存储系统。其中1个存储系统中,一组RAID由于2块硬盘先后故障离线,导致RAID阵列失效,整个存储系统瘫痪,无法使用。

存储及文件系统架构大致如下图一:

注:Meta_LUN(元数据卷)    Data_LUN(用户数据卷)

二.磁盘备份

为避免服务器数据恢复过程中由于误操作对原始磁盘造成二次破坏, 先使用WinHex软件对客户的存储环境进行备份。

备份过程如下图二所示:

对故障RAID中的6块成员盘进行编号标记,将硬盘从存储柜中拔出,接入到准备好的备份平台上,对6块硬盘进行备份。

对其余没有出现故障的RAID阵列,进行存储层面的备份。使用光纤线缆将备份平台和存储设备连接,进入昆腾存储设备管理界面配置备份平台和存储设备可以正常通信,使用WinHex软件对RAID中的LUN进行镜像备份。

在备份过程中发现故障RAID中的1块故障硬盘存在大量的坏道区域,在备份的过程出现故障,无法继续备份。对故障硬盘进行开盘更换固件,并使用PC3000工具进行修复后,硬盘可以继续备份,但坏道仍然存在。图三:

部分镜像文件

三.数据分析

先对故障的RAID阵列进行分析,获取到相关的RAID信息,使用WinHex软件对RAID阵列进行虚拟重组,并将RAID中的LUN恢复成镜像文件。在分析过程中发现,损坏较严重的硬盘为后离线硬盘,由于此硬盘存在大量坏道,可能对恢复结果产生影响。

登陆昆腾存储设备的管理界面,获取到StorNext文件系统中卷相关的一些基本信息,如下图四:

继续对StorNext文件系统中的Meta卷和Data卷进行分析,客户的StorNext文件系统中,包含2个Data卷,完整的Data卷都是由多组RAID中的LUN组成的,对这些LUN进行分析,得到LUN之间组合的算法规律,虚拟重组出完整的Data卷。

图五:

分析Meta卷,对Meta卷中的节点信息和目录项信息,以及Meta卷和Data之间的对应关系进行分析,针对一个Meta卷管理多个Data卷的情况,研究得到Meta卷到Data卷的索引算法。文件节点如下图六:

目录块如下图七:

四.数据恢复

通过分析研究我们已经获取到了恢复工作所需信息,开始编写程序,扫描Meta卷中的节点信息和目录项信息,同时对目录项和节点进行解析,获取完整的文件系统目录结构,解析节点中的指针信息,将这些信息记录在数据库中。

文件信息如下图八:

编写文件提取程序,读取数据库,根据解析出的信息以及两个Data卷之间的聚合算法对数据进行提取。

五.恢复结果

对生成出的数据进行随机抽样检测,数据没有问题。将客户所需文件提取到本地,确认提取完成后,到客户线程进行数据移交。数据移交完成,客户对数据恢复结果表示满意。虽然故障硬盘存在有坏道的情况,但万幸主要数据没有遭到破坏,数据恢复工作圆满完成。

服务器运行时拔了一块硬盘,服务器硬盘掉了两块的解决过程相关推荐

  1. 某公司服务器raid5阵列掉了两块盘数据恢复过程

    第一部分:数据恢复方案 某公司的一台服务器组了一个raid5磁盘阵列有两块磁盘先后掉线,服务器崩溃.故障服务器的操作系统为linux redhat 5.3,应用系统为构架于oracle的一个oa,数据 ...

  2. 服务器拔掉系统盘,服务器运行中拔硬盘

    服务器运行中拔硬盘 内容精选 换一换 创建备份策略后,通过向备份策略中绑定服务器给备份策略关联服务器.已创建至少1个备份策略.至少存在一个状态为"运行中"或"关机&quo ...

  3. php 发送网络命令,通过网络服务器运行时无法发送邮件,但能够从命令行发送相同的PHP脚本...

    我面临一个奇怪的问题:我在项目中有一个名为mail.php的文件.当我从 shell运行命令时: php mail.php 它在几秒钟内发送邮件,但在运行相同的文件时: https://www.dom ...

  4. 视频 服务器运行时失败,Windows Media Player服务器运行失败的解决办法讲解

    当大家遇到Windows Media Player服务器运行失败,怎么解决呢?小编给大家分享一个Windows Media Player服务器运行失败的解决办法讲解,希望可以帮到大家. Windows ...

  5. 解决Vue打包后放到部署到服务器运行时出现Loading chunk * failed 错误

    最近一直在捣鼓的Springboot+Vue 前后端分离项目,Vue 前端项目打包部署到Nginx 服务器访问时,点击导航栏切换一直报错: 原因:路由懒加载的情况下,访问当前应用进行路由跳转时都是实时 ...

  6. Windows 7下,一块硬盘突然掉盘时的windows操作系统日志

    环境:3块台式机硬盘(sata3接口的),接入同一个台式机中,没有做raid,其中一块硬盘(注意:不是一个partition)突然从"计算机管理"-"磁盘管理" ...

  7. “项目运行时出错,无法启动调试。绑定句柄无效”的解决办法

    突然发现VS2005简体中文版不能调试,提示:"项目运行时出错,无法启动调试.绑定句柄无效."  结果重装.NET2.0也无效,又重装VS2005一次也无效,费了很大的周折,终于在 ...

  8. 硬盘分区表错误导致的问题和解决过程

    两个月前装了WIN10预览版(双系统)尝鲜,可能由于卸载方式不正确或者不完全, 导致我的笔记本(WIN8.1 64bit)出现了一个很费解的问题 在断网的情况下则完全没什么, 而一旦联网(插上网线或者 ...

  9. 电脑怎么测试硬盘的读写速度_两块硬盘合二为一,电脑读写翻倍?这样的“好事”你必须得了解...

    近日,技嘉在旗下顶级的B550 AORUS MASTER主板上做了一次PCIe4.0固态阵列测试,由于该款主板支持3个PCIe4.0的M.2固态硬盘,所以这次的测试为3块PCIe4.0固态组建RAID ...

最新文章

  1. Android中Activity之间的数据传递(Intent和Bundle)
  2. zigbee cc2530 灌电流 拉电流 上拉电阻
  3. shell脚本详解(七)——正则表达式、sort、uniq、tr
  4. python基础(part13)--包
  5. [java理论篇]--java的其他常用API
  6. linux系统编程:IO读写过程的原子性操作实验
  7. select + 线程池 回应服务器(windows)
  8. redis python 出错重连_python穿透类 对象代理
  9. 常用cpu位数与变量长度表(不同编译器可能有差异)
  10. 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
  11. PHP+crontab 完美实现定时任务
  12. 什么样的联系人管理软件最有效?这里有管理联系人的3款实用软件
  13. php用户登录论坛系统,PHPWind
  14. 超图软件的下载及授权配置
  15. android_10.0.0_r41自定义驱动编译+Framework层调用_2(自定义驱动)
  16. ORACLE 触发器控制用户登录之权限限制
  17. python从视频中提取音频信号_三行Python代码提取视频中的音频
  18. 评估方法(交叉验证法、自助法、留出法)
  19. Python Flask开源博客系统Blog_mini
  20. 响铃:救市之作三星S6 edge+能否完成使命?

热门文章

  1. 游戏夜读 | 世界两大游戏评论!
  2. kali-linux暴力获取WIFI密码
  3. 苹果计算机怎么返回上一步操作,iphone12怎么关闭程序-iphone12怎么返回上一步
  4. linux 强行创建文件夹,Linux mkdir 创建文件夹命令
  5. linux图形化时间工具,Linux下dialog图形化工具详解
  6. java计算机毕业设计家政服务平台MyBatis+系统+LW文档+源码+调试部署
  7. ambari失去心跳同时无法连接其中一台datanode的错误
  8. python数据分析————数据聚合与分组运算
  9. 北京小学休学规定,休学复学规定
  10. 手机端html展示pdf