On Wednesday July 13, jdc@uwo.ca wrote:
Question for the list: if I'm doing a long sequential write, naively
each parity block will get recalculated and rewritten several times,
once for each non-parity block in the stripe. Does the write-caching
that the kernel does mean that each parity block will only get written
once?
Raid5 does the best it can. It delays write requests as long as
possible, and then when it must do the write, it writes every other
block in the stripe that it has been asked to write, so only one
parity update is needed for all those blocks.
My tests suggest that for long sequential writes (Without syncs) this
achieves full-stripe writes most of the time.
NeilBrown