RAID 阵列发生故障时如何恢复数据

RAID 阵列发生故障时如何恢复数据

我正在考虑在我的计算机上使用硬件 RAID(级别 5 和 10)。我不明白的是,当出现问题并且 RAID 阵列发生故障(RAID 卡问题或其他问题)时,如何恢复数据。

当使用独立磁盘时,该过程非常简单,但是当 RAID 阵列出现故障时该怎么办,如何修复阵列并恢复工作;以及如何从 RAID 阵列中恢复数据。因为我们不能直接取出驱动器并将其插入其他计算机。

答案1

当 HW RAID 中的驱动器坏掉时,您可以将其拔出并插入新的驱动器。系统会自动重建。在某些情况下,您可能必须使用卡的 GUI 或 CLI 来通知卡驱动器已被更换。当然,RAID 在整个演习期间都是可运行的。

如果您的 RAID 卡坏了,那就更难了。您应该有备用卡。如果没有,您可以从供应商处购买一张。如果它不再生产,您会疯狂地在 eBay 上寻找二手卡。

如果你找不到一个二手的,那么就只能对磁盘格式进行逆向工程,并编写一些代码来恢复它。你可能会很幸运地发现它以相当标准的格式存储。你可以自己做,也可以花很多钱找数据恢复公司。

从这个角度来看,SW RAID 更具未来性,因为软件本身不会随着时间的推移而损坏,并且商品硬件可以轻松更换。

但是,SW RAID5 无法完全抵御断电。这是 HW RAID 的一大优势 - 它们可以配备电池供电的内存,因此在断电时完全安全。

答案2

您的问题是关于 HW raid 恢复,因此您可以查看 HW raid 卡/控制器为您提供的功能。

  1. BIOS,您可以在操作系统启动之前进入。可以在这里进行配置。
  2. 处理器或其他“加速器”负责管理突袭,并决定读/写的方向。
  3. 用于识别哪个物理磁盘属于 RAID 哪个部分的方案。
  4. 一种告知您 RAID 状态的方法。

您的 RAID 卡将附带您的操作系统支持的驱动程序和软件,允许您进行配置和状态管理,而无需重新启动到该 BIOS。

对于服务器硬件,驱动器本身位于带有额外 LED 的热插拔底座上。如果控制器检测到 RAID 存在问题,这些 LED 会向您提供物理反馈。

对于台式计算机,您的驱动器硬连线到 RAID 卡或主板。

您的操作系统中的驱动程序和软件也可能检测到这种情况并通过其他方式(电子邮件等)提醒您。

一旦某个驱动器出现故障,控制器就会停止读取和写入,而是依靠剩余的驱动器来提供数据。这称为降级状态,您仍在工作,但再发生一次故障就会让您陷入数据丢失的边缘。(如果您运行的是 RAID 6,则再发生 2 次故障)

对于热插拔 RAID 控制器,您只需拔出故障的驱动器,然后放入一个空白的驱动器。

它怎么知道它是空白的?这就是 (3) 方案的工作。所有驱动器在开始时都有未使用的数据,分区表中有大量可用空间。每个制造商都会以不同的方式使用它,但这是 RAID 控制器将存储数据的地方,这些数据会告诉它哪个驱动器属于 RAID 的哪个部分。

一旦它看到以前从未被该 RAID 卡使用过的新驱动器,它就可以启动恢复过程。

这可以是自动的,也可以由用户触发,当然,如果新驱动器已经被格式化为其他格式,则可以完全抹去其内容。

恢复或重建由 RAID 控制器在后台管理,它从剩余驱动器读取每个扇区并计算新驱动器每个扇区上应该包含的内容。对于 RAID 1,它只是将现有良好驱动器的所有扇区复制到新驱动器。对于 RAID 5 或 6,将读取所有现有驱动器,并计算要写入新驱动器的数据。由于这项工作会访问剩余驱动器,因此您通常可以为其设置优先级,这样它就不会减慢整个系统的速度。

但是您需要考虑恢复到完整 RAID 状态的速度是否比正在进行的工作更重要。某些控制器(例如内置在普通台式机主板中的控制器)可能需要您进入 BIOS 并在那里触发重建,并且不允许您启动操作系统,直到它再次准备就绪。这会很不方便,并且不是一个好的 HW Raid,因为您需要正常运行时间以及对故障的恢复能力。

独立的 HW 突袭卡将为您提供重建的便利,而不会影响您继续工作的能力。

