Back to home page

OSCL-LXR

 
 

    


0001 ===================================
0002 pNFS block layout server user guide
0003 ===================================
0004 
0005 The Linux NFS server now supports the pNFS block layout extension.  In this
0006 case the NFS server acts as Metadata Server (MDS) for pNFS, which in addition
0007 to handling all the metadata access to the NFS export also hands out layouts
0008 to the clients to directly access the underlying block devices that are
0009 shared with the client.
0010 
0011 To use pNFS block layouts with the Linux NFS server the exported file
0012 system needs to support the pNFS block layouts (currently just XFS), and the
0013 file system must sit on shared storage (typically iSCSI) that is accessible
0014 to the clients in addition to the MDS.  As of now the file system needs to
0015 sit directly on the exported volume, striping or concatenation of
0016 volumes on the MDS and clients is not supported yet.
0017 
0018 On the server, pNFS block volume support is automatically if the file system
0019 support it.  On the client make sure the kernel has the CONFIG_PNFS_BLOCK
0020 option enabled, the blkmapd daemon from nfs-utils is running, and the
0021 file system is mounted using the NFSv4.1 protocol version (mount -o vers=4.1).
0022 
0023 If the nfsd server needs to fence a non-responding client it calls
0024 /sbin/nfsd-recall-failed with the first argument set to the IP address of
0025 the client, and the second argument set to the device node without the /dev
0026 prefix for the file system to be fenced. Below is an example file that shows
0027 how to translate the device into a serial number from SCSI EVPD 0x80::
0028 
0029         cat > /sbin/nfsd-recall-failed << EOF
0030 
0031 .. code-block:: sh
0032 
0033         #!/bin/sh
0034 
0035         CLIENT="$1"
0036         DEV="/dev/$2"
0037         EVPD=`sg_inq --page=0x80 ${DEV} | \
0038                 grep "Unit serial number:" | \
0039                 awk -F ': ' '{print $2}'`
0040 
0041         echo "fencing client ${CLIENT} serial ${EVPD}" >> /var/log/pnfsd-fence.log
0042         EOF