使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法

今天我们想谈谈配置丢失的 RAID 阵列以及如何从中提取数据。本文对数字取证专家和数据恢复工程师都很有用。让我们首先了解什么是 RAID。

袭击。它是什么?

RAID 是独立驱动器的冗余阵列。系统将其显示为具有块访问的虚拟存储设备。本质上,RAID 是一个虚拟驱动器。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图

 

组装RAID的目的是创建访问速度更高、容量更大、可靠性更高的存储。

为什么人们使用RAID?家庭用户可以组装阵列来创建备份或存储他们的个人照片和文档存档,以及家庭多媒体库(电影、音乐等)。公司使用 RAID 作为服务器上的数据存储。这可以是公共(共享)文档存储、备份存储、数据库、会计数据等。

简而言之,RAID 是用于存储最有价值数据的高容量存储。

那么如何处理呢?

RAID 映像

有两种方法可以制作 RAID 的映像。

第一个是在被检查的机器上获取图像。 

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图1

这种方法的主要优点 – 无需了解阵列的排列方式。但是,这种方法有很多缺点,主要的缺点是在运行的被检查机器上做某事不好。那么,有哪些选项可用?

  1. 我们可能会运行服务器并从 USB 闪存驱动器或 Live CD 启动一些复制软件;虽然操作系统可能会在工作期间改变一些东西,这显然是不好的。
  2. 可以从 CD 或闪存驱动器启动操作系统并启动软件 – 不能保证它会工作,因为,例如,许多阵列是软件阵列(包括广泛使用的 NAS),因此,看看RAID,您需要运行相应的软件。此外,如果我们使用这种方法,我们将无法访问 RAID 中未使用的磁盘区域。

所以,一般来说,我们不能确定数据会保持不变。

第二种方法是分别制作每个驱动器的映像。然后以只读模式组装数组

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图2

这是唯一保证数据完整性的方法,也让我们有机会研究HDD的所有区域(RAID很可能不会从头到尾使用整个磁盘,而是只使用它的一些内部段。因此,可能有未使用的区域可以存储隐藏数据)。

这种方法的主要缺点是需要组装阵列,即需要确定其配置。因此,要正确执行所有操作,我们需要定义配置。

RAID组装

要组装 RAID,您必须确定:

  • 使用了哪些驱动器:有时并非所有磁盘都被使用(可能有备用或多余的磁盘用于“系统”),有时没有足够的磁盘(1 个驱动器可能损坏或被扔掉,但阵列仍在运行由于冗余)等。
  • 阵列中驱动器的顺序。有时它反映了磁盘在计算机中的放置顺序,但不要押注于此。
  • RAID 级别和算法(如果有的话)
  • 用于条带化的块大小
  • RAID 中使用的开始和结束 LBA(驱动器不一定使用从 0 到 MaxLBA)
  • 延误。重复是 Compaq 和 HP 阵列(HP 收购 Compaq)的共同特征。

为什么参数的定义会出问题?答案很简单——所有可能的配置数量都很大!只接受驱动器的订单就为我们提供了 2 打 4 驱动器的变体,5 驱动器的一百多个变体和 7 驱动器的数千种变体。我们还有许多其他参数可以增加可能配置的数量。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图3

当然,也有简单的情况,例如:

  • 具有众所周知的 RAID 元数据格式的软件阵列
  • 少量成员和简单级别(例如 Stripe 或 Mirror)

对于没有经验的用户来说,所有其他情况可能真的很难。此外,在现实生活中,您必须处理使其变得更加复杂的因素:

  • RAID 元数据丢失、损坏或不正确(从“以前的”磁盘寿命中遗留下来,或者是阵列重新初始化的结果)
  • RAID 上的文件系统已损坏,并且很难使用其元数据来定义配置(病毒或恶意因素可能会损坏 FS)
  • 一些成员可能未被使用——它是热备用磁盘或系统磁盘。
  • 成员的另一个常见问题 – 您可能会从许多不同的阵列中获得一堆驱动器。所以你需要先了解哪个磁盘来自哪个阵列
  • 下一个问题 – 具有奇异配置的阵列,例如,可能会使用从磁盘开头或延迟或其他任何内容的异常偏移。
  • 此外,通常需要在破坏性重建后恢复数据 – 使用错误参数重建阵列的操作导致数据损坏(重建本身可能是调查的原因)