如果故障发生在 RAID 卡本身:计算机/服务器很可能已经严重崩溃并且无法启动。此时,您可能会认为驱动器本身仍然可行,但更有可能的是驱动器处于不一致状态,即写入一个驱动器未完全传播到其他驱动器。您只能听天由命,这取决于操作系统及其文件系统错误恢复。最糟糕的情况是,在修复计算机/服务器后,您还需要从备份中恢复数据。如果 RAID 卡可更换,则可以安装相同型号的 RAID 卡。由于各个驱动器仍以 RAID 卡可识别的方式报告相同的标识,因此整套驱动器将像以前一样工作,而不会完全丢失数据(尽管可能存在文件系统不一致)。如果 RAID 控制器是主板的一部分,则必须用具有相同型号 RAID 控制器的主板替换整个主板。如果您尝试使用不同品牌的 RAID 控制器,很可能它根本无法识别驱动器,而只是询问您如何重新配置​​它们,这将删除所有现有数据。

在 HP 服务器中,所有各种型号的内置和插件 RAID 控制器都共享相同的磁盘识别方案,因此可以用插件替换内置控制器,或用更强大的插件型号替换插件,而不会丢失数据。

无论哪种情况,还必须注意将替换的 RAID 卡的固件更新为与被替换卡相同或更新的版本。

再次使用 HP 服务器,我曾经遇到过一台服务器死机的情况,然后我将整组驱动器放入 RAID 中,并将它们插入到新服务器(已打开电源)的空插槽中,数据立即可见。

答案3

使用 RAID 5,您始终会有一个“奇偶校验卷”。这有点用词不当,因为奇偶校验数据实际上分布在驱动器之间,但您仍然会拥有比预期容量所需的驱动器数量多一个的驱动器。可以称之为n对于没有冗余的情况下所需的驱动器数量,n+1 是您的 raid 5 阵列将采用的编号。

RAID 5 的概念是任何 n该集合之外的驱动器将始终包含足够的数据来重建故障驱动器的内容。

奇偶校验实现这一点的方式类似于会计数据中的“批次总数”概念。如果我有一堆交易要输入系统,我可能会先计算批次总数,然后再将其传递给数据输入。数据输入程序要求输入计算出的批次总数,然后输入所有交易。程序计算交易总数,并将其与我单独计算的批次总数进行比较。如果它们不同,则说明出了问题。因此,数据输入人员会检查细节。

要将其扩展到 RAID 5,假设我们有办法知道是否有任何交易(或批次总数)输入错误(或不可读)。如果只有一个输入是错误的,那么我们可以用简单的算术重建该输入:从总数中减去我们拥有的所有数字,这就是缺失的数字。

对我们来说幸运的是,硬盘上的坏扇区很难在没有任何错误指示的情况下被“读取”。

为了进一步了解奇偶校验卷的工作原理,让我们考虑“最终用户”数据中的一对位。比如,RAID 5 卷中扇区的前两位。我们将其中一个位存储在驱动器 A 上,另一个存储在驱动器 B 上。在驱动器 C(这些特定位的“奇偶校验卷”)上,我们存储一个位,它是其他两个位的“异或”。 “异或”函数只是这些位的总和,忽略进位

另一种说法是,如果输入中的“1”位数为奇数,则任意位数的异或结果均为 1;如果输入中的“1”位数为偶数,则异或结果均为 0。此“异或”函数的值存储在“奇偶校验卷”中。以下是两个输入位的结果:

    A B   XOR(A,B)
   ----------------
    0 0      0
    0 1      1
    1 0      1
    1 1      0

现在,如果我们丢失了其中一位(三位中的任何一位,甚至是 XOR),我们都可以根据我们拥有的数据进行重建,只要我们知道哪一位是错误的或缺失的。

我再说一遍:硬盘中的错误更正和检查功能非常出色。它设置得如此巧妙,尽管经常发生已更正的错误,但既无法更正又无法检测到的错误却非常非常罕见。介于两者之间的是无法更正但可以检测到的错误,还有硬盘发生故障无法读取任何内容(或硬盘完全丢失)的情况。这些“中间”情况比无法更正+无法检测的错误更为常见,而这些正是 RAID 5 可以防止的情况。我们可以通过计算硬盘告诉我们仍然可读且良好的位的 XOR(奇偶校验)来从现有数据中重建丢失或损坏的数据。

相关内容