Linux MDADM暂停Raid重新同步以启用位映射
我有一个3x3TB的Raid,它决定在我计划扩展Raid的那天开始重新同步。这是几天前的事,重新同步尚未完成。它没有完成的原因是,无论出于何种原因,机器硬停(完全没有响应)似乎是随机的。所以,既然我找不到突然随机挂起的原因,我想至少给我的raid一个重建的机会。我已经读到,如果我启用位映射,那么它可以在崩溃时恢复重新同步,而不是从0%开始 我试过:Linux MDADM暂停Raid重新同步以启用位映射,linux,ubuntu,raid,Linux,Ubuntu,Raid,我有一个3x3TB的Raid,它决定在我计划扩展Raid的那天开始重新同步。这是几天前的事,重新同步尚未完成。它没有完成的原因是,无论出于何种原因,机器硬停(完全没有响应)似乎是随机的。所以,既然我找不到突然随机挂起的原因,我想至少给我的raid一个重建的机会。我已经读到,如果我启用位映射,那么它可以在崩溃时恢复重新同步,而不是从0%开始 我试过: checkarray -x /dev/md0 这表示停止请求是/dev/md0上的队列`d,但实际上从未停止 接下来我尝试了这个: echo
checkarray -x /dev/md0
这表示停止请求是/dev/md0上的队列`d,但实际上从未停止
接下来我尝试了这个:
echo "idle" > /sys/block/md0/md/sync_action
该文件中的文本立即更改回“重新同步”
问题是:
我需要找到发出此命令的方法:
mdadm --grow --bitmap=internal /dev/md0
但是当我发出这个命令时,raid不能处于重新同步状态
有没有办法在启动时启用位图?我是否可以启动一个实时linux发行版,并从那里将raid重新同步(以防我的Ubuntu安装出现硬冻结)?没有办法克服重新同步,在将位图放入阵列之前,阵列应该是干净的。实际上这是可能的,您可以失败并删除执行重新同步的设备,将内部位图添加到阵列,然后再将设备添加回阵列,只需确保在使用阵列之前检查所有设备是否正常即可。这就是我在一个这样的案例中所做的:
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
当然,您最好等待重新同步,然后添加位图,以防无法暂停,但如果您预计重新同步可能会在完成之前失败,并且不希望从一开始就再次等待重新同步,那么您可以这样做。此阵列上有什么?它是系统关键型文件系统(
/
,/var
,等等),还是您可以暂时不用的东西?