Delegating management of a file's resources to an NFS client

The NFS version 4 protocol enables an NFS Server to temporarily delegate management of a file's resources to an NFS Client. The key purpose of the delegation is to provide improved performance by eliminating communications with the NFS Server.

When a file’s management is delegated to an NFS Client, all file access requests can be managed locally by the NFS Client while the file is delegated.

Use the following NFS Server Site Attributes to control the activation of the delegation function:

DELEGATION/NODELEGATION
specifies whether or not the NFS server allows NFS Version 4 protocol file management delegation to NFS clients. The default setting is NODELEGATION.
A new Modify operator command, V4DELG=ON/OFF can be used to dynamically turn on or off NFS Version 4 protocol file management delegation to NFS clients.
  • When Modify operator command V4DELG=ON is specified, the server checks each client for a valid callback path. This will take some time. The server can only grant the delegation if a valid callback path exists between the server and the client.
  • When Modify operator command V4DELG=OFF is specified, any existing delegations continue until they are recalled by the NFS server due to a conflicting request, or returned by the NFS client. However, no new delegations are started.

File delegation is at the NFS Server’s discretion. When an NFS Client sends a file open request, the server determines whether to delegate the file or not. The NFS Client cannot assume that the file will be delegated.

When the client has not contacted the server for a lease time interval, the server can remove all delegations to the client.

If a local user or another client requests share reservations or access to the delegated file, the server will recall the delegated file.

The NFS Server may recall the delegation at any time. The NFS Client must then send any modified data buffers and attributes back to the server. It should also send any locally established file locks to the server so that those locks can be established on the NFS Server to maintain the Client’s lock status over those files.

When the delegation is granted to the client, the result is as follows:
  • Request for open Read share - Granted: Read delegation (READ Delegation)
  • Request for open Write share - Granted: Read and Write delegation (Write Delegation)

When the file is closed, the delegation returns back to the server.

When another application on the z/OS system requires access to the delegated file, the system must notify the NFS Server that the delegation is being recalled. The server must then recall the file from the delegated NFS Client(s). Any modified data buffers and file attributes must be updated, and any necessary file locks must be established before the recall can be completed. .The NFS server initiates a delegation recall during the following circumstances:
  • If the NFS server receives an NFS client access request for a file and this request is not compatible with existing client delegations for the file, then the existing delegations are recalled and access is granted to the interested clients in a non-delegated mode, on a normal file open priority order.
  • If an NFS Client does not respond to a recall request within a reasonable amount of time, the delegation is treated as having been successfully recalled from the standpoint of any other delegation requests. At that point, any subsequent file access operation requests from this client will fail.
  • When an NFS Client’s lease expires, the z/OS NFS Server recalls any outstanding delegations as part of the lease expiration process.
Note:
  1. Currently delegation is only supported for MVS data sets. zOS Unix file delegation is not provided.
  2. Only the AUTH_UNIX RPC flavor is supported for delegation.
  3. NFS V4 delegation reclaim after an NFS Client reboots (that is, Open claim type, CLAIM_DELEGATE_PREV) is not supported due to potential issues if the client reboots in close succession.