RAID 5检测到写入错误?

我曾经看到,由于RAID 10提供了更好的性能和更好的恢复硬件故障的可能性,所以人们推荐使用RAID 10作为数据库的RAID 5。

这使我感到困惑,因为我认为使用RAID 5的目的更多的是允许检测和纠正写入错误以确保数据的完整性。 我的理解是,RAID 10不能从写入错误中恢复。 也就是说,如果有一个错误,它将是镜像驱动器中的位相反,因此不可能知道哪个位是错误的位,哪个位是正确的。

然而,我试图用search“写入错误”的search引擎5与突袭10,看看是否有人覆盖这一点,并空手而来。

我把这一切都在我的脑海?

RAID 5arrays是否可以使用3个奇偶校验位检测并从写入错误中恢复? 或者,直到很久以后读取数据并且奇偶校验指示错误,检测才会发生?

如果RAID 10arrays有写入错误,是否能够确定哪个镜像位是错误的? 也就是说,驱动器指示该特定位的读取失败,还是只是看到比特不匹配,并且由于没有奇偶校验,无法确定哪个是错误的?

我看到一些关于读取错误触发重build的讨论。 写错误不能被检测到,直到稍后数据被读取? 换句话说,写错误是否会发生,但错误的数据只是坐在那里,直到可能很久以后才读取数据并且奇偶校验表明错误。 这就是为什么在重build过程中您可能会有额外的读取错误的风险,因为您可能会写入大量错误的数据,但直到下一次读取数据才会检测到错误。

我想澄清一下,磁带备份不能解决上述问题。 如果您的数据完整性非常重要,而且您无法检测写入错误,那么如果您备份的数据已经有错误,那么世界上的所有磁带备份都无法帮助您。

我相信你担心的是写驱动器没有报告失败的情况 。 这是一个驱动器的关键故障,所以制造商努力确保它永远不会发生。 存储栈build立在假设terminal存储设备将报告读取和写入错误的基础上。

我看到一些专家系统在写入之后立即执行读取操作,以确保数据真正得到处理,而不是在过去的10年。

要回答你的问题,两个RAID都不会比另一个更好地处理声明的错误。

他们不同的地方是处理设备报告的写入错误。 R5以供应商特定的方式响应; 它可以重新进行最近的写入和奇偶计算。 使用R1,没有返回写错误的镜像对可以被认为是正确的,并且一个块从好成员复制到坏成员。

除非RAID供应商正在进行某种校验和处理,否则都不能从写入错误中logging。 RAID是为了防止磁盘发生故障。 在更换磁盘的RAID 5中,奇偶校验信息用于重build丢失的数据。 在更换磁盘的RAID 10中,数据从伙伴磁盘复制。

至于RAID 10是否可以支持更多的磁盘故障,则可以根据哪个磁盘故障第二。 RAID 10基本上是一堆RAID 1arrays条纹在一起。 如果第二个失败的磁盘是第一个失败的磁盘(如果第一个磁盘由于数据热点而失败,那么这个失败是可能的),那么当第二个磁盘失败时,你将丢失所有的数据,因为条带现在被破坏。 哪里有RAID 5是任何磁盘失败的第二个磁盘,你已经失去arrays。

在任何情况下,备份到磁带是强制性的,任何你不能松动的东西。