为什么RAID控制器不能模仿URE上的驱动器控制器动作?


1

有一个事实:URE将RAID阵列的整个成员视为损坏,但是URE在阵列外部不将整个驱动器视为损坏。 造成这种情况的技术差异是什么?它们在操作系统级别的显示方式相似,因此必须低于操作系统和格式。

据我了解,当RAID 5的单个成员发生故障时,RAID控制器开始通过将其他值与奇偶校验值进行比较以在新磁盘上写入正确的值来重建被替换的磁盘。当URE发生时,“它”通过“读取错误”感测到“损坏的数据”,“它”无法纠正“读取错误”,并且它停止重建并将第二个成员标记为错误。如果您具有单个冗余,则将使该阵列不可用。

为什么在遇到URE时ENTIRE数组不可用?为什么不只是那条信息呢? 似乎可以很容易地指出阵列中的位置,检查文件表,并列出损坏的文件,以便可以从备份将损坏的文件重新添加到阵列中。

例如,在单个磁盘中,驱动器控制器将扇区标记为坏并继续前进;驱动器控制器不会将整个驱动器和其中的分区标记为“坏”。为什么RAID控制器不能模仿它并得到相同或相似的结果?

另外,可能与背景相关的第二个问题是URE是“硬错误”,其中从同一扇区的每次读取均失败(与拼版相关),或者一次发生的“软读取”错误(与数据传输相关),但是拼盘还不错吗?如果是后者,那就引出了一个问题,为什么不只是再次尝试读取?还是前者?

为什么RAID控制器不能模仿URE上的驱动器控制器动作?

TL;博士

这个问题实际上是一个相同的问题,但是咆哮者似乎把整个话题的答案和语气横摆了。“ RAID的目标是在磁盘死后使文件系统保持可用。而不是替换备份以确保重建成功。” “在读取要从其构建的源时发生不可恢复的读取错误,因此无法从该损坏的源中正确重建阵列。” 不要回答这个问题。

这里没有怨言。RAID控制器“看到”事物的方式与必须引起这种行为的单个驱动器相比,必须有一些根本的技术差异。那技术上有什么区别? 我可以从逻辑上回答自己的问题;RAID控制器将阵列视为单个单元,驱动器在该单元中根据各个扇区来考虑事物。但是似乎可以通过类似于单个磁盘执行操作的方式来解决此问题,并允许该操作再次可用,因此我必须丢失某些内容。

Spiceworks的这一线索暗示着UREs确实存在问题,但令人费解。线程中有很多链接可以遵循。


正确的RAID控制器绝不会因为遇到不可恢复的读取错误而踢驱动器。您的问题是基于经验还是假设?
Twisty Impersonator

@TwistyImpersonator“假设”。关于URE的文章和报道很多,由于“某些”原因,RAID 5阵列将无法使用。因此,由于URE,广为人知的做法远离了RAID 5。但是我总是很开放,我可能会误会!
达蒙

很公平。RAID控制器因遇到“一个”不可纠正错误而踢出驱动器的最常见原因是驱动器没有RAID友好固件。在这种情况下,驱动器尝试纠正错误,可能需要花费30秒的时间来纠正错误,在此期间,RAID控制器(期望报告此类错误,但驱动器未修复)将在驱动器上“放弃”。并从阵列中将其踢出,并认为整个装置都将发生故障。
Twisty Impersonator

链接问题所依据的一个或两个较可靠的来源会很有帮助。
Twisty Impersonator

@TwistyImpersonator添加到问题的链接。
达蒙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.