X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=README;h=e7588cfd9337257aef27a90471c0c6935e3bc990;hp=9dac65ea106c51ab2abc0ba3d672a59c8121e929;hb=3ef3dc8f1e87ba7a6eaa3c2a6965aff6c80ba414;hpb=23902fd9a92b121280d054d41b439f39a8ef3064 diff --git a/README b/README index 9dac65e..e7588cf 100644 --- a/README +++ b/README @@ -1,98 +1,165 @@ -This is the Linux NFS utility package version 0.1.3. It is based on -knfsd 1.4.7. +This is version 1.1.0 of nfs-utils, the Linux NFS utility package. -WARNING: The NFS servers in Linux 2.2 to 2.2.13 are not compatible with -other NFS client implemenations. If you plan to use Linux 2.2.x as an -NFS server for non-Linux NFS clients, you should get the Linux NFS -kernel from the Linux NFS CVS server: -1. Set the environment variable, CVS_RSH, to ssh. -2. Login to the Linux NFS CVS server: +0. PROJECT RESOURCES -# cvs -z 3 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs login +Home page: http://sourceforge.net/projects/nfs/ -without password if it is your first time. +To use the 'gss' support you must have kerberos-5 development +libraries installed. +Otherwise use "--disable-gss" -3. Check out the current Linux 2.2 NFS kernel: +To use nfsv4 support you need libevent and libnfsidmap development +libraries. They are available from + http://www.monkey.org/~provos/libevent/ + http://www.citi.umich.edu/projects/nfsv4/linux/libnfsidmap/ +Otherwise use --disable-nfsv4 -a. From the NFS V2 branch: -# cvs -z 3 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs co -r linux-2-2-nfsv2 linux-2.2 +1. COMPILING -b. From the main trunk: +Unpack the sources and run these commands: -# cvs -z 3 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs co linux-2.2 + # ./configure + # make -4. If you don't want to use the current NFS kernel, you can find out -for which kernels the NFS patch is available: +To install binaries and documenation, run this command: -# cd linux-2.2 -# cvs -z 9 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs status -v Makefile + # make install -Then generate the kernel patch: -# cvs -z 3 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs rdiff -ko -u -r linux-2-2-xx -r linux-2-2-xx-nfsv2-xxxxx linux-2.2 +2. COMPILING FROM GIT -If there is no NFS patch for the kernel you are interested in, you have -to make a patch closest to your kernel version and apply it by hand. +Getting nfs-utils for the first time: -There is a Linux NFS kernel source tree for Linux 2.3, linux-2.3, on -the Linux NFS CVS server. We will need all the help we can get. To -contribute to the Linux NFS project, please go to + git clone git://linux-nfs.org/nfs-utils -http://www.linuxnfs.sourceforge.org +Updating to the latest head after you've already got it. -You register yourself. Please send an email to -nfs-admin@linuxnfs.sourceforge.org with + git pull -1. Your user id on www.linuxnfs.sourceforge.org. -2. The area in NFS you'd like to work on. +Building requires that autotools be installed. To invoke them +simply -You will be notified when it is done. + sh autogen.sh -There is a Linux NFS mailing list at +Finally, build as usual as above. -http://lists.varesearch.com/lists/listinfo/nfs/ +3. DAEMON STARTUP ORDER -You can subscribe it and search the mailing list archive via a web -browser. +This nfs-utils packages does not provide any scripts for starting +various daemons as most distributions replace them with their own, so +any scripts we package would not get much testing. +Instead, we explain the dependencies involved in startup so that +scripts can be written to work correctly. -The nfs-utils package is available from the CVS server: +3.0 PREREQUISITES -# cvs -z 3 -d:pserver:anonymous@cvs.linuxnfs.sourceforge.org:/cvsroot/nfs co nfs-utils + Name service (host name lookup) should be working before any + NFS services are started. -will get the latest version. + "portmap" must be running before any NFS services (server or + client) are started. + + Normally network interfaces should be configured first as well, + though this isn't critical for the NFS server (providing name + service is handled locally). + +3.1. SERVER STARTUP -The files are -ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs-utils-0.1.3.tar.gz -ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs-utils-0.1.2-0.1.3.diff.gz + A/ mount -t nfsd /proc/fs/nfsd + This filesystem needs to be mount before most daemons, + particularly exportfs, mountd, svcgssd, idmapd. + It could be mounted once, or the script that starts each daemon + could test if it is mounted and mount it if not. -To compile, just do + B/ svcgssd ; idmapd + These supply services to nfsd and so should be started before + rpc.nfsd. Where they come between mounting the nfsd filesystem + and starting the nfsd server is not important. + idmapd is only needed for NFSv4 support. + svcgssd is only needed if exportfs NFS filesystem with crypto- + security (Kerberos or SPKM3). -# ./configure -# make + C/ exportfs -av ; rpc.mountd + It is important that exportfs be run before mountd so that + mountd is working from current information (in + /var/lib/nfs/etab). + It is also important that both of these are run before + rpc.nfsd. + If not, any NFS requests that arrive before mountd is started + will get replied to with a 'Stale NFS File handle' error. -# make install + D/ rpc.statd --no-notify + It is best if statd is started before nfsd though this isn't + critical. Certainly it should be at most a few seconds after + nfsd. + When nfsd starts it will start lockd. If lockd then receives a + lock request it will communicate with statd. If statd is not + running lockd will retry, but it won't wait forever for a + reply. + Note that if statd is started before nfsd, the --no-notify + option must be used. If notify requests are sent out before + nfsd start, clients may try to reclaim locks and, on finding + that lockd isn't running, they will give up and never reclaim + the lock. + rpc.statd is only needed for NFSv2 and NFSv3 support. -will install the nfs-utils binaries. You have to install the NFS -service scripts. There are 2 in etc/redhat provided for RedHat 6.x. -They are tested on RedHat 6.1. + E/ rpc.nfsd + Starting nfsd will automatically start lockd. The nfs server + will now be fully active and respond to any requests from + clients. + + F/ sm-notify + This will notify any client which might have locks from before + a reboot to try to reclaim their locks. This should start + immediately after rpc.nfsd is started so that clients have a + chance to reclaim locks within the 90 second grace period. + sm-notify is only needed for NFSv2 and NFSv3 support. -On RedHat 6.1, you can use -# rpm -ta nfs-utils-0.1.3.tar.gz +3.2. CLIENT STARTUP -to build the source and binary RPMs. - -If your mount from util-linux is too old, you will need 2 patches: - -ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/util-linux-2.9o-mount-nfsv3.patch -ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/util-linux-2.9w-mount-nfsv3try.patch - -Thanks. - - -H.J. -hjl@lucon.org -11/29/99 + A/ sm-notify + This should be run shortly after boot and before any NFS + filesystems are mounted with remote-locking support - + filesystems can be mounted with "-o nolock" before sm-notify. + This is appropriate for '/', '/usr', and '/var'. + + B/ gssd ; idmapd + idmapd should be started before mounting any NFSv4 filesystems. + gssd should be started before mounting any NFS filesystems + securely (with Kerberos of SPKM3). + + C/ statd should be run before any NFSv2 or NFSv3 filesystem is + mounted with remote locking (i.e. without -o nolock). + 'mount' will try to use "/usr/sbin/start-statd" to start statd + if it is not already running, so there is no need to explicitly + start statd in boot-time scripts. + +3.3. SERVER/CLIENT INTERACTIONS + + A/ sm-notify + Both the server and the client need sm-notify to be run. + It should be run after the NFS server is started, but before + and NFS filesystems are mounted with remote locking. + + B/ rpc.statd + Both the server and the client need rpc.statd to be running. + Each should try to start when they need it. + + C/ idmapd + + Both the server and client need idmapd to be running. If idmapd + is started (for the client) before starting nfsd the 'nfsd' + filesystem is mounted, then idmapd should be sent a HUP signal + afterwards to signal that the server channels should be opened. + + + + +Share And Enjoy! + + -- the nfs-utils developers +