我见过有人推荐RAID 10而不是RAID 5,因为RAID 10提供了更好的性能和从硬件故障中恢复的更好的机会。
这让我感到困惑,因为我认为使用RAID 5的目的更多的是一个奇偶问题,允许检测和纠正写入错误,以确保数据的完整性。我的理解是RAID 10无法从写错误中恢复。也就是说,如果一个位有错误,它将与镜像驱动器中的位相反,因此不可能判断哪个位有错误,哪个位是正确的。
然而,我试着用raid 5和raid 10搜索检测“写错误”,看看是否有人覆盖了这一点,然后空手而归。
这些都是我脑子里想出来的吗?
我看到一些关于由读取错误触发重建的讨论。是否直到稍后读取数据时才会检测到写入错误?换句话说,是否会发生写入错误,但错误的数据只是停留在那里,直到可能很久以后才读取数据,奇偶校验表示错误。这就是您在重新构建过程中可能会遇到额外读取错误的原因吗?因为您可能会用错误写入大量数据,但是直到下次读取数据时才会检测到错误?
我想澄清的是,磁带备份并没有解决上述问题。如果您有这样一个场景,即数据完整性非常重要,并且无法检测写入错误,那么如果您正在备份的数据已经存在错误,那么世界上所有的磁带备份都不会对您有所帮助。
发布于 2012-02-18 20:26:47
我相信你担心的情况是有一个失败的写入驱动器没有报告。这是一个驱动器的关键故障,因此制造商努力确保它永远不会发生。存储堆栈建立在终端存储设备同时报告读和写错误的假设之上。
我见过一些专家系统在写完后立即进行读取,以确保数据确实是虚构的,但在过去的10年里没有。
要回答您的问题,两种RAID都不能比其他RAID更好地处理所述错误。
它们的不同之处在于处理设备报告的写入错误。R5爬行以特定于供应商的方式进行;它可以使用奇偶计算重新提交最近的写。对于R1,没有返回写错误的镜像对可以被认为是正确的,并且将一个块从好成员复制到坏成员。
发布于 2011-09-09 22:54:39
除非RAID供应商正在执行某种校验和过程,否则两者都不能记录写入错误。RAID是为了防止磁盘故障。在RAID 5中,当磁盘被替换时,奇偶校验信息被用于重建丢失的数据。在RAID 10中,当磁盘被替换时,从伙伴磁盘复制数据。
至于RAID 10是否能够支持更多的磁盘故障,则取决于哪个磁盘第二次出现故障。RAID 10基本上是一堆RAID 1阵列的条带。如果第二个失败的磁盘是失败的第一个磁盘的合作伙伴(如果第一个磁盘由于数据热点而失败,这是可能的),那么当第二个磁盘由于条带现在被破坏而失败时,您将丢失所有的数据。在RAID 5中,任何磁盘都会失败,因为第二个磁盘丢失了数组。
在这两种情况下,对磁带的备份对于任何你不能放松的东西都是强制性的。
https://serverfault.com/questions/309980
复制相似问题