我有一个由两个物理 SSD 组成的 RAID 1 阵列。据我了解,RAID 1 无法纠正一个磁盘与另一个磁盘相矛盾的读取差异。鉴于无法纠正,服务器或控制器是否会尝试检测矛盾?如果检测到它们,它将如何处理差异?如果确实存在差异,第一个报告的磁盘是否占主导地位?例如,如果在某个位置 /dev/sg0 读取一个字节为 ,0xff
而在同一位置 /dev/sg1 读取该字节为0xfe
,假设 /dev/sg0 是第一个报告的,控制器是否会假设该值为0xff
?
我正在使用 Ubuntu 和 SAS 控制器来控制一对 SATA SSD。
答案1
磁盘已经内置了错误检测功能。典型的 RAID 1 实现将选择一个磁盘进行读取,只有当第一个磁盘报告错误时才从另一个磁盘读取。
通常,可以定期扫描 RAID 阵列。在此操作期间,将比较两个磁盘。主要目的是检测任何坏扇区并用另一个磁盘上的数据重写它们。但通常也会检测到不匹配的情况。