Suppose you have two RAID arrays, one with N disks and one with N+1 disks. The array with N disks was formatted as a RAID 5 and left alone, while the other array was formatted as a RAID 6 before one of its disks was removed. Now both arrays have N disks, N-1 disks worth of usable storage, and can survive the loss of one (more) disk.
Besides whatever metadata the RAID controller uses, are there any differences between these two arrays (in terms of data layout, performance, and reliability)? Could I convert a RAID 6 array with one disk missing to a RAID 5 of one less expected disk with minimal "reshaping"/"rewriting"?
I know that there are different "policies"/"alignments" within RAID 5 and RAID 6, but that's probably beyond the scope of this question. Perhaps it should be assumed that both arrays use a policy that is common to both RAID levels.
Yes. RAID5 uses a single, rotating parity while RAID6 uses two. You may be visualizing dedicated parity disks, but they're in fact rotating.
RAID5 should be rather straight-forward:
With RAID6, imagine the last disk missing:
diagrams courtesy of Wikipedia [*1]
The layouts obviously differ, and a degraded RAID6 requires significant extra fetching and recalculation to compensate for the missing disk in contrast to an intact RAID5 array.
For instance, instead of reading B3 directly, any three chunks out of [B1, B2, Bp, Bq] need to be read to reconstruct B3 - note that this data reconstruction is only temporary and needs to be done each time B3 is accessed. Also note that this 'read amplification' for random reads increases with the number of disks. For longer, sequential reads, the other chunks would have to be read anyway.
The degraded RAID6 array is expected to perform much worse, depending on the workload and the RAID controller implementation and caching. RAID implementations tend to be optimized for normal operation and stability, so a degraded array may perform below expectations, even with a large cache.
Yes, in theory, since all data can be reconstructed. In practice that depends on the capabilities of the RAID controller at hand. Since it requires a special migration algorithm, implementation is not too likely. Personally, I don't think I've ever seen that option but then again I haven't been looking for it either.
[*1] You should note that there are different ways to map the data in RAID arrays. The above diagrams show the simplest, not optimized schemes. Other schemes would optimize specific workloads and a RAID5 scheme for sequential read access could be