mdadm RAID快速安装与空驱动器?


10

我正在使用mdadm重新创建一些RAID5磁盘作为RAID6。我关心的驱动器上没有数据。

设置RAID需要一段时间来设置形状 - 我接受当有数据需要条带和奇偶校验计算时,但是对于这些驱动器,它们是空的 - 或者至少我希望它们被认为是空的。

那么有没有办法跳过奇偶校验计算并告诉mdadm只是设置超级块并完成,否则,当没有数据移动时,它究竟花了多少钱?

md3 : active raid6 sdf3[5] sde3[4] sdd3[3] sdc7[2] sdb3[1] sda3[0]
      1953114112 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.3% (6790144/488278528) finish=409.3min speed=19604K/sec

请注意,我不是在讨论--assume-clean从包含您知道正确的RAID阵列的预先存在的磁盘集重建阵列的位置。我在谈论一个应该被认为是空的数组,不被认为是正确的条纹。

因此,为了这个问题,我们可以说这些设备已预先填充了零。

Answers:


8

您可以使用--assume-clean但除非您使用raid5(而不是raid6)并且磁盘实际上充满了零,第一次运行奇偶校验时,它将会出现需要更正的错误,因此您不应该这样做。在开始使用阵列之前,您无需等待重新同步完成; 它将在后台突然显示,直到完成。


谢谢psusi - 这没有解决这个问题。
保罗

2
@Paul,嗯..是的,确实如此。没有“空”这样的东西只有同步或不同步。
psusi

它没有解决我提出的问题。零块的xor为零。因此,如果我能告诉mdadm该空间可以被认为是空的,它可以非常快地创建奇偶校验。只有在写入特定块时才需要正确计算奇偶校验,此时它与之前的“错误”并不重要。我甚至可以将磁盘归零。
保罗

2
@Paul,再一次,没有“空”这样的东西。通常是的,从来没有写过的条带上的奇偶校验是错误的,这就是为什么你可以逃脱--assume-clean,即使磁盘没有充满零,但是错误的奇偶校验会当mdadm进行奇偶校验时检测并纠正。
psusi

2
@Paul,“空”的含义没有明确定义。大多数人使用它来表示他们没有在设备上放置任何文件或文件系统,并且不知道或不关心它当前包含的内容。如果你知道磁盘都是零,那么--assume-clean就是你想要的。它会接受你的说法,即磁盘全部归零并且不会重新计算奇偶校验,正如你所提到的,零的奇偶校验对于全零的数据磁盘是正确的,至少对于raid5(不是raid6)。
psusi

2

您无法使用软件或硬件RAID执行此操作。所有校验和都需要写在磁盘上,这需要时间。您可以稍后执行此操作,但是之后未写入的磁盘部分必须先执行此操作,然后才能使用它们。

这基本上是因为RAID系统和文件系统彼此不了解。ZFS对此有一个解决方案,但RAID部分与文件系统深度集成。因此,RAID子系统实际上知道磁盘的哪些部分用于存储数据,哪些部分可以在以后使用,然后将校验和写入它们。

您可以将吞吐速度添加到软件RAID,或者在写入所有校验和之前开始使用RAID,然后让软件RAID为您处理。巫婆是@psusi写的。


我理解RAID是如何工作的,我试图了解空磁盘上校验和发生了什么。每次将某些内容写入磁盘时都需要计算校验和,因此在任何数据出现之前计算它们并没有多大意义 - “稍后再做”在没有任何内容时是明智的。在此方案中没有要考虑的文件系统。
保罗

5
的数据存在。它可能不重要或没有意义,但每个部门总是有价值的。(零也是一个值!)RAID实现不知道哪些扇区包含重要数据,因此必须将它们全部视为重要并计算它们的奇偶校验。
Wyzard 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.