在检查期间组装 RAID 是必要的操作。尽管这项任务可能非常非常困难。 

成功的关键

什么可以帮助我们应对所有的困难?它是多种想法和方法的联合组合:

  • 第一个是文件雕刻(Data Extractor 中的“RAW 恢复”模式),能够确定文件整数部分的大小
  • 第二个是对文件 Carver 发现的结果进行统计处理。个别文件可能会给出错误的图片,但它们的集合显示了非常好的结果
  • 第三个——快速检查假设的能力——为此,我们需要一个工具来执行与 RAID 转换相关的所有转换,换句话说,我们需要动态 RAID 重建。为每个假设检查构建图像需要大量时间

接下来,我们将更详细地了解所有这些内容。

文件雕刻基础知识

文件雕刻(PC-3000 中的“RAW 恢复”模式)是一种使用文件格式知识查找文件头的方法,无需来自文件系统的信息。最简单也是最常用的方法是搜索文件开头的签名。例如,PNG 图像在文件的最开头具有签名“%PNG”。对于其他文件类型,签名当然是不同的。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图4

文件格式的知识使我们不仅可以找到标题,还可以从下面估计文件的整数部分。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图5

例如,PNG 文件由一系列块组成,每个块都有一个签名、大小和校验和。IE。我们可以足够可靠地验证它。这意味着如果文件没有损坏或碎片,我们可以从头到尾检查它并说它是“完整的”并且它的大小为 N 字节。

如果文件是碎片化的,或者其中的一部分被重写了什么的,那么我们可以说这里是标题,前几部分是完整的。它们占用 K 个字节。并且在有损坏之后的某个地方。它可以是 K+1 字节或 K+100 字节——未知。但是前 K 个字节完全是完整的。

对于不同类型的文件,检查整数部分的能力和这种检查的准确性有很大的不同。可以从 png 检查整个文件,如本例所示。在某些地方,我们只能从头开始检查几百个字节,例如,对于 BMP 文件,无论它是完整的还是损坏的都没有关系。

PC-3000 RAID 系统的一项独特功能是能够找到标题并检查许多不同文件类型的整数部分,这是其他工具所没有的。

在 RAID 成员上进行文件雕刻 

让我们看一个简单的 RAID 5 Left Synchronous (LS),它由 3 个成员组成。如果您曾经尝试过从 RAID 恢复数据,那么您应该熟悉以下配置:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图6

现在让我们看看它的一个成员,例如,成员 A:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图7

此 RAID 表描述了转换的重复规则。图片仅显示 2 次完整重复和第 3 次的开始。由于它是一个RAID成员,它存储数据块和冗余块——XOR。数据块不会像 0、1、2、3、……那样一个接一个地排列,它们有间隙——0、3、6 等,因为其他块存储在其他成员上。

现在让我们来谈谈文件雕刻如何在 RAID 成员上工作。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图8

该成员存储数组的各个块,因此文件的整数部分受块大小的限制。

  • 文件可能在数据块内的某处开始和结束
  • 如果文件很大,它将在块的末尾被中断,因为文件的另一部分存储在另一个成员上

在这里,我们看到了概率极小的情况:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图9

RAID 成员上文件的整数部分:

  • 不能从块移动到块
  • 不能在 XOR 块内

这种情况当然存在,但它们的数量比“正常”的要少得多(如上一张幻灯片所示)

结论是我们只能在单个数据块内找到文件的整数部分。

