I have an NFSv3 server and around 15 clients. I am looking for pros and cons enabling async
on the server side. I have read about it, but it is still a bit unclear to me. I know it can lead to data corruption, if the server crashes in the middle of write operation. However, I also read that the client stores a cache of that same operation and can recover it, if needed. My questions are:
- What exactly would happen if my server crashes (i.e. would it lose pending-to-be-written data, would it corrupt the underlying filesystem, etc)?;
- What would happen if both the server and the client crash at the same time (i.e. power failure/fault and UPS failure to handle it)?;
- What if the server crashes, but I have RAID BBU. Would the server recover safely?;
- Is there any way to detect such a corruption (something similar to
fsck
maybe)?; - What if the server shutdown gracefully by UPS? Will I have chances of data corruption then?;
- What do you guys use -
sync
orasync
?
All machines are Ubuntu OS 10.04.
I was trying to find similar question here to no available. I have read the NFS Home Page and took a quick look at Managing NFS and NIS, 2nd Edition book.