CSDN|“不要害怕 RAID!”( 二 )


为什么RAID 5被认为是有害的?坦白说 , 我也很好奇 。我注意到网上有很多人声称不应该使用RAID 5 , 但是这一点我不能苟同 。 这完全取决于具体情况 。 在成本和风险之间找到平衡是很重要的 。这篇文章可以追溯到2003年 , 它提倡不要使用RAID 5 , 但是它关注的是企业环境 , 然而即使在企业 , 我也看到了RAID 5的价值 。对于具有5个或更少驱动器的小型RAID磁盘阵列 , 我认为RAID 5非常适合 。 特别是如果你运行一个4托架的小型NAS , 那么使用RAID 5将完全有意义 。 你可以在容量和可用性成本之间获得很好的平衡 。不建议创建更大的RAID 5阵列 。 与单个硬盘驱动器相比 , 具有8个硬盘驱动器的RAID磁盘阵列发生硬盘驱动器故障的可能性要高8倍 。 这样做的话 , 你就将单个硬盘驱动器出现故障的风险放大了8倍 。 对于较大的阵列 , 双驱动器故障将成为一个严重的风险 。这就是为什么对更大的RAID磁盘阵列建议使用RAID 6 , 因为RAID 6可以容忍两个同时发生的驱动器故障 。 我以前使用过RAID 6 , 现在我使用RAIDZ2(ZFS)作为当前NAS的基础 。我仍然在我的一台服务器上运行了一个8个硬盘驱动器的RAID 5 , 它承载的数据不太重要 , 我仍然想保留这些数据 , 我希望不丢失它们 , 但并非不惜一切代价 。 这都是关于风险和成本之间的平衡 。 请同时阅读这篇文章的后记 , 你会喜欢的 。确实 , 在重建过程中 , 硬盘驱动器的压力会更大 , 但除非RAID磁盘阵列也被大量使用 , 否则硬盘驱动器上的负载不会太大:数据是按顺序读取的 , 这对硬盘驱动器来说非常容易 。RAID的重建性能主要由硬盘驱动器的大小决定 , 而不是由RAID磁盘阵列中的硬盘驱动器数量决定 。几年前 , 我运行了一个带有20个1 TB硬盘驱动器的RAID 6 , 它在5小时内完成了重建 。 最近 , 我在RAID 5中测试了8个硬盘驱动器的重建(使用相同的硬盘驱动器) , 它也花费了将近5个小时(4小时45分) 。
RAID写漏洞(write hole)RAID 5/6的“写漏洞”经常被认为是你应该害怕的东西 。基于奇偶校验的RAID(如RAID 5和RAID 6)可能会受到一个称为“写漏洞”的问题的影响 。 简而言之:如果计算机突然断电 , 对RAID阵列的写操作可能会中断 。 这可能会导致对RAID阵列的部分写入 , 使其处于不一致的状态 。作为补充说明 , 我始终建议使用UPS(电池备份)来保护你的NAS , 以便你的服务器可以在电池耗尽而断电之前以干净的方式关闭 。ZFS RAIDZ不受“写漏洞”问题的影响 , 因为它在将数据写入实际阵列之前先将数据写入日志 。Linux MDADM软件RAID还通过使用位图(默认情况下启用)来防止“写漏洞”现象 。硬件RAID还通过使用缓存的电池备份来防止这种情况 。 计算机重新开机后 , 高速缓存内存中的数据就会被写入磁盘 。
对重要的数据设置警报我认为关于RAID的可怕故事都是基于这样的一个事实:人们可能永远没有注意到关于RAID的任何问题 , 直到为时已晚 , 因为他们从未设置过任何类型的警报报(通过电子邮件或其他方式) 。理想情况下 , 你还应该确保系统监视硬盘驱动器的智能数据 , 并在关键数字(如:重新分配的扇区计数和当前挂起的扇区计数)开始上升时发出警报 。这也是个人反思的时刻 。 你在运行RAID磁盘阵列吗?你是否设置了警报?或者你的RAID磁盘阵列是否会在此时失败而你却不知道呢? 不管怎么说 , 我认为缺乏合适的警报是使RAID陷入困境的一个“好”方法 。 事实上 , 任何不受监控的存储解决方案都将是一场等待发生的灾难 。
为什么人们选择不使用RAID?如果RAID磁盘阵列发生故障 , 所有数据都将丢失 。 人们对这种风险感到不安 。 他们可以接受丢失一些硬盘驱动器的数据 , 但不能是全部 。Unraid和SnapRAID等解决方案使用一个或多个专用硬盘来存储冗余(奇偶校验)数据 。 其他硬盘驱动器是用你选择的文件系统格式化的 , 可以作为普通硬盘驱动器访问 。 虽然我没有使用这个产品的经验 , 但StableBit DrivePool的工作方式似乎与此类似 。如果你有六个硬盘驱动器 , 即五个硬盘用于存储数据和一个硬盘用作存储奇偶校验位 , 那么两个硬盘驱动器的失效将导致数据丢失 , 就像RAID 5一样 。 但是 , 其余四个驱动器上的数据仍然是完整的 。 数据丢失仅限于一个硬盘驱动器上的数据 。这样就降低了在常规软件RAID上会发生的“全有或者全无”的风险 。 我自己并不认为这些风险没有那么大 , 但Unraid和snapraid是流行的产品 , 我认为它们是合理的替代品 。。Mergerfs也可能是一个有趣的选项 , 尽管它只支持镜像 。


推荐阅读