On 10/01/2015 12:20 AM, Neil Brown wrote:
Heinz Mauelshagen <heinzm@xxxxxxxxxx> writes:
BTW:
When you create a raid1/4/5/6/10 LVs _and_ never read what you have not
written,
"--nosync" can be used anyway in order to avoid the initial
resynchronization load
on the devices. Any data written in that case will update all
mirrors/raid redundancy data.
While this is true for RAID1 and RAID10, and (I think) for the current
implementation of RAID6, it is definitely not true for RAID4/5.
Thanks for the clarification.
I find that to be really bad situation.
For RAID4/5 a single-block write will be handled by reading
old-data/parity, subtracting the old data from the parity and adding the
new data, then writing out new data/parity.
Obviously for optimization reasons.
So if the parity was wrong before, it will be wrong afterwards.
So even overwriting complete stripes in raid4/5/(6)
would not ensure correct parity, thus always requiring
initial sync.
We should think about a solution to avoid it in lieu
of growing disk/array sizes.
Heinz
If the device that new data was written to then fails, the data on it is
lost.
So do this for RAID1/10 if you like, but not for other levels.
NeilBrown
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel