Distributed File Systems
There are a number of issues to deal with here.
Performance is always an issue; there is a tradeoff between performance and the semantics of file operations (e.g., for shared files).
Caching of file blocks is crucial in any file system, distributed or otherwise. As memories get larger, most read requests can be serviced out of file buffer cache (local memory). Maintaining coherency of those caches is a crucial design issue.
Newer systems are dealing with issues such as disconnected file operation for mobile computers.