最近发表了很多关于RAID5是如何危险的文章,特别是因为在重启期间遇到URE的机会越来越多。 显然这是一个重要的问题。 但是, 在许多情况下 (如果你对磁盘保持某种程度的关注),似乎在重buildarrays时,我所replace的磁盘仍然是大部分可读的。
如果你试图向普通的外行解释这种困境,他们通常很困惑,为什么你有两个几乎完全function的磁盘,但不能产生一个工作arrays。 在我看来,应该有办法利用这一点来使重build更安全,只要我愿意让RAID5在重build期间只读几天。 从概念上讲,我脑子里面是这样的:
很明显,这样的过程不适用于正常运行时间很关键或数据丢失是不能容忍的应用,但是在我看来,这对于提高RAID5的可靠性有很大的帮助。
我认为现在还没有一个好的方法来实现这样的恢复,因为我没有看到任何devise用来做这件事的工具的迹象,而且看起来似乎是用手工来解决这个问题。 还有技术上的问题,我没有想到(我还是相当新的RAID的东西)? 任何想这样的事情会如何实现(例如在Linux MD的RAID)?
编辑 :如果其他人发现这一点,而我正在寻找同样的事情,这原来已经是在新版本的MD的一对function。 坏块列表(如果启用)允许md单个块而不是整个磁盘失败,热replace允许build立一个新的磁盘,主要从它将要replace的磁盘开始工作,但是从数组中的其他磁盘需要的时候。 最近的mdadm的联机帮助页有更多关于如何做这些的说明。