I have a RAID 1 array comprised of two physical SSDs. Under my understanding RAID 1 cannot correct a read discrepancy where one disk contradicts another. Given that it cannot be corrected does a server or controller even try to detect a contradiction? If it detects them what will it do with a discrepancy? If there is in fact a discrepancy is it the first disk to report that dominates? For example if at a certain location /dev/sg0 reads a byte as 0xff
and at the same location /dev/sg1 reads the byte as 0xfe
, and suppose if /dev/sg0 is the first to report, does the controller assume the value is 0xff
?
I am using Ubuntu and a SAS controller to the pair of SATA SSDs.
Disks already have error detection built in. A typical RAID 1 implementation will pick one disk to read from, reading from the other disk only if the first disk reports an error.
Typically, the RAID array can be scanned periodically. During this operation, both disks are compared. The primary purpose is to detect any bad sectors and rewrite them with data from the other disk. But a mismatch would typically be detected as well.