雕刻数据的统计处理

RAID 中的数据转换规则是周期性的。在我们的例子中,3 个块中的每 2 个实际上是数据块,最后一个是 XOR:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图10

如果我们只是总结每个块的每个扇区中有多少整数部分,我们将看到如下内容:

  • 数据块中有很多文件的整数部分
  • XOR 里面什么都没有
  • 您可以看到块之间的边界,因为文件没有跨越块边界

 

让我们在实践中检查理论。只有 PC-3000 RAID 系统能够对刻录数据进行统计处理并以图形方式展示结果。在此屏幕截图中,您可以看到在解决实际案例时获得的软件直方图:

这张照片与上一张非常相似。数据块和“空”异或块清晰可见。红线显示零值和非零值彼此相邻的位置。它们有助于查看潜在的块边界。

这里同时有 3 个驱动器:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图11

我们可以看到 XOR 块(“空”块)位于不同成员的不同位置,RAID 5 应该是这样。块大小等于 128 个扇区,它显示在直方图上(只是不要忘记LBA 从左到右增加,而不是从上到下。问题是它是一种在宽屏显示器上查看信息的更方便的方式)。

不同时期的直方图

周期大小是磁盘数乘以块大小和延迟。那么如果我们犯了错误怎么办?我们会得到什么?以下是同一磁盘的直方图在不同时期的外观真实示例:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图12

  • 在第一种情况下,我们在块大小上犯了一个错误——我们将大小设置为比所需小 2 倍,并收到了小 2 倍的时间段,目前尚不清楚这是 RAID 5
  • 第二张图——所有参数都正确,很明显这是RAID 5
  • 最后一张图片——我们选择了错误的参与者数量——4而不是3,我们再次看到直方图“坏了”

因此,如果我们用错误的周期构建统计数据,我们将看到错误的直方图。 

这可以用作快速直方图测试:计算周期并查看直方图。如果空白区域可见(如在 XOR 块中)——参数设置正确,否则——这可能是一个错误,或者配置没有任何 XOR、RS 或 HS 块。在现实生活中,直方图是立即或在几秒钟内构建的。所以,这真的是一个快速的测试。

不同配置的示例

现在让我们看看不同配置的一些模式。图片上的所有直方图均基于真实案例。

RAID 5, 8 个驱动器,块大小 128 个扇区

在这里,您可能会看到 RAID 5 配置建立在 8 个驱动器上,具有 128 个扇区块大小:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图13

  • 为什么是 RAID 5?因为它只有一个“空”块——XOR
  • 为什么是8个成员?因为周期由 8 个区块组成
  • 此外,128个扇区的块大小通过红色辅助线之间的距离清晰可见

此外,您还可以在 XOR 块中看到此处的“噪音”。在那里找到了一些文件,这并非不可能。但是,它们的数量明显少于数据块中的数量。

RAID 6(或 5EE),6 个驱动器,块大小 256 个扇区,开始 LBA 移位

这是由 6 个驱动器组成的 RAID 6 或 5EE:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图14

  •  为什么是 RAID 6?– 因为有 2 个“空”块。一个是 XOR,另一个是 Reed-Solomon(或者一个 Hot-Spare 块,如果是 5EE)
  • 6 个驱动器,因为在此期间有 6 个块
  • 一个“峰值”的长度是 256 个扇区,这是块大小

 

在这张图片中,您可以看到块的开头和结尾有 2 个部分:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图15

发生这种情况是因为 RAID 不像以前的情况那样从 0 开始,它有一些变化。开头的蓝色部分大小为64个扇区(红线上方有提示)。这意味着 RAID 以一些 LBA 开始,应该是这样的:N * BlockSize + 64, N = 0, 1, 2, … 。在我们的例子中,它是 1088 (= 4*256 + 64) – 一些 HP 和 Compaq 阵列的典型起始 LBA。

