如何中断软件 raid 重新同步?

如何中断软件 raid 重新同步?

我想中断 debian squeeze 软件 raid 上正在运行的重新同步操作。(这是定期安排的比较重新同步。在这种情况下,raid 阵列仍然干净。不要将其与磁盘发生故障并被更换后的重建混淆。)

如何在计划的重新同步操作正在运行时停止它?另一个 raid 阵列处于“重新同步待定”状态,因为它们都在同一天(周日晚上)接连进行检查。我希望完全停止这个周日晚上的重新同步。

[编辑:sudo kill -9 1010不会停止它,1010 是 md2_resync 进程的 PID]

我还想知道如何控制重新同步之间的间隔以及下次重新同步之前的剩余时间。

[编辑2:我现在所做的是使重新同步变得非常慢,这样它就不会再受到干扰:

sudo sysctl -w dev.raid.speed_limit_max=1000

取自http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html

晚上我会将其重新设置为一个高值,这样重新同步就可以终止。

这种解决方法在大多数情况下都适用,不过,想知道我所问的问题是否可行还是很有趣的。例如,在重新同步或重新同步“待处理”时,似乎无法增大数组]

答案1

如果你的数组md0echo "idle" > /sys/block/md0/md/sync_action

“idle” 将停止活动的重新同步/恢复等。无法保证不会自动再次启动另一个重新同步/恢复,尽管需要某些事件来触发此操作。

http://www.mjmwired.net/kernel/Documentation/md.txt#477

答案2

我想减慢或暂停重新同步过程以节省一些 I/O 来在另一台计算机上备份一些内容。这个帖子对我有帮助,但我找到了另一个解决方案。

在我的 Debian Lenny 上:

  • echo "idle" > /sys/block/md0/md/sync_action有效,但重新同步过程会立即重新启动。

  • checkarray -x --all:有效,但结果相同:重新同步过程立即重新启动。

所以我使用这个方法: echo 0 > /proc/sys/dev/raid/speed_limit_max

答案3

您可以使用以下命令序列(以 root 身份)取消正在进行的阵列重新同步:

echo frozen > /sys/block/md0/md/sync_action
echo none > /sys/block/md0/md/resync_start
echo idle > /sys/block/md0/md/sync_action

注意这可能会使你的阵列处于不一致的状态。除非您确定阵列状况良好,否则请不要执行此操作,然后稍后重新运行同步。

(功劳归功劳:发现了这个咒语在此主题中

答案4

对此的可能解决方案,需要花一点时间来了解细节。

我的系统:CentOS 6.5 mdadm v3.3.2

每周进行持续检查,想要暂停其中一个,RAID 是干净的,检查是通过每周运行的 /etc/cron.d/raid-check 脚本调用的。

要取消检查,请使用 --misc --action 函数。假设 RAID 设备是 /dev/md0,并且这只是每周一致性检查,而不是设备故障,您可以以 root 身份执行以下操作:

mdadm --misc --action=idle /dev/md0

同样,要启动一致性检查

mdadm --misc --action=检查 /dev/md0

相关内容