总的来说,我想知道 RAID 阵列需要多久清理一次。哪些因素导致需要更频繁地清理(读取数据?写入数据?意外关机?驱动器使用年限?驱动器大小?用户数量?等等)?
我一直在阅读 Arch wiki这里它实际上只是说应该定期进行清洁。我只是想知道多久才够。显然这要视情况而定,但合理的范围是多少?每年?每月?每周?每天?非常感谢您的任何信息。
答案1
扫描频率取决于很多因素。
- 椎间盘的年龄。椎间盘越老,发生的可能性就越大遏制邪恶。
- 所讨论的磁盘的原始质量。作为“企业”销售的产品更有可能保持无错误状态,并且 2014 年的 1+TB 大小的磁盘比 2009 年出厂时的同类产品要可靠得多。
- 生产 I/O 对清理 I/O 的敏感程度。
- 您将多少数据集视为您的工作集。
正是出于这个原因,硬件 RAID 供应商通常会包含后台清理过程,有些甚至允许您调整清理过程的 I/O 优先级,从而避免(或大大减少)清理带来的生产 I/O 损失。当然,如果您的优先级较低,并且生产 I/O 几乎全速运行磁盘,您可能永远无法完成清理,甚至在出现故障之前都不会注意到它。
不幸的是,我不知道 Linux 内核是否会降低 I/O 清理的优先级。无论如何,最好使用生产负载进行测试,以确保任何性能影响都是可以接受的。如果可以接受,那就太好了!如果不可以,您可以选择是否添加主轴以允许清理 + 生产 I/O,或者只是接受将来可能出现阵列故障的风险。
影响清理频率的另一个因素是 I/O 使用模式。如果生产负载仅影响少数磁盘,则唯一会在空闲部分发现坏块的 I/O 将是您的清理;在这种情况下,您需要更频繁地清理。如果您的生产负载经常读取整个磁盘组(例如每日完整备份),那么生产 I/O 会更快地遇到问题,您可以减少清理频率。
一个好的行动计划是:
- 运行一些测试来查看清理是否会妨碍生产。
- 弄清楚彻底擦洗需要多长时间。
- 确定在给定的一周内磁盘组中有多少百分比会被多次访问(如果有的话,在此计算中包括备份 I/O)。
- 根据 1 和 2 确定您是属于不频繁阵营还是较频繁阵营。
一旦你获得了这些数据...
- 如果全面扫描需要不到一天的时间,并且不会对生产产生明显影响,那么您可以每周进行一次。
- 如果全面扫描需要不到一天的时间且确实对生产产生影响,请找出本周/本月受影响最小的部分,然后尝试运行它。
- 如果全面扫描需要一天以上但不到一周的时间,并且不会影响生产,则每隔一周或每隔一个月运行一次。
- 如果全面扫描需要一天以上但不到一周的时间,并且确实影响生产,请考虑添加资源以允许其运行,要求在安排的维护时段内运行扫描,或利用清理的空闲/检查功能连续断断续续地执行扫描。
- 如果全面扫描需要一周以上的时间,那么每月一次通常就足够了。但如果它影响生产,您将需要添加资源以使其完成。