On 11/04/19 23:56, Eyal Lebedinsky wrote: > > So --grow can operate on a degraded array, creating a smaller > non-degraded array? It should be able to - there's no reason why not. > > While we discuss --grow, how much is written to the --backup-file? > 1 Is this only some king of intent/progress log? No. IF you have a backup file, it's absolutely necessary. Think of an in-place mem-move - what you must NOT do is overwrite data you haven't moved. Same thing applies here. The backup file stores data that is "in flight". HOWEVER. Recent versions of mdadm don't use a backup file except maybe in exceptional circumstances. > 2 Does it hold a small portion, only written initially to make room > for the reshape to start? > 3 Will the full 20TB of data pass through it? > I hope the 3rd option is not the case as it will put a stain on this > file and slow the reshape. > Being a temporary system, root fs is on a 200GB (very old) disk and > writing 100 times its capacity > is a worry. Any grow operation on a recent array does the equivalent of a memmove. The array always allocates more space than is used to store data, so the grow operation checks where this free space is. If it's below the current array it will read the first stripe, move it down, and rewrite it in the new configuration, then the second stripe, then the third ... If the space is above, it will start with the last stripe and move it up... So a grow will always rewrite pretty much the entire disk, but only do it once. You must have read the raid wiki? It should all be explained there, hopefully reasonably clearly. If you think anything's not clear, let me know ... Cheers, Wol