March 18, 201610 yr I've used 5.x but haven't upgraded to 6 yet. Been busy. I don't remember how 5 handled bad sectors either. Another server I have uses a different product for software RAID and I've had issues with it. It's similar to UnRAID in that it has a drive dedicated to parity and the data drive are not striped but have a filesystem on them so they can be read outside the array. Files have been disappearing because a drive will get read errors and Windows would flag those sectors as bad and the data corruption would get copied to parity. How did UnRAID 5 handle a situation like this and is it any different now with 6 and BTRFS?
March 18, 201610 yr There is no change in how unRAID 6 handles write errors or read errors from previous versions, regardless of the filesystem used on the data drives -- RFS, XFS, or BTRFS. The way that BTRFS is deployed on data drives is that it only has redundancy in the meta-data about the files. It does not have redundancy on the content of the files themselves on data drives. There may be redundancy applied to the cache drive(s) if you have multiple cache drives setup in a BTRFS cache pool.
March 21, 201610 yr Author Ok but I still cannot recall how it is handled. If there is a read or write error on the disc, does the disk get dropped or does it just get noted and ignored? If there is a corruption on a drive, how does it know which is correct, the data or the parity?
March 21, 201610 yr Ok but I still cannot recall how it is handled. If there is a read or write error on the disc, does the disk get dropped or does it just get noted and ignored? If there is a corruption on a drive, how does it know which is correct, the data or the parity? If there is a write error, unRAID disables the disk and any attempts to access that disk after it is disabled use the emulated disk instead. The emulated disk reads all the other disks plus parity to calculate the disks data instead of reading the disk. If you write to the emulated disk, it reads the emulated disk, calculates the change to parity and writes parity. The actual disabled disk is not read or written. I think if there is an unrecoverable read error, unRAID will calculate the data from the other disks plus parity and then attempt to write it back to the disk. If that write fails the disk is disabled, then see above.
Archived
This topic is now archived and is closed to further replies.