aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/nfs
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems/nfs')
-rw-r--r--Documentation/filesystems/nfs/nfs41-server.txt23
-rw-r--r--Documentation/filesystems/nfs/pnfs-block-server.txt37
2 files changed, 45 insertions, 15 deletions
diff --git a/Documentation/filesystems/nfs/nfs41-server.txt b/Documentation/filesystems/nfs/nfs41-server.txt
index c49cd7e796e7..682a59fabe3f 100644
--- a/Documentation/filesystems/nfs/nfs41-server.txt
+++ b/Documentation/filesystems/nfs/nfs41-server.txt
@@ -24,11 +24,6 @@ focuses on the mandatory-to-implement NFSv4.1 Sessions, providing
24"exactly once" semantics and better control and throttling of the 24"exactly once" semantics and better control and throttling of the
25resources allocated for each client. 25resources allocated for each client.
26 26
27Other NFSv4.1 features, Parallel NFS operations in particular,
28are still under development out of tree.
29See http://wiki.linux-nfs.org/wiki/index.php/PNFS_prototype_design
30for more information.
31
32The table below, taken from the NFSv4.1 document, lists 27The table below, taken from the NFSv4.1 document, lists
33the operations that are mandatory to implement (REQ), optional 28the operations that are mandatory to implement (REQ), optional
34(OPT), and NFSv4.0 operations that are required not to implement (MNI) 29(OPT), and NFSv4.0 operations that are required not to implement (MNI)
@@ -43,9 +38,7 @@ The OPTIONAL features identified and their abbreviations are as follows:
43The following abbreviations indicate the linux server implementation status. 38The following abbreviations indicate the linux server implementation status.
44 I Implemented NFSv4.1 operations. 39 I Implemented NFSv4.1 operations.
45 NS Not Supported. 40 NS Not Supported.
46 NS* unimplemented optional feature. 41 NS* Unimplemented optional feature.
47 P pNFS features implemented out of tree.
48 PNS pNFS features that are not supported yet (out of tree).
49 42
50Operations 43Operations
51 44
@@ -70,13 +63,13 @@ I | DESTROY_SESSION | REQ | | Section 18.37 |
70I | EXCHANGE_ID | REQ | | Section 18.35 | 63I | EXCHANGE_ID | REQ | | Section 18.35 |
71I | FREE_STATEID | REQ | | Section 18.38 | 64I | FREE_STATEID | REQ | | Section 18.38 |
72 | GETATTR | REQ | | Section 18.7 | 65 | GETATTR | REQ | | Section 18.7 |
73P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 | 66I | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 |
74P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 | 67NS*| GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 |
75 | GETFH | REQ | | Section 18.8 | 68 | GETFH | REQ | | Section 18.8 |
76NS*| GET_DIR_DELEGATION | OPT | DDELG (REQ) | Section 18.39 | 69NS*| GET_DIR_DELEGATION | OPT | DDELG (REQ) | Section 18.39 |
77P | LAYOUTCOMMIT | OPT | pNFS (REQ) | Section 18.42 | 70I | LAYOUTCOMMIT | OPT | pNFS (REQ) | Section 18.42 |
78P | LAYOUTGET | OPT | pNFS (REQ) | Section 18.43 | 71I | LAYOUTGET | OPT | pNFS (REQ) | Section 18.43 |
79P | LAYOUTRETURN | OPT | pNFS (REQ) | Section 18.44 | 72I | LAYOUTRETURN | OPT | pNFS (REQ) | Section 18.44 |
80 | LINK | OPT | | Section 18.9 | 73 | LINK | OPT | | Section 18.9 |
81 | LOCK | REQ | | Section 18.10 | 74 | LOCK | REQ | | Section 18.10 |
82 | LOCKT | REQ | | Section 18.11 | 75 | LOCKT | REQ | | Section 18.11 |
@@ -122,9 +115,9 @@ Callback Operations
122 | | MNI | or OPT) | | 115 | | MNI | or OPT) | |
123 +-------------------------+-----------+-------------+---------------+ 116 +-------------------------+-----------+-------------+---------------+
124 | CB_GETATTR | OPT | FDELG (REQ) | Section 20.1 | 117 | CB_GETATTR | OPT | FDELG (REQ) | Section 20.1 |
125P | CB_LAYOUTRECALL | OPT | pNFS (REQ) | Section 20.3 | 118I | CB_LAYOUTRECALL | OPT | pNFS (REQ) | Section 20.3 |
126NS*| CB_NOTIFY | OPT | DDELG (REQ) | Section 20.4 | 119NS*| CB_NOTIFY | OPT | DDELG (REQ) | Section 20.4 |
127P | CB_NOTIFY_DEVICEID | OPT | pNFS (OPT) | Section 20.12 | 120NS*| CB_NOTIFY_DEVICEID | OPT | pNFS (OPT) | Section 20.12 |
128NS*| CB_NOTIFY_LOCK | OPT | | Section 20.11 | 121NS*| CB_NOTIFY_LOCK | OPT | | Section 20.11 |
129NS*| CB_PUSH_DELEG | OPT | FDELG (OPT) | Section 20.5 | 122NS*| CB_PUSH_DELEG | OPT | FDELG (OPT) | Section 20.5 |
130 | CB_RECALL | OPT | FDELG, | Section 20.2 | 123 | CB_RECALL | OPT | FDELG, | Section 20.2 |
diff --git a/Documentation/filesystems/nfs/pnfs-block-server.txt b/Documentation/filesystems/nfs/pnfs-block-server.txt
new file mode 100644
index 000000000000..2143673cf154
--- /dev/null
+++ b/Documentation/filesystems/nfs/pnfs-block-server.txt
@@ -0,0 +1,37 @@
1pNFS block layout server user guide
2
3The Linux NFS server now supports the pNFS block layout extension. In this
4case the NFS server acts as Metadata Server (MDS) for pNFS, which in addition
5to handling all the metadata access to the NFS export also hands out layouts
6to the clients to directly access the underlying block devices that are
7shared with the client.
8
9To use pNFS block layouts with with the Linux NFS server the exported file
10system needs to support the pNFS block layouts (currently just XFS), and the
11file system must sit on shared storage (typically iSCSI) that is accessible
12to the clients in addition to the MDS. As of now the file system needs to
13sit directly on the exported volume, striping or concatenation of
14volumes on the MDS and clients is not supported yet.
15
16On the server, pNFS block volume support is automatically if the file system
17support it. On the client make sure the kernel has the CONFIG_PNFS_BLOCK
18option enabled, the blkmapd daemon from nfs-utils is running, and the
19file system is mounted using the NFSv4.1 protocol version (mount -o vers=4.1).
20
21If the nfsd server needs to fence a non-responding client it calls
22/sbin/nfsd-recall-failed with the first argument set to the IP address of
23the client, and the second argument set to the device node without the /dev
24prefix for the file system to be fenced. Below is an example file that shows
25how to translate the device into a serial number from SCSI EVPD 0x80:
26
27cat > /sbin/nfsd-recall-failed << EOF
28#!/bin/sh
29
30CLIENT="$1"
31DEV="/dev/$2"
32EVPD=`sg_inq --page=0x80 ${DEV} | \
33 grep "Unit serial number:" | \
34 awk -F ': ' '{print $2}'`
35
36echo "fencing client ${CLIENT} serial ${EVPD}" >> /var/log/pnfsd-fence.log
37EOF