存储做的RAID-5, SCSI硬盘,操作系统是FreeBSD,文件系统是zfs。
本案例共有12块硬盘,11块硬盘里有数据,1块硬盘是热备盘。其中第6块数据硬盘出现故障,重组时需要将其剔除。
物理盘:
物理盘是指创建RAID所用的每块独立的物理硬盘,组建RAID后,它们叫做RAID的成员盘。
去RAID化:
出现故障后,把物理盘从服务器的槽位上取下来进行检测和分析。离开了服务器的槽位,也就离开了RAID控制器,这些硬盘就称为被“去RAID化”了。
1 分析步骤
主要内容:
·初步判断RAID-5起始扇区
·块大小(条带大小)分析
·RAID-5成员盘盘序
·校验方向
·数据走向
1.1 初步判断RAID-5起始扇区
RAID起始扇区是指RAID内的数据在每块物理盘(创建RAID所用的每块独立的物理硬盘)上的起始位置。起始扇区只存在于一块物理盘,大多数情况是0扇区。找到起始扇区是第一步。本实例是用12块硬盘组成的RAID-5,第6块硬盘出现故障。恢复实例中,我们用WinHex将11块有数据的硬盘去RAID化。如图1所示。

图1
用WinHex的同步功能将11块盘定位在0扇区,可以看到11块盘中只有3块盘的0扇区有“55 AA”标志,分别是1,2,6号硬盘,如图2所示。有这个标志说明是MBR磁盘结构。


图2
接下来分析哪个硬盘是起始扇区。我们先来看第6块硬盘。第6块硬盘的结尾显示这是一个GPT头备份并且只有128MB大小。如图3所示。

图3
剩下的1号磁盘和2号磁盘中0扇区有起始扇区或校验。这是初步判断起始扇区。
1.2 块大小(条带大小)分析
条带也称块,它是RAID处理数据的基本单元,不同的RAID条带大小有所不同。分析条带大小的方法有很多,一个校验区的大小是一个条带的大小,根据这一点,我们针对这个RAID-5实例做分析。此实例使用的是zfs文件系统,用WinHex同步显示11块物理盘的某个扇区,比如53654656扇区,发现此扇区只有1号盘跟其他盘显示的不一样,这是位于1号盘的校验区。顺着1号盘53654656扇区上下寻找,找到连续的128个扇区。这128个扇区就是这个RAID-5的条带大小。由此条带大小定位结束。
1.3 RAID-5成员盘盘序
以上内容说的1号盘指的不是RAID的第一个盘,也就是说物理盘的顺序并不一定是RAID的顺序,需要人工校验。用WinHex同步定位11块硬盘的53654656扇区。发现1号盘与其他盘不同,这个是1号盘的校验区。接着分析1号盘的下一个条带,即53654656+128=53654784扇区,得出2号盘跟其他盘不同,所以2号盘从53654784扇区开始的条带是校验区。以此方式继续下去,接着是3号盘的校验区,4号盘的校验区……得出的校验区如图4所示,“P”字母即表示校验区。我们按照校验区的位置,即可得到盘序,而这个实例的盘序正好是从1号盘开始依次递增的。盘序我们已经得出,又因分析步骤1得出1号盘和2号盘的0扇区为起始扇区或为校验区。对于左结构来说,0扇区是起始扇区的物理盘一定是RAID-5的1号盘,对于右结构来说,0扇区是起始扇区的物理盘一定是RAID-5的2号盘。


图4
1.4 校验方向
RAID-5的基本结构有左同步、左异步、右同步、右异步。左和右是对校验方向来说的,区别如表1和表2所示。我们做的RAID-5实例很明显是右走向的。

表1
我们由上文校验区的走向得出整个RAID-5的校验方向,即右方向,如图4所示。左同步、左异步结构中的校验块都是从最后一块物理盘开始,右同步、右异步结构中的校验快都是从第一块物理盘开始。
判断校验方向的方法有两种,一种是先分析起始扇区,再分析条带大小,然后是盘序,盘序分析后校验方向很容易就看出来了。另一种,如果盘序没有确定下来,只确定了起始扇区和条带大小,可以采用反推法。使用反推法分析,在盘序还没有确定下来的情况下,有这个校验区可以算出某个盘中第一个校验区是第几个条带。具体方法如下找到某个校验区,比如3号盘的53654912扇区,用这个扇区对条带大小与盘数的乘积取余。即53654912MOD(128*12)=256。计算的结果等于256,表示256号扇区是校验。而位于此扇区的3号盘处于第3个条带,并且是第3个条带的开始扇区,包括256号扇区在内的以后的128个扇区是3号盘的第一个校验区。接着判断1号盘下一个条带,1号盘下一个条带显示3号盘是校验区。接着判断3号盘下一个条带,3号盘下一个条带显示3号盘是校验区。由此校验方向也能得出来。
1.5 数据走向
同步异步说的是数据的走向。异步结构中,各条带组内的数据块均由低号盘向高号盘依次写入。同步结构中,每个条带组内第一个数据块写在校验块所在物理盘的下一个物理盘,若后面还有物理盘,则顺序往后写,若校验块所在物理盘后没有物理盘,则从校验块所在物理盘前面的物理盘开始从低号盘向高号盘顺序写入。

表2

