Slide 0

NFS4: Now we're really moving

Martin Pool

VA Linux Systems

Slide 1

What is NFS?

- de-facto standard for file sharing on Unix/Linux/...

- main competitor is Microsoft CIFS/SMB

- remote filesystems appear as local

- NFS4 standard released Jan 2001

Slide 2

Earlier Problems:

- "NFS server not responding"

- Not very secure

- Needs centralized control to work well

- Ho-hum Linux support

- Hard to perform well on stock hardware

Slide 3

Why use NFS at all?

- Local disks are cheap and large

- Reputation for insecurity

- Files can be published/updated over the web

Slide 4

Arguments for a network filesystem:

- Simplify administration

- Buy storage appliances, rather than dumb disks

- HTTP is a very restricted protocol

- The network looks very different to the local disk

Slide 5

Ideas from NFS3:

- Built on async remote procedures

- As transparent as possible, but no more so

- Relatively small implementation

- Minimum disruption from client or server crashes

Slide 6

Improvments from NFS3:

- Run over TCP by default

- Just one connection on predictable port,
integrating locking and mounting

- Many throughput and latency improvments

- Doesn't mandate a Unix server

Slide 7

Ideas from SMB:

- Chained commands to reduce latency

- Support for MS semantics (SHARE modes,

- Unicode support (but done right!)

- OpLocks (aka Delegations)

Slide 8

Ideas NOT taken from SMB:

- Closed, proprietary protocol

- 39(!) byte header, complex and inconsistent formats

- Negotiated (aka complex) protocol encodings

- Kludges for back-compatibility

Slide 9


- Negotiated RPC security: every request

- Connection-level security: run over SSH, IPsec, ...

- Single predictable connection makes firewalling

- Access control lists

- Users identified by name, not uid

Slide 10


- The other barrier over the Internet

- Batch up operations into compounds

- Let TCP handle flow control

- Delegations

- Writes need not be synchronous

Slide 11


- Often, one client uses a file intensively

- Client can gain a delegation of that file

- Most operations then done on client

- Write back to server on request

Slide 12


- Client may locally cache files to disk

- Could even have proxy caches!

- Disconnected operation not supported yet

Slide 13


- Server can ask clients to migrate

- Filesystem replicas

- Orderly recall of delegations

Slide 14

File Attributes

- Available attributes may vary (e.g.
ctime, symlinks, archive bit)

- Bag of standard attributes

- Plus arbitrary named attributes

Slide 15

Challenges for Linux:

- Stable and fast implementations

- ACLs? Extended attributes?

- Support for non-volatile cache memory

- More scalable file systems

Slide 16

Open Implementations

- kernel client and server

- userspace client and server

Produced by PinPoint at Mon Jun 18 07:14:40 2001UTC