在设置服务器时,有人告诉我服务器需要具有非常好的容错能力。哪种 RAID 阵列能提供最佳容错能力?
答案1
在传统硬件 RAID 世界中,RAID1 和 RAID6 是更可靠的 RAID 级别。
在更先进的软件 RAID 世界(MDRAID 和 ZFS)中,您可以使用三路镜像甚至三重奇偶校验方案(仅限 ZFS)。
从可靠性的角度来看,正确配置的 ZFS 池可能是最先进的。
答案2
我认为 RAID-6 是最好的(至少是最好的负担得起),如果容错能力是最需要的特性,那么raid-5是第二好的。
看起来 RAID-1(或者如果想要更快的速度并且钱不是问题的话,则是 10)可能是可行的解决方案,但我不推荐这样做。
RAID 级别 1 和 5 的共同点是,只有一个磁盘可能出现故障,但不会有什么坏事发生。此外,除了整个磁盘故障之外,阵列还能承受单个扇区无法读取的情况(只要有 N-1 个扇区具有相应的编号)。使用 raid-1,理论上,即使多达 50% 的阵列可能出现故障,也不会有什么坏事发生,只要出现故障的磁盘严格是“正确的磁盘”。也就是说,永远不会有任何两个磁盘具有相同的索引。
原则上,你也可以使用两个、三个或十个镜像副本来执行 raid-1,但资金限制通常不允许这样做。毕竟,用二十几个额外的磁盘来解决问题并不能使这种方法“便宜”(尽管 RAID 中的“便宜”一词指的是单身的磁盘阵列中有许多磁盘,但无论如何,没人愿意在 RAID 中使用便宜的磁盘)。
RAID-10 稍逊一筹,因为它基本上是 RAID-0 堆叠在两个(或三个)RAID-1 实例之上。虽然它们每个都在其限制范围内具有容错能力,但如果任何单个所有这些如果失败,整个事情就都会失败。
RAID-5 很便宜(只需要一个额外的磁盘),实际上对大多数人来说已经足够了,因为嘿,什么时候两个磁盘会同时坏掉?永远不会发生!嗯,遗憾的是它能发生了,而且确实发生了。此外,能发生扇区无法读取的情况。是的,这种情况永远不会发生,可能性非常小,对吧。
不幸的是,当你需要在故障后重新同步时,你必须阅读每一个剩余磁盘上的所有扇区。对于现代磁盘容量而言,这是巨大的数字。巨大的数字乘以不可能发生的、很可能永远不会发生的,不幸的是,结果会是一点也不不可能。能一个磁盘发生故障后,一个扇区也会损坏。能发生第二块磁盘(具有相同的通电时间)发生故障的情况,特别是在重新同步期间进行 16-18 小时的压力测试时。
RAID-6 与 RAID-5 相同,不同之处在于它可以承受两个磁盘同时发生故障。它确实不是无论哪个磁盘发生故障,都没有最坏的情况。任何两个磁盘发生故障,你仍然可以继续运行。
因此,当第一个磁盘发生故障时,还不是出冷汗的时候。你仍然可以继续运行,你仍然有冗余。这比 RAID-5 好太多了,而且只需要多一个磁盘。