RAID 5,4 个驱动器,延迟 16,块大小 128 个扇区

在这里您可能会看到延迟值为 16 的 RAID 5:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图16

我们如何确定这一点?在这里你可以看到最右边的 ¼ 是一个包含服务数据的区域。有很多红线——这是创建异或中发现的小文件的“噪音”。我们总共有 4 个驱动器,因此我们建议这是由 4 个驱动器组成的 RAID 5。(对于由 8 个驱动器组成的 RAID 6,可以看到类似的直方图)。剩下的区域都填满了数据,但可以清楚地看到,一个区域内有很多块。让我们放大其中一个区域。

现在你可以看到一个区域内有 16 个方块:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图17

这意味着延迟为 16,块大小为 128 个扇区。

RAID 0(或 10 或 1E),块大小 128 个扇区

这是 RAID 0 的示例:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图18

但是,RAID 10 或 1E 或其他级别(如果我们没有确定正确的时间段)看起来完全相同。如果您使用此配置,您应该首先查找 RAID-5 或 6 的直方图。然后我们就可以说它是 0、10 或 1E。这些级别没有 XOR、Reed-Solomon 或 HS 块,因此我们看不到“空”块。此外,我们无法确定 RAID 中有多少磁盘,因为我们看到不同数量的驱动器具有相似的模式。

JBOD 或非 RAID 驱动器

现在看看 JBOD 或非 RAID 驱动器的直方图是什么样的。您可以看到根本没有块:

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图19

一个驱动器未使用,一个驱动器丢失

未使用的驱动器是不属于特定 RAID 阵列的驱动器。它可以是备用驱动器或用于存储操作系统数据的驱动器。

 

在图片上,您可以看到有 4 个属于 RAID 5 的驱动器,由 5 个驱动器组成,块大小为 512 个扇区。而最后一个是陌生人。此驱动器的直方图不同于所有其他驱动器。结论:最后一个驱动器未使用。

我们只有 5 个成员中的 4 个成员,因此丢失了一个成员。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图20

同样的想法适用于来自不同阵列的驱动器——它们的直方图会有所不同。

 

因此,我们看到每个 RAID 级别都有一个特殊的直方图,它可以说明很多关于配置的信息,甚至可以称为它的“指纹”。

我们可以从直方图中得到什么?

因此,单是直方图就给了我们很多关于数组的信息:

  • 块大小
  • RAID级别
  • 会员数
  • 延迟
  • 一组可能的起始 LBA
  • 丢失和未使用的驱动器

但是驱动顺序呢?

这是 RAID 5 的示例,它由 5 个成员和所有成员的直方图组成。在您看来,可能有多少个驱动器订单?

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图21

所有驱动器的直方图允许我们设置 XOR 对角线。总共有 4 种算法用于 RAID 5。对于每种算法,我们可以使用这条对角线指定确切的顺序。Data Extractor RAID Edition有很多关于如何找到正确选项以及如何检查它的方法。我们不会详细介绍,因为这是单独文章的主题。但是,简而言之,最简单的方法是尝试所有 4 个选项。

使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法插图22

为此,您需要能够即时构建 RAID 并查看各种配置,而不是为每个配置制作映像。PC-3000 RAID 系统能够快速更改 RAID 参数并立即观察结果。因此,完成 4 种配置将花费不到一分钟的时间。

RAID 6 和 5EE 的情况相同,但还有更多选项——对于每种算法,您需要选择哪个块——XOR 或 RS——先行。

总而言之,所提出的使用文件雕刻结果(又名直方图)统计处理的方法将数百万个选择减少为几个可能的选择。换句话说,它让复杂的 RAID 数据恢复问题变得简单!

 

未经允许不得转载:成都数据恢复|服务器数据恢复|数据库修复|解密-零磁道数据恢复中心 » 使复杂的问题变得简单:一种从配置丢失的 RAID 中提取数据的独特方法

技术支持电话