HP-lefthand底层结构具体解释及存储灾难数据恢复

一、HP-lefthand的特点

HP-lefhand是一款很不错的SAN存储,使用iscsi协议为client分配空间。

它支持RAID5、RAID6以及RAID10。

而且还支持卷快照,卷动态扩容等。

常见的型号有:P4500,P4300,P4000等,基于市场占有量和软件定义存储的弊端,有一定的数据恢复市场需求。

HP-lefhand的存储系统是一款嵌入式LINUX系统,须要安装client软件才干配置lefthand。

服务端:

客服端:

二、HP-lefthand的存储结构

Lefthand存储一共分为三个级别。这三个级别共同构成了整个存储,这三个几别分别例如以下:

物理磁盘:实际的物理磁盘。

逻辑磁盘:将多个物理磁盘组成一个逻辑的磁盘。也就是RAID。

逻辑卷:在RAID之上,将不同RAID组成一个大空间,将大空间中不同的区域组成一个卷。

拓扑图例如以下 :

从整个拓扑图中能够看出,首先须要将物理磁盘组成逻辑磁盘RAID。然后将几个逻辑磁盘组成一个大的存储空间,最后将大的存储空间划分成若干个小块。用户使用的卷是由若干个不连续的小块组成的。

也就是卷中存储的用户数据终于会被分成若干个片段存放在不同的逻辑磁盘中,而逻辑磁盘是由多个物理磁盘组成的。终于数据会被分成N个片段放在不通的物理磁盘中。

卷:用户的可用空间,上面说过卷由不同RAID的N个不连续的片段组成,卷中存储的是文件系统以及用户的数据。

RAID:由多个物理磁盘组成,大多是RAID5或RAID6。

RAID是lefthand能识别的最小单元。也就是要想创建卷,必须先创建RAID。

由于卷是由不同RAID的N个不连续的片段组成。所以RAID中须要记录它存储的片段是哪一个卷的,而且是卷的第几个片段。因此在RAID的前面会有一部分空间用来存储记录这些片段的MAP。

物理磁盘:物理磁盘中记录的是全部数据,而且数据是不连续的。假设上层是RAID5或RAID6。那么物理磁盘中还包含校验数据。

三、存储灾难恢复

通过上面对lefthand底层存储的剖析,我们能够非常清楚的知道用户的数据是怎样存储到磁盘上的。也就意味着假设存储出现灾难。我们能够非常快的知道哪里出现故障了。而且针对问题做出解决方式。

针对lefthand上不同的存储灾难表现。相应的数据恢复解决方式例如以下:

一:当物理磁盘和RAID都完善的情况下,因为用户误删除卷。

能够依照lefthand存储中残留的map信息找回误删除的卷。北亚开发的frombyte
recovery for Lefthand中也有此模块。二:当物理磁盘完善。RAID损坏的情况下,可能由于RAID中某块磁盘由于坏道过多而离线。导致RAID瘫痪。从而导致卷不可用。能够通过RAID重组、之后激活(需事先备份,确保方案的可回溯)的方法进行数据恢复。假设lefthand的操作系统无法恢复。也能够使用frombyte
recovery for Lefthand对恢复后的RAID进行卷解释。

三:当卷中文件系统或文件出现问题时。实则与lefthand本身无关,能够通过在client直接做恢复。

建议,恢复时添加还有一台恢复主机, 通过iscsi multipath以仅仅读连接。

可參考文章:某法院HP-P4500存储数据恢复案例

作者:邓奇。北亚数据恢复中心project师

邮件:dq@frombyte.com

电话:4006505808-801

