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

raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍

一、HP-lefthand存储简介
HP-lefhand存储具有一定的市场占有量,基于其软件定义存储的弊端,这款存储设备具有非常高的数据恢复需求。lefhand存储支持搭建RAID5、RAID6、RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等。本文主要为大家介绍了lefhand存储的结构和数据恢复方法,附有p4500存储磁盘阵列数据恢复案例,对raid数据恢复的方法进行了分部介绍。
服务端:
raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍
客户端:
raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍

二、HP-lefthand存储结构介绍
Lefthand存储共分为物理磁盘、逻辑磁盘、逻辑卷三个级别,其中物理磁盘是实际的物磁盘,多个物理磁盘组成一个逻辑的磁盘,也就是RAID磁盘阵列,在RAID之上,将不同RAID组成一个大空间,将大空间中不同的区域组成一个卷。
raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍

卷由不同RAID的N个不连续的片段组成,是用户的可用空间,存储的是文件系统以及用户的数据。RAID是lefthand能识别的最小单元,大多是RAID5或RAID6,RAID的前面会有一部分空间用来存储记录这些片段的MAP。记录所有数据的磁盘就是物理磁盘,并且数据是不连续的,如果上层是RAID5或RAID6。那么物理磁盘中还包括校验数据。

三、磁盘阵列数据恢复案例
某法院的一台P4500的存储系统因raid磁盘故障导致存储不可用,更换磁盘强制上线后依然不可用,磁盘阵列情况如下:
raid5磁盘阵列数据恢复方法_服务器数据恢复步骤_存储结构介绍

  • 首先由硬件工程师先对硬盘进行检测,硬件正常。随后对所有磁盘进行全盘镜像并对镜像文件进行分析。底层的RAID是一个HP双循环RAID5,第一组RAID正常。第二组RAID也是RAID5,所以可以肯定第二组RAID中掉盘数量至少为2块。

  • 第二步、使用穷举加校验的方法分析最早掉线的磁盘后踢出,重组raid(注:穷举法,即假设其中某一块磁盘是早就掉线的,踢掉此盘,重组RAID然后生成全部数据,最后将数据挂载到HP-P4500上,看数据是否正确。如果数据不正确,那么再假设另一块盘是掉线的,以此循环。虽然这种方案可行,但是由于每次重组RAID生成数据的数据时间太长,并且准确性很低。穷举加校验,还是和穷举法一样,假设某个磁盘是掉线的,踢掉磁盘后重组RAID,但不是生成全部的数据,而是只生成前面5G的数据,因为HP-P4500内部存储的数据的索引表位图位于RAID的前几个G之内。我们只需要查看这个索引表的位图的信息是否正确就可以判断此RAID是否正确。如果正确那么生成此RAID的数据即可完成RAID的重组。)

  • 最后将生成的数据和第一组完好的RAID一同挂载到HP-P4500上。然后启动存储,上层卷可用,检查最新文件正常,数据恢复成功。

转载于:https://blog.51cto.com/sun510/2083548

相关文章:

  • 美国之行第六天(r12笔记第6天)
  • .net MVC中使用angularJs刷新页面数据列表
  • MySQL主从同步报错排错结果及修复过程之:Slave_SQL_Running: No
  • Redis3.0 配置文件说明
  • 冲刺一阶段———个人总结06
  • pycharm的一些快捷键(含图)
  • 编译程序加不加 -lpthread 的区别【转】
  • 内联元素空隙问题
  • Tomcat7 session同步集群搭建
  • 翻译--Thinking in React
  • Uuid, BOSObjectType, BosUUid 区别
  • NSTimer学习笔记
  • input 的multiple 上传多个文件
  • 安防IP Camera固件分析
  • java汇总
  • 【Leetcode】104. 二叉树的最大深度
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • git 常用命令
  • github从入门到放弃(1)
  • idea + plantuml 画流程图
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Laravel Mix运行时关于es2015报错解决方案
  • Mac转Windows的拯救指南
  • MySQL的数据类型
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 记录一下第一次使用npm
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # 计算机视觉入门
  • #define,static,const,三种常量的区别
  • $.ajax()
  • (2)nginx 安装、启停
  • (4.10~4.16)
  • (arch)linux 转换文件编码格式
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (SpringBoot)第七章:SpringBoot日志文件
  • (十一)手动添加用户和文件的特殊权限
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)Unity3DUnity3D在android下调试
  • (转)人的集合论——移山之道
  • (转)视频码率,帧率和分辨率的联系与区别
  • *** 2003
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NetCore 如何动态路由
  • /deep/和 >>>以及 ::v-deep 三者的区别