以下是RAID-5实例分析过程(已确定此RAID-5是右结构)。
·从“数据块A”入手。如图5所示。

图5

首先查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID-5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID-5属于同步结构。
·从“数据块A”入手。如图6所示。

图6
首先查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID-5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID-5属于同步结构。
·从“数据块A”入手。如图7所示。

图7
首先查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID-5属于同步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID-5属于异步结构。
·从“数据块A”入手。如图8所示。

图8
首先查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID-5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID-5属于同步结构。
2 重组RAID-5
上面内容我们已经解析出RAID-5的一些重要信息,根据这些信息,我们就可以重组RAID-5了。下面我们用UFS Explorer工具打开并添加这11块硬盘。如图9所示。

图9
将1.dsk添加到了左侧Connected storages里,如图10所示。

图10

把RAID-5的10块盘都添加进去。点击Build RAID选项,依照RAID-5的盘序把10块盘都添加进去,开始组建RAID-5,如图11所示。

图11
第6块盘因为出现故障,所有要剔除,并在其位置添加时补一个空缺,并继续顺序添加完其它硬盘。如图12所示,点击标红框位置处的按钮,添加空缺硬盘。

图12
接着选择校验方向和数据走向,本实例条带大小为28个扇区,即65KB,右异步结构。因此设置如图13所示。

图13
接着点击Build按钮,出现如图14所示。点击find查找,选择zfs文件系统。

图14
出现了如图15所示的正在组建的RAID-5。

图15

Unix下zfs文件系统重组RAID-5后可以这样恢复的更多相关文章

  1. 深入理解linux系统下proc文件系统内容

    深入理解linux系统下proc文件系统内容 内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统. Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它 ...

  2. ZFS文件系统及Freenas介绍

    一.简介 1.什么是zfs文件系统 ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统.最初是由 ...

  3. unix下的文件和目录详解以及操作方法

    前言:unix下一切东西都是文件,一共有7种不同的文件,前一篇博客已经讲解的很清楚了,不懂的可以看看这里.当然,博主知道有些朋友比忙,没时间看,那我就简单点讲讲这7中文件都有哪些吧. 文件类型包括在s ...

  4. 在 Linux 下使用mdadm创建 RAID 5

    在 RAID 5 中,数据条带化后存储在分布式奇偶校验的多个磁盘上.分布式奇偶校验的条带化意味着它将奇偶校验信息和条带化数据分布在多个磁盘上,这样会有很好的数据冗余. 在 Linux 中配置 RAID ...

  5. UNIX下的LD_PRELOAD环境变量

    UNIX下的LD_PRELOAD环境变量 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久.不过,在这里,我还是想讨论一下这个环境变量.因为这个环境变量所带来的安全问题非常严重,值得 ...

  6. Unix下五种IO模型

    http://blog.chinaunix.net/uid-25324849-id-247813.html 1. I/O模型 Unix下共有五种I/O模型 a. 阻塞I/O b. 非阻塞I/O c. ...

  7. 64位系统下System32文件系统重定向

    前言 因为一次偶然的机会,需要访问系统目录“C:/Windows/System32“文件夹下的内容,使用的测试机器上预装了win7 64系统.在程序运行中竟然发生了该文件路径不存在的问题!!通过查看网 ...

  8. XFS:大数据环境下Linux文件系统的未来?

    XFS:大数据环境下Linux文件系统的未来?   XFS开发者Dave Chinner近日声称,他认为更多的用户应当考虑XFS.XFS经常被认为是适合拥有海量数据的用户的文件系统,在空间分配方面的可 ...

  9. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

随机推荐

  1. 【BZOJ5020】【THUWC2017】在美妙的数学王国中畅游(Link-Cut Tree,组合数学)

    [BZOJ5020][THUWC2017]在美妙的数学王国中畅游(Link-Cut Tree,组合数学) 题解 Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙 ...

  2. 【BZOJ2152】聪聪可可(点分治)

    [BZOJ2152]聪聪可可(点分治) 题面 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电 ...

  3. [BZOJ1430] 小猴打架 (prufer编码)

    Description 一开始森林里面有N只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友.每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友.经过N-1次打架之后,整个森 ...

  4. linux开机启动流程及需要开机启动服务讲解和修改及防火墙

    linux系统从开机到登陆的启动流程. 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit ...

  5. 【noip模拟】Fantasia

    Time Litmit: 1000ms      Memory Limit: 256MB Description 给定一张 $N$ 个点.$M$ 条边的无向图 $G$ .每个点有个权值$W_i$. 我 ...

  6. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  7. jsp学习第一弹

    早期动态网站开发技术主要使用cgi技术,cgi的基本原理是,将浏览器提交至web服务器的数据通过环境变量传递给其他外部程序,经外部程序处理后,再由cgi把处理结果传送给web服务器,最后由web服务器 ...

  8. ImageButton 图像按钮

    ImageButton 类主要成员有: setINMask 属性: 数据类型:Bool, {get ,set}. 用于确定是否接受用户输入操作,它的值是传给一个指针.这个指针指向的当前图像按钮所在的窗 ...

  9. C#封装程序集属性方法注释说明

    一.使用封装程序集好处: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求方 ...

  10. PAT乙级-1063. 计算谱半径(20)

    在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而&q ...