From 4c176e18d3a79c7a71e99d9e9e6a1df3cae2ed9d Mon Sep 17 00:00:00 2001 From: Rick Macklem Date: Thu, 14 Jun 2018 20:55:33 +0000 Subject: [PATCH] Document the "-p" and "-m" options added to nfsd.c by r335172. This is a content change. --- usr.sbin/nfsd/nfsd.8 | 80 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/usr.sbin/nfsd/nfsd.8 b/usr.sbin/nfsd/nfsd.8 index c09b5d13daf8..e139dc0d6c51 100644 --- a/usr.sbin/nfsd/nfsd.8 +++ b/usr.sbin/nfsd/nfsd.8 @@ -28,7 +28,7 @@ .\" @(#)nfsd.8 8.4 (Berkeley) 3/29/95 .\" $FreeBSD$ .\" -.Dd April 25, 2015 +.Dd May 31, 2018 .Dt NFSD 8 .Os .Sh NAME @@ -41,6 +41,8 @@ server .Op Fl ardute .Op Fl n Ar num_servers .Op Fl h Ar bindip +.Op Fl p Ar pnfs_setup +.Op Fl m Ar mirror_level .Op Fl Fl maxthreads Ar max_threads .Op Fl Fl minthreads Ar min_threads .Sh DESCRIPTION @@ -103,6 +105,64 @@ It may also be specified in addition to any options given. Note that NFS/UDP does not operate properly when bound to the wildcard IP address whether you use -a or do not use -h. +.It Fl p Ar pnfs_setup +Enables pNFS support in the server and specifies the information that the +daemon needs to start it. +This option can only be used on one server and specifies that this server +will be the MetaData Server (MDS) for the pNFS service. +This can only be done if there is at least one FreeBSD system configured +as a Data Server (DS) for it to use. +.Pp +The +.Ar pnfs_setup +string is a set of fields separated by ',' characters: +.Bl -tag -width Ds +Each of these fields specifies one Data Server. +It consists of a server hostname, followed by a ':' +and the directory path where the DS's data storage file system is mounted on +this MDS server. +At this time, only IPv4 addresses are supported by the interface to the kernel, +so the +.Dq server hostname +must resolve to an IPv4 address and support mounts on that address. +This needs to be extended to support IPv6 addresses in the near future. +The DS storage file systems must be mounted on this system before the +.Nm +is started with this option specified. +For example: +.sp +nfsv4-data0:/data0,nfsv4-data1:/data1 +.sp +Would specify two DS servers called nfsv4-data0 and nfsv4-data1 that comprise +the data storage component of the pNFS service. +The directories +.Dq /data0 +and +.Dq /data1 +are where the data storage servers exported +storage directories are mounted on this system (which will act as the MDS). +.El +.It Fl m Ar mirror_level +This option is only meaningful when used with the +.Fl p +option. +It specifies the +.Dq mirror_level , +which defines how many of the DSs will +have a copy of a file's data storage file. +The default of one implies no mirroring of data storage files on the DSs. +The +.Dq mirror_level +would normally be set to 2 to enable mirroring, but +can be as high as NFSDEV_MAXMIRRORS. +.Pp +If mirroring is enabled, the server must use the Flexible File +layout. +If mirroring is not enabled, the server will use the File layout +by default, but this default can be changed to the Flexible File layout if the +.Xr sysctl 1 +vfs.nfsd.default_flexfile +is set non-zero. .It Fl t Serve .Tn TCP NFS @@ -135,9 +195,11 @@ server specification; see .%T "Network File System Protocol Specification" , RFC1094, .%T "NFS: Network File System Version 3 Protocol Specification" , -RFC1813 and +RFC1813, .%T "Network File System (NFS) Version 4 Protocol" , -RFC3530. +RFC3530 and +.%T "Network File System (NFS) Version 4 Minor Version 1 Protocol" , +RFC5661. .Pp If .Nm @@ -213,6 +275,7 @@ just do a .Xr kldload 2 , .Xr nfssvc 2 , .Xr nfsv4 4 , +.Xr pnfs 4 , .Xr exports 5 , .Xr stablerestart 5 , .Xr gssd 8 , @@ -238,3 +301,14 @@ you must kill and then restart it, after the .Xr gssd 8 is running. +.Pp +If mirroring is enabled via the +.Fl m +option and there are Linux clients doing NFSv4.1 mounts, those clients +need to be patched to support the +.Dq tightly coupled +variant of +the Flexible File layout or the +.Xr sysctl 1 +vfs.nfsd.flexlinuxhack +must be set to one on the MDS as a workaround.