HP-lefthand底层结构具体解释及存储灾难数据恢复的更多相关文章

  1. Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在曾经的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本的语法 ...

  2. V7000存储数据恢复_底层结构原理拆解及Mdisk磁盘掉线数据恢复方法

    Storwize V7000(也就是我们常说的V7000)是新推出的一款中端存储系统,这款系统的定位虽然在中端,但是Storwize V7000提供有存储管理功能,这一功能以前只有高端存储才拥有(例如 ...

  3. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  4. [转]谈NAND Flash的底层结构和解析

    这里我想以一个纯玩家的角度来谈谈关于NAND Flash的底层结构和解析,可能会有错误的地方,如果有这方面专家强烈欢迎指正. NAND Flash作为一种比较实用的固态硬盘存储介质,有自己的一些物理特 ...

  5. Redis底层结构全了解

    第一篇文章,思来想去,写一写Redis吧,最近在深入研究它. 一丶Redis底层结构 1. redis 存储结构 redis的存储结构从外层往内层依次是redisDb.dict.dictht.dict ...

  6. String,StringBuffer,StringBuillder的底层结构

    一:StringBuffer的底层 (1)线程安全的字符串操作类 (2)通过synchronized关键字声明同步方法,保证多线程环境下数据安全 public synchronized StringB ...

  7. java集合专题 (ArrayList、HashSet等集合底层结构及扩容机制、HashMap源码)

    一.数组与集合比较 数组: 1)长度开始时必须指定,而且一旦指定,不能更改 2)保存的必须为同一类型的元素 3)使用数组进行增加/删除元素-比较麻烦 集合: 1)可以动态保存任意多个对象,使用比较方便 ...

  8. IPv4头部结构具体解释

    IPv4头部结构具体解释 下面为书中原文摘录: $(function () { $('pre.prettyprint code').each(function () { var lines = $(t ...

  9. 深入PHP变量存储结构 标签: PHP存储

    1.深入PHP变量存储结构 标签: PHP存储  分类: 编程语言(10)  首先声明,我并没有去读PHP的源码,只是对于PHP的有时候诡异的表现感兴趣,找了一下开发人员laruence的博客结合PH ...

随机推荐

  1. 1、koa的安装,get和post方法的基础使用

    koa是干什么:koa是用来解决回调嵌套的方案,减少异步回调,提高代码的可读性和可维护性同时也改进了错误处理( Express的错误处理相当糟糕) koa相比express的优点在哪里1.更加优雅简单 ...

  2. cocos2d-x-3.3rc2-003 cocos中的引用计数和自己主动释放池

    点击打开链接

  3. poj_3071概率dp

    确定好对手就简单了. #include<iostream> #include<cstdio> #include<cstring> #include<algor ...

  4. m_Orchestrate learning system---七、如何快速学好前端

    m_Orchestrate learning system---七.如何快速学好前端 一.总结 一句话总结:看视频啊,系统看视频啊 1.如何解决单词数字太长超出边界的问题? word-wrap 把编辑 ...

  5. m_Orchestrate learning system---二十二、html代码如何变的容易

    m_Orchestrate learning system---二十二.html代码如何变的容易 一.总结 一句话总结:(结构清晰之后构建页面就变得超级容易了)(多做多用一下子就熟了) 1.文章显示页 ...

  6. mobiscroll手机端插件 好用(时间、日历、颜色)

    http://demo.mobiscroll.com/range/rangepickertime/ 下载地址:http://download.mobiscroll.com/trial#/ios/dat ...

  7. C#中的CSP(Communicating sequential processes)

    说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine.在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到.今天我们来 ...

  8. WPF 基础

    关于布局的规则 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸 不要将界面元素设置成与屏幕坐标相关 容器 ...

  9. Android View 上下左右四种间距的设置方法

    RecyclerView控件大家肯定不陌生,已经应用有一段时间了,最近在项目中写一个GridLayout样式的RecyclerView时需要设置,item之间左右的间距,下面是我总结的一个设置间距的方 ...

  10. html5plus 从相册选择图片后获取图片的大小

    plus.gallery.pick(function (filePath) { plus.io.resolveLocalFileSystemURL(filePath, function (entry) ...