我有一个功能强大的 Raid 5 阵列,我重新启动了盒子,然后 mdadm 无法重新组装其中的一部分。
看到它只是一部分,我认为重新同步很容易。但结果证明这是行不通的,因为显然现在设备不够大,无法加入阵列!?
可悲的是相当复杂。我有一个 Raid 5,它结合了两个 3 TB 磁盘和两个线性突袭(由 1tb+2tb 组成)。我没有对磁盘进行分区,即raid跨越物理磁盘。事后看来,这可能是导致最初失败的原因。
mdadm 将拒绝组装线性阵列之一,声称不存在超级块(使用 mdadm --examine 对两者进行检查均未返回任何内容)。更奇怪的是,显然他们身上还有一些可分区的遗骸。
在这一点上,我认为最快的解决方案是重新创建线性阵列,将其添加到更大的 raid5 阵列,然后重新同步。因此我选择只删除那些分区表条目,即:将它们分区到可用空间。然后我创建了一个跨越两个磁盘的线性阵列。
# mdadm --create /dev/md2 --level=linear --raid-devices=2 /dev/sda /dev/sdc
Run Code Online (Sandbox Code Playgroud)
但是,当尝试将它们添加回数组时,我得到
# mdadm --add /dev/md0 /dev/md2
mdadm: /dev/md2 not large enough to join array
Run Code Online (Sandbox Code Playgroud)
所以我正确地猜测磁盘缩小了?
我想是时候进行一些块计数了!
线性阵列的两个组成部分:
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 1000204886016 /dev/sda
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 2000398934016 /dev/sdc …
Run Code Online (Sandbox Code Playgroud)