我应该多久清理一次RAID?


13

通常,我想知道需要多长时间清理一次RAID阵列。是什么导致需要更频繁地进行清理(读取数据,写入数据,意外关闭,驱动器寿命,驱动器大小,用户数量等)?

我在这里阅读过Arch维基,它真正说的是应该定期进行清理。我只是想知道有足够的定期性。显然,这取决于,但是合理的范围是多少?每年?每月一次?每周?日常?非常感谢您提供任何信息。


1
您的阵列有多大?清理阵列需要多长时间?较大的阵列可能需要数小时或数天才能完全擦洗。显然,您进行擦洗的频率不能超过完成单个擦洗的时间。Debian软件包包括一个cron脚本,该脚本在每个月的第一个星期日运行。
Zoredache 2014年

我看它有多脏:)
metacom

@Zoredache:那正是我要找的东西。由于较大的阵列需要更长的时间,这会降低应该清理的频率吗?增加用户数量会增加该频率吗?如果您不是真的要写很多新数据,是否需要清理一下?
mrfred 2014年

软件RAID?硬件RAID?ZFS?
ewwhite 2014年

Answers:


15

您应该多久扫描一次取决于很多事情。

  • 磁盘寿命。他们年龄越大,遏制邪恶的可能性就越大。
  • 有问题的磁盘的原始质量。以“企业”形式出售的东西更可能没有错误,并且2014年1TB以上大小的磁盘比2009年交付时可靠得多。
  • 您的生产I / O对清理I / O有多敏感。
  • 您认为多少数据集是您的工作集。

出于这个原因,硬件RAID供应商通常包括后台清理过程,有些甚至允许您调整清理过程的I / O优先级,从而可以避免(或大大减少)清理的生产I / O损失。当然,如果您的优先级较低,并且产品I / O几乎将磁盘用光了,您可能永远也不会完成清理,甚至在失败之前都不会注意到它。

不幸的是,我不知道Linux内核是否优先处理清理I / O。无论哪种方式,最好使用产品负载对其进行测试,以确保对性能的任何影响都是可以接受的。如果可以接受,那就好!如果不是这样,则可以选择是否添加心轴以允许scrub + prod I / O或只是接受将来可能发生阵列故障的风险。

影响清理频率的另一件事是I / O使用模式。如果生产负载仅击中少数磁盘,那么通常在空闲部分发现坏块的唯一I / O就是您的清理;在这种情况下,您想要更频繁地擦洗。如果您的生产负载按常规读取整个磁盘集(如每日完整备份),那么生产I / O会在遇到问题时遇到问题,您可以减少清理次数。

一个好的行动计划是:

  1. 运行一些测试,以查看洗涤是否会妨碍生产。
    1. 找出完全磨砂所需的时间。
  2. 找出在给定的一周内有多少百分比的磁盘集可以进行多次访问(在此计算中包括备份I / O,如果有的话)。
  3. 根据1和2来确定您是处于较低频率还是较高频率的阵营。

一旦有了这些数据...

  • 如果一次完整扫描需要一天的时间并且对生产没有明显影响,那么您可以每周进行一次。
  • 如果一次完整扫描需要一天的时间,并且确实影响了生产,请找出周/月中哪个部分受影响最小,然后尝试运行。
  • 如果完整扫描需要一天但不到一周的时间,并且不影响生产,则每两周或每隔一个月运行一次。
  • 如果全面扫描需要一天但不到一周的时间,并且确实影响生产,请考虑添加资源以使其能够运行,要求在安排的维护时段内运行扫描,或者利用清理的空闲/检查功能来进行扫描它适合并不断开始。
  • 如果全面扫描需要一周时间,那么每月一次通常就足够了。但是,如果它影响生产,则需要添加资源以使其完成。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.