服务器 RAID 5 如何恢复数据

服务器 RAID 5 如何恢复数据

数据在阵列中的所有磁盘上条带化,但对于阵列中的每个条带(每个磁盘上一个条带块),将保留一个条带块,以存储从同一条带的所有块计算得出的校验和。该数组表现出较高的读取速度,但由于需要重新计算校验和并将其与新数据一起写入,写入速度会降低。为防止出现瓶颈,相应条带的校验和数据与阵列中所有磁盘中的数据一起条带化。存储奇偶校验块需要一个阵列磁盘,因此可用阵列容量将小于单个磁盘的每个磁盘容量的所有磁盘的总容量 - 仍然优于 RAID1,后者仅提供 50%

RAID 5的结构如下所示: 

RAID5

记录前的数据根据磁盘数减去1分为条带(块)。然后,将带有数据的块写入相应的磁盘,最后写入具有前一个校验和的块。校验和条的位置根据 RAID5 算法的具体实现而变化。
为了在磁盘发生故障后加快阵列的恢复速度,可以在阵列中引入一个特殊的热插拔磁盘 - 热备盘。它的任务是更换故障磁盘。如果可用,控制器将自动开始使用热备盘重建阵列,这将显著减少阵列处于不稳定状态的时间。此外,为了降低存储成本,可以将热备盘分配给多个 RAID5 阵列,因为磁盘故障非常罕见,并且为每个阵列保留一个安全磁盘是无利可图的。

从 RAID5 恢复数据

如果 RAID5 进入非运行状态,并且你希望从中恢复数据,则与其他类型的阵列相比,此过程具有自己的特征。由于阵列可以在没有一个磁盘的情况下长时间工作,因此通常需要找到实际的磁盘组合进行组装,这对于大量数据是一个费力的过程。如果同时故障磁盘存在机械问题,则有必要将它们还原到可以创建逐扇区副本的状态。当所有磁盘的副本都可用时,你可以开始组装阵列并将数据从阵列保存到另一个介质。由于存在额外的算法参数,RAID5 阵列的组装比 RAID0 困难得多,并且随着磁盘数量的增加和小型文件系统的使用而迅速增加。

RAID5 恢复示例

为什么可以在没有单个磁盘的情况下运行阵列? 这是如何实现的?这是由于逻辑运算“独占XOR”的可逆性。下面是此操作的真值表(x,y 是操作数,z 是结果)。

x

y

z

0

0

0

0

1

1

1

0

1

1

1

0

从表中可以看到,如果其中一个操作数为 1,则结果的值为 1。此操作对于任何位深度的操作数的工作方式相同,因为它是逐位执行的。假设我们有一个包含三个磁盘的 RAID5。因此,在每个条带中,我们将有两个数据块,第三个块是添加前两个数据块的结果。让我们看两个字节的例子:0x45+0x9A=0xDF。因此,0x45写入第一个磁盘,0x9A写入第二个磁盘,0xDF写入第三个磁盘。此处的有用信息是0x45和0x9A,0xDF是控制信息。现在让我们想象一下一张光盘坏了,比方说写0x45的那张。从有用的信息来看,只剩下0x9A和控制0xDF。现在让我们添加 0xDF+ 0x9A=0x45,即我们得到了丢失的数据。在实际实施例中,所有这些都变成了一个复杂的数学结构,用于根据块大小、阵列中的磁盘数量、放置奇偶校验块的方法等来计算磁盘上的地址。 但原理本身是使用操作“独占或”(XOR)来恢复丢失的数据。

恢复包含三个磁盘的 RAID5 阵列的示例

我们示例中的数组不是由硬盘表示,而是由镜像文件表示,但这不会影响恢复过程。
因此,给定:文件Raid_53_1,Raid_53_2 Raid_53_3。要恢复,你需要确定:条带块的大小、阵列中磁盘(文件)的顺序、在磁盘上放置奇偶校验的方式(左同步、右同步、左异步、右异步等)。也就是说,与只需要确定序列和块大小的 RAID0 相比,RAID5 包含更多需要定义的参数。

在 R-Stidio 中组装数组

  运行程序,点开菜单,打开图像文件,按住 Ctl,选择我们的文件,单击打开。这些文件将作为磁盘添加到设备树中。
  接下来,创建一个虚拟阵列。在“创建”菜单中,选择“创建虚拟块 RAID 和自动检测”。出现新的虚拟块 RAID 设备。现在我们需要将磁盘添加到其中。最好按照您在上一步中定义的顺序立即添加。
  右键单击所需的磁盘,在上下文菜单中选择添加到 RAID,选择我们的虚拟块 RAID。
  现在,您需要指定数组的先前定义的参数。
  在 RAID 类型字段中,选择 RAID5、块顺序 – 正确同步、块大小 – 64KB。然后单击应用并查看我们组装的数组。右键单击它,然后从上下文菜单中选择打开云端硬盘文件。
  现在让我们检查它是如何恢复的。查找一个两到三倍于数组块大小的文件,然后尝试打开它。文件约300K,查看里面有什么?右键单击 — 预览。
  正常打开,图像中没有任何伪影,因此数组组装正确,可以保存数据。 如果您知道阵列在没有单个磁盘的情况下运行了一段时间,则必须从虚拟程序集中排除该磁盘。转到虚拟块 RAID 参数,选择要从磁盘列表中排除的参数,然后单击删除。让我们删除第二个磁盘。
  但是在两个磁盘上,我们将无法构建RAID5。要将数组的放置元素替换到位,您需要按相应的按钮放置所谓的丢失磁盘。然后使用“上移”和“下移”按钮,将其设置到正确的位置。
  卸下磁盘后,我们更改了阵列的参数。返回以前的值,然后单击应用。打开收集的数组,看到数据量没有变化,目录结构没有损坏。

RSTUDIO

RSTUDIO

RSTUDIO

RSTUDIO

RSTUDIO

RSTUDIO

iRSTUDIO

RSTUDIO


风景图


原文链接
https://www.dbsos.cn/blog/235.html