存储linux RAID6被重建成RAID5的数据恢复解决方案
数据恢复故障描述:
原存储为12块2T硬盘组成的Linux RAID6,文件系统均为EXT3,此存储上划有3个LUN,每个均为6TB大小,某天在RAID失效后,维护人员为了抢救数据,对此失效的存储重进行分配RAID,并进行了初始化。
初始化进行很长时间后,维护人员察觉到情况有异,便强制停止初始化,但初始化已达到 50%以上。数据部分已被不可逆的破坏。
数据恢复故障分析:
故障的起因仅仅是RAID失效,维护人员随后的抢救数据过程中用11块硬盘进行重分配RAID5,并进行长时间的初始化,这对原始数据是不可逆的损坏,后经证明,仅第三个LUN可用普通RAID6方法恢复出数据,但第三个LUN并没有客户想要的要的重要数据,重要的数据主要集中在第一个LUN。
由于此案例的故障极其复杂,接到客户送修时已经在国内数据恢复公司之间转手多次,仍未解决。
数据恢复过程:
恢复过程分成4步:
1.分析原始12块磁盘RAID6的RAID和磁盘的组织结构。
2.分析重分配RAID5时RAID和磁盘的组织结构。
3.判断可恢复性,以及怎么实现恢复程序的算法。
4. 恢复及修复。
快速分析出原始RAID6的结构,但因为底层RAID6和RAID5大量的信息重合导致分析重分配RAID5的结构时比较困难,整整花费了 1天时间。
第一步和第二步已完成,经分析,被初始化破坏的数据可用其它方法进行还原,制定出恢复算法,花费一天写程序及进行程序算法的校正,程序把12块磁盘中原始数据的第一和第二个LUN分别镜像到搭好的两个7TB 的存储上。
经验证第二个LUN数据完全正常,但最重要的第一个LUN前有大约有10MB数据的破坏,这前 10MB数据很要命,EXT3的根目录和第一个块组的I节点全在这前10MB里面,然后使用数据恢复常用的软件UFS Explorer 和 R-Studio 的恢复效果都相当不理想 ,可能是存储较大的原因。
在这种情况下只得自行修复损坏的EXT3文件系统,自行写一个程序进行EXT3孤目录查找,找到了根目录下有3个了目录,重建根目录和I节点,用 文件系统解析程序打开已完全正常,但为了保证原始数据的一些权限和属性,在LINUX简单修复,LINUX已能正常挂载,然后在LINUX把文件用 cp 命令进行拷贝格式化好的EXT3 的单块磁盘的分区上。这样客户使用数据时,不再需要别的任何设置,直接 cp 后,文件目录结构和属性都和原来一模一样。
图一:

图二:

图三:

数据恢复结论:
用时3天,数据100%恢复成功。
存储linux RAID6被重建成RAID5的数据恢复解决方案的更多相关文章
- linux 下文件重命名/移动/复制命令(转)
linux 下文件重命名/移动/复制命令(转) linux下重命名文件:使用mv命令就可以了, 例:要把名为:abc 重命名为:123 可以这样操作: 重命名:MV命令 1.进入你的文件目录,运行 ...
- Linux中mv重命名作用及打包war压缩文件及分配权限
1.Linux中的重命名文件使用mv命令 touch a.txt 新建一个文件 mv a.txt b.txt 重命名文件为b.txt mkdir abc 新建一个目录 mv abc abd 重命名文件 ...
- Linux启动vi编辑器时提示E325: ATTENTION解决方案
Linux启动vi编辑器时提示E325: ATTENTION解决方案 Vi编辑器是Linux的文本编辑器,在Linux系统的运用非常广泛,不少朋友在打开Vi编辑器的时候提示E325: ATTENTIO ...
- Linux下文件重命名、创建、删除、修改及保存文件
一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...
- 可重入锁 & 自旋锁 & Java里的AtomicReference和CAS操作 & Linux mutex不可重入
之前还是写过蛮多的关于锁的文章的: http://www.cnblogs.com/charlesblc/p/5994162.html <[转载]Java中的锁机制 synchronized &a ...
- 【转】Linux 移动或重命名文件/目录-mv 的10个实用例子
熟悉了 复制命令,下一个相关的命令就是 mv 命令.当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选. 初识 mv 命令 mv 命令是一个与cp类似的命令,但 ...
- 【Linux】数据流重导向(前篇)
数据流重导向 (redirect) 由字面上的意思来看,好像就是将『数据给他传导到其他地方去』的样子? 没错-数据流重导向就是将某个命令运行后应该要出现在屏幕上的数据, 给他传输到其他的地方,例如文件 ...
- Linux 移动或重命名文件/目录-mv 的10个实用例子
本文导航 -初识 mv 命令03% -1.移动文件08% -2.移动多个文件15% -3.移动目录23% -4.重命名文件或目录27% -5. 重命名目录35% -6. 打印移动信息39% -7. 使 ...
- 【linux基础】重命名文件和文件夹
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式 ...
随机推荐
- vue生命周期的介绍
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 一步一步学Python(2) 连接多台主机执行脚本
最近在客户现场,每日都需要巡检大量主机系统的备库信息.如果一台台执行,时间浪费的就太冤枉了. 参考同事之前写的一个python脚本,配合各主机上写好的shell检查脚本,实现一次操作得到所有巡检结果. ...
- git的安装和环境配置过程(学习笔记)
1.安装git 官网下载:https://github.com(目前官网好像找不到了,但是妙味的视频里面是在官网下载的)https://git-for-windows.github.io/ (廖雪峰老 ...
- CSS中padding和margin以及用法
CSS中padding与margin 1.padding:内边距,表示控件内容相对于边缘的距离. 2.margin:外边距,表示控件边缘相对于父空间的边缘. 参考:http://www.studyof ...
- 前端总结·基础篇·JS(一)五大数据类型之字符串(String)
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(二)补充 前端总结·基础篇·JS(一)五大数据类型之字符串(String) 目录 这是& ...
- 改变 Panel 跟 groupbox边框样式
更改panel和groupbox的边框颜色因为在控件的属性中没有设置边框颜色的属性只有一个设置边框样式,遂在网络中搜寻出一下方法: panel的边框颜色在paint中重新对颜色进行定义 private ...
- ceph-deploy install时,远端节点在执行apt-get update命令时失败
环境 OS:Ubuntu 16.04 背景 使用ceph-deploy部署Ceph集群,调用ceph-deploy install命令在远端节点安装ceph环境,执行apt-get update命令时 ...
- gulp折腾日记——gulp-livereload
大家好,虽然在博客园注册了很长一段时间,但我还没在博客园写过博客,这是在博客园的第一篇博客,希望能养成每周写博客的好习惯 O(∩∩)O~~) 今天要聊得是gulp的一个实时刷新的插件gulp-live ...
- MacOS无法登录App Store修复
MacOS无法登录App Store修复 2017-03-10 21:13:39 by:SemiconductorKING 先上图: 惨红色的提示信息,把你拒之App Store门外,但是对之放弃. ...
- 如何理解jQuery中的ajaxSubmit方法
版权声明:本文为博主原创文章,转载请标注:www.cnblogs.com/gdsblog 刚刚学习中,使用到了ajaxSubmit,犹豫以前没有接触㢧这个,所以刚开始是一脸懵逼状态,最后通过查找资料的 ...