有一个事实:URE 会导致 RAID 阵列的整个成员变为坏盘,但是 URE 不会使阵列外的整个驱动器变为坏盘。 导致这种情况的技术差异是什么?它们在操作系统级别上以类似的方式显示,因此一定是操作系统和格式之下的某种东西。
据我了解,当 RAID 5 的单个成员发生故障时,RAID 控制器会开始重建替换的磁盘,方法是比较其他值以及奇偶校验,以在新磁盘上写入正确的值。当发生 URE 时,“它”通过“读取错误”感知到“损坏的数据”,“它”无法纠正“读取错误”,它会停止重建并将第二个成员标记为坏的。如果您有单个冗余,这会导致阵列不可用。
为什么遇到 URE 时整个阵列都无法使用?为什么不只是那条信息? 似乎可以轻松记录阵列中的位置、检查文件表并列出损坏的文件,以便可以从备份中将损坏的文件重新添加到阵列中。
例如,在单个磁盘中,驱动器控制器只会将该扇区标记为坏扇区并继续前进;驱动器控制器不会将整个驱动器及其中的分区标记为“坏扇区”。为什么 RAID 控制器不能模仿这一点并得到相同或类似的结果?
另外,可能与背景相关的第二个问题是 URE 是“硬错误”,即每次从同一扇区读取都会失败(与盘片有关),还是“软读取”错误,只发生一次(与数据传输有关),但盘片上的数据仍然完好无损?如果是后者,那么就会产生一个问题:为什么不尝试再次读取?还是前者?
为什么 RAID 控制器不能模拟驱动器控制器在 URE 上的操作?
太长了
这问题实际上是同一个问题,但咆哮似乎把整个帖子的答案和基调都抛在一边。“RAID 的目标是在磁盘损坏后保持文件系统可用。而不是替换备份或保证成功重建。”和“读取您正在构建的源时出现无法恢复的读取错误,则无法从损坏的源正确重建阵列。”不要回答这个问题。
这里不想抱怨。RAID 控制器“查看”事物的方式与单个驱动器相比肯定存在一些基本的技术差异,这必定会导致这种行为;这种技术差异是什么? 我可以逻辑地回答我自己的问题;RAID 控制器将阵列视为单个单元,而驱动器则以单个扇区的形式考虑事物。但似乎可以采用类似于单个磁盘的工作方式来实现此解决方法,并允许事物再次可用,所以我一定是遗漏了什么。
Spiceworks 上的这个帖子暗示 UREs 确实存在问题,但问题很复杂。不过,帖子中有很多链接可供关注。