Re: NFS Mount Option 'nofsc'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Feb 8, 2012, at 2:52 PM, Derek McEachern wrote:

> 
> 
> -------- Original Message --------
> Subject: Re: NFS Mount Option 'nofsc'
> From: Chuck Lever <chuck.lever@xxxxxxxxxx>
> To: Derek McEachern <derekm@xxxxxx>
> CC: "Myklebust, Trond" <Trond.Myklebust@xxxxxxxxxx>, "linux-nfs@xxxxxxxxxxxxxxx" <linux-nfs@xxxxxxxxxxxxxxx>
> Date: Wednesday, February 08, 2012 12:15:37 PM
> 
>>> So then what exact functionality if provided by the 'nofsc' option? It would seem to me from a write perspective that between noac and the sync option it is pretty close to forcedirectio.
>>> 
>>> From the man page describing sync "any system call that writes data to files on that mount point causes that data to be flushed to the server before the system call returns control to user  space."
>>> 
>>> Maybe I've answered one of my questions as flushing the data to the server before returning to user space is really what I'm after. The userspace app should be blocked until the write has been acknowledged by the server and if the server is an NFS appliance then I don't necessarily care if it has committed the data to disk as I expect it to managed its cache properly.
>>> 
>>> Though I still want to understand what 'nofsc' is doing.
>> "nofsc" disables file caching on the client's local disk.  It has nothing to do with direct I/O.
>> 
> 
> If 'nofsc' disables file caching on the client's local disk does that mean that write from userspace could go to kernel memory, then potentially to client's local disk, before being committed over network to the nfs server?
> 
> This seems really odd. What would be the use case for this?

With "fsc", writes are indeed slower, but reads of a very large file that rarely changes are on average much better.  If a file is significantly larger than a client's page cache, a client can cache that file on its local disk, and get local read speeds instead of going over the wire.

Additionally if multiple clients have to access the same large file, it reduces the load on the storage server if they have their own local copies of that file, since the file is too large for the clients to cache in their page cache.  This also has the benefit of keeping the file data cached across client reboots.

This feature is an optimization for HPC workloads, where a large number of clients access very large read-mostly datasets on a handful of storage servers.  The clients' local fsc absorbs much of the aggregate read workload, allowing storage servers to scale to a larger number of clients.

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux