在Linux上进行软件RAID 1重build期间是否需要停止服务(Apache,MySQL)?

在Linux上重build软件RAID 1期间,是否需要停止或限制服务(Apache,MySQL,…)?
是否存在破坏或丢失数据的风险?

我在Debian 5上使用Linux MD设备(使用mdadm)。

谢谢

正如已经评论的那样,在重build期间几乎没有任何数据损坏的风险。 你显然仍然有失去另一个驱动器的风险,直到它完成。 你应该确保你的备份是最新的和工作的。 你有备份吗?

显然,重build将使用IO,但运行的进程将具有更高的优先级。 这意味着繁重的IO绑定进程将使您的重build需要更长的时间。

Linux有几个调节旋钮来改变进程的运行速度:

/proc/sys/dev/raid/speed_limit_min /proc/sys/dev/raid/speed_limit_max 

在我的机器上,它们分别设置为1000和200,000。 最低限度不是所有可靠的,因为我相信用户空间IO仍然胜过它。 只要在这些文件中回显新的值就可以改变它们。 您可以通过检查/proc/mdstat来查看当前速度。 你可以有一个很好的更新显示使用:

 watch cat /proc/mdstat 

ctrl-c退出。

如果你正在重build你的RAID,

A)你应该先备份

B)你的performance会很糟糕。 在这种情况发生时,你最好将任何关键服务移动到另一个主机上,在这种情况下,我会closures各种守护进程。

同意别人所说的话。 但只是要挑选你的问题的最后一点:

如果在重新同步期间继续使用硬盘,则不会有损坏或丢失数据的风险。

虽然不要求您停止在系统上运行服务,但您会发现由于重build过程导致的磁盘IO,性能将会降低。 如果您观察重build过程的速度,您将看到该过程确实将资源释放到其他过程,以便系统继续工作。

如果要加快重build速度,那么停止不必要的进程并让该方块重build或者如果不能将一些负载移到另一个系统将是有利的。

是的,重新同步会严重影响磁盘性能。 根据您的RAID分区的大小,您可以冷却重新同步速度(以root身份):

echo 10000> / proc / sys / dev / raid / speed_limit_max

例如以10MB /秒的速率重新同步节气门。 您可以尽可能多地将其降低以使您的服务保持I / O容量。

缺点是你把它压得越低,直到RAID再次被占用的时间越长。 因此剩下的驱动器也有更多的时间失败,并将整个arrays与之相连。