2012-12-12 105 views
2

我有一个3x3TB Raid,决定在我计划增长RAID的那天开始Resync。这是几天前,resync尚未完成。它没有完成的原因是因为无论出于什么原因机器硬停顿(完全无响应)看似随机。所以既然我找不到突然随机挂起的原因,我想至少让我的团队有机会重建。我读过,如果我启用位图,那么它可以在崩溃时恢复重新同步,而不是从0%开始。MDADM暂停Raid重新同步启用位图

我已经试过:

checkarray -x /dev/md0 

这是说停止请求queue`d在/ dev/md0的,但它从来没有真正停止。

接下来,我想这:

echo "idle" > /sys/block/md0/md/sync_action 

在该文件中的文本立即变回“重新同步”。

问题:

我需要找到一种方法,发出此命令:

mdadm --grow --bitmap=internal /dev/md0 

但是RAID不能在一个重新同步,当我发出此命令。

有没有办法在启动时启用位图?我可以启动一个实时Linux发行版,并从那里获得突袭重新同步(如果硬盘冻结是我的Ubuntu安装)?

+0

这个数组是什么?它是系统关键的文件系统('/','/ var'等等),还是你可以临时运行的东西? – twalberg

回答

2

没有办法克服重新同步,在将位图放入之前,数组应该是干净的。

1

实际上,这是可能的,您可能会失败并删除设备进行重新同步,将内部位图添加到阵列,然后添加设备,只需确保在拧紧阵列之前检查您的所有设备是否健康。这是我在这样一个情况下所做的:

mdadm --manage --fail /dev/md5 /dev/sdb8 
mdadm --manage --remove /dev/md5 /dev/sdb8 
mdadm --grow /dev/md5 --bitmap=internal 
mdadm --manage --add /dev/md5 /dev/sdb8 

这里是结果:

md5 : active raid10 sdb8[0] sdd8[3] sdc8[2] sda8[1] 
     1731712000 blocks super 1.1 512K chunks 2 near-copies [4/3] [_UUU] 
     [>....................] recovery = 0.4% (3681152/865856000)  finish=1391.9min speed=10322K/sec 
     bitmap: 8/13 pages [32KB], 65536KB chunk 

当然你的只是在等待重新同步,并增加在该位图后者更好如果您不能暂停它,但是如果您希望重新同步在完成之前可能会失败,并且不想从一开始就等待重新同步,则可以这样做。

相关问题