On 20/12/2021 18:52, Mark Knecht wrote:
The thing is that the ZIL is only used for synchronous writes and I
don't know whether anything I'm doing to back up my user machines,
which currently is just rsync commands, is synchronous or could be
made synchronous, and I do not know if the NFS writes from the R_Pi
are synchronous or could be made so.

"Synchronous writes" basically means "in the order they were written".

And it might also mean blocking writes, which is why you don't want it on spinning rust. But it also means that it is (almost) guaranteed to get to permanent storage, which is why you do want it for mail, databases, etc.

Your typical (asynchronous) app calls "write", chucks it at the kernel, and forgets about it. Hence "asynchronous" - "without regard to time".

Your app which has switched on synchronicity will lock until the write has completed.

Your understanding about the ZIL sounds about right - whatever you throw at the NAS will be saved to the ZIL before it gets written properly later. Your apps (rsync etc) don't need to worry, the kernel will cache stuff, flood it through to the ZIL, and the NAS will take it from there.

The only thing I'd worry about is how "bursty" is the data being chucked at the NAS. A backup is likely to be a stream that could easily overwhelm the buffers, and that's not good. Do you have an rsync daemon on the NAS? The more you can make the writes smaller and bursty the better, and running an rsync daemon is one of the ways.

Cheers,
Wol

Reply via email to