From a1c827e358e11fcf27e223ed45a54f6d328e78bc Mon Sep 17 00:00:00 2001 From: hjl Date: Mon, 8 Apr 2002 21:42:17 +0000 Subject: [PATCH] 2002-04-08 H.J. Lu * etc/redhat/nfs: New. * etc/redhat/nfs.init: Updated. * nfs-utils.spec.in: Updated. * nfs-utils.spec: Regenerated. * utils/mountd/mountd.c (longopts): Fix a typo. * utils/mountd/mountd.man: Updated. --- ChangeLog | 13 +++++++++ etc/redhat/nfs | 33 +++++++++++++++++++++ etc/redhat/nfs.init | 63 ++++++++++++++++++++++++++--------------- nfs-utils.spec | 3 ++ nfs-utils.spec.in | 3 ++ utils/mountd/mountd.c | 2 +- utils/mountd/mountd.man | 4 +-- 7 files changed, 95 insertions(+), 26 deletions(-) create mode 100644 etc/redhat/nfs diff --git a/ChangeLog b/ChangeLog index 6fde123..d51ba6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2002-04-08 H.J. Lu + + * etc/redhat/nfs: New. + + * etc/redhat/nfs.init: Updated. + + * nfs-utils.spec.in: Updated. + * nfs-utils.spec: Regenerated. + + * utils/mountd/mountd.c (longopts): Fix a typo. + + * utils/mountd/mountd.man: Updated. + 2002-04-07 H.J. Lu * etc/redhat/nfslock.init (restart): Just do stop and start. diff --git a/etc/redhat/nfs b/etc/redhat/nfs new file mode 100644 index 0000000..dfc08c1 --- /dev/null +++ b/etc/redhat/nfs @@ -0,0 +1,33 @@ +# $Id: nfs,v 1.1 2002/04/08 21:43:24 hjl Exp $ +# +# For more information on nfs tuning, please see the NFS-HOWTO +# http://nfs.sourceforge.net/nfs-howto/ + +# Pass any additional options for mountd. +# MOUNTD_OPTIONS= + +# Pin mountd to a given port rather than random one from portmapper +# MOUNTD_PORT= + +# Don't advertise TCP for mount. +# MOUNTD_TCP=no + +# NFS V3 +# MOUNTD_NFS_V3=auto|yes|no + +# NFS V2 +# MOUNTD_NFS_V2=auto|yes|no + +# The number of open file descriptors +# MOUNTD_OPEN_FILES=128 + +# Pass the number of instances of nfsd (8 is default; 16 or more +# might be needed to handle heavy client traffic) +# NFSDCOUNT=8 + +# Increase the memory limits on the socket input queues for +# the nfs processes .. NFS benchmark SPECsfs demonstrate a +# need for a larger than default size (64kb) .. setting +# TUNE_QUEUE to yes will set the values to 256kb. +# TUNE_QUEUE="yes" +# NFS_QS=262144 diff --git a/etc/redhat/nfs.init b/etc/redhat/nfs.init index e844508..e152626 100755 --- a/etc/redhat/nfs.init +++ b/etc/redhat/nfs.init @@ -8,7 +8,7 @@ # networks. This service provides NFS server functionality, \ # which is configured via the /etc/exports file. # probe: true -# config: /etc/sysconfig/nfsd +# config: /etc/sysconfig/nfs # Source function library. . /etc/rc.d/init.d/functions @@ -30,19 +30,13 @@ fi # Check for and source configuration file otherwise set defaults # TUNE_QUEUE: controls whether to up the size of input queues -NFSDCFG=/etc/sysconfig/nfsd -if [ -f "$NFSDCFG" ]; then - # Tune nfs server settings - . "$NFSDCFG" -else - # Set some defaults - TUNE_QUEUE="no" - # Default to NFS version 3. - RPCMOUNTDOPTS="" -fi +[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs + +[ -z "$MOUNTD_NFS_V2" ] && MOUNTD_NFS_V2=auto +[ -z "$MOUNTD_NFS_V3" ] && MOUNTD_NFS_V3=auto # Number of servers to be started by default -[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=8 +[ -z "$NFSDCOUNT" ] && NFSDCOUNT=8 # Remote quota server [ -z "$RQUOTAD" ] && RQUOTAD=`type -path rpc.rquotad` @@ -52,8 +46,6 @@ fi if [ "$TUNE_QUEUE" = "yes" ]; then RMEM_DEFAULT=`/sbin/sysctl -n net.core.rmem_default` RMEM_MAX=`/sbin/sysctl -n net.core.rmem_max` - WMEM_DEFAULT=`/sbin/sysctl -n net.core.wmem_default` - WMEM_MAX=`/sbin/sysctl -n net.core.wmem_max` # 256kb recommended minimum size based on SPECsfs NFS benchmarks [ -z "$NFS_QS" ] && NFS_QS=262144 fi @@ -66,8 +58,6 @@ case "$1" in if [ "$TUNE_QUEUE" = "yes" ]; then /sbin/sysctl -w net.core.rmem_default=$NFSD_QS >/dev/null 2>&1 /sbin/sysctl -w net.core.rmem_max=$NFSD_QS >/dev/null 2>&1 - /sbin/sysctl -w net.core.wmem_default=$NFSD_QS >/dev/null 2>&1 - /sbin/sysctl -w net.core.wmem_max=$NFSD_QS >/dev/null 2>&1 fi action "Starting NFS services: " /usr/sbin/exportfs -r if [ -n "$RQUOTAD" -a "$RQUOTAD" != "no" ]; then @@ -76,27 +66,54 @@ case "$1" in echo fi echo -n "Starting NFS daemon: " - daemon rpc.nfsd $RPCNFSDCOUNT + daemon rpc.nfsd $NFSDCOUNT echo - if [ -z "$RPCMOUNTDOPTS" ]; then + [ -n "$MOUNTD_PORT" ] \ + && MOUNTD_OPTIONS="$MOUNTD_OPTIONS -p $MOUNTD_PORT" + [ "$MOUNTD_TCP" = "no" -o "$MOUNTD_TCP" = "NO" ] \ + && MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-tcp" + + case $MOUNTD_NFS_V2 in + auto|AUTO) + # Let's see if we support NFS version 2. + /usr/sbin/rpcinfo -u localhost nfs 2 &>/dev/null + if [ $? -ne 0 ]; then + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 2" + fi + ;; + no|NO) + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 2" + ;; + yes|YES) + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --nfs-version 2" + ;; + esac + + case $MOUNTD_NFS_V3 in + auto|AUTO) # Let's see if we support NFS version 3. /usr/sbin/rpcinfo -u localhost nfs 3 &>/dev/null if [ $? -ne 0 ]; then - RPCMOUNTDOPTS="--no-nfs-version 3" + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 3" fi - fi + ;; + no|NO) + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 3" + ;; + yes|YES) + MOUNTD_OPTIONS="$MOUNTD_OPTIONS --nfs-version 3" + ;; + esac echo -n "Starting NFS mountd: " - daemon rpc.mountd $RPCMOUNTDOPTS + daemon rpc.mountd $MOUNTD_OPTIONS echo touch /var/lock/subsys/nfs # reset input queue for rest of network services if [ "$TUNE_QUEUE" = "yes" ]; then /sbin/sysctl -w net.core.rmem_default=$RMEM_DEFAULT >/dev/null 2>&1 /sbin/sysctl -w net.core.rmem_max=$RMEM_MAX >/dev/null 2>&1 - /sbin/sysctl -w net.core.wmem_default=$WMEM_DEFAULT >/dev/null 2>&1 - /sbin/sysctl -w net.core.wmem_max=$WMEM_MAX >/dev/null 2>&1 fi ;; stop) diff --git a/nfs-utils.spec b/nfs-utils.spec index a7f6f8f..21b9985 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -53,10 +53,12 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/{/sbin,/usr/sbin} mkdir -p $RPM_BUILD_ROOT%{_mandir}/{man5,man8} mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d +mkdir -p $RPM_BUILD_ROOT/etc/sysconfig mkdir -p $RPM_BUILD_ROOT/var/lib/nfs make install_prefix=$RPM_BUILD_ROOT MANDIR=$RPM_BUILD_ROOT%{_mandir} SBINDIR=$RPM_BUILD_ROOT%{_prefix}/sbin install install -s -m 755 tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin install -m 755 etc/redhat/nfs.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs +install -m 755 etc/redhat/nfs $RPM_BUILD_ROOT/etc/sysconfig/nfs install -m 755 etc/redhat/nfslock.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock touch $RPM_BUILD_ROOT/var/lib/nfs/rmtab mv $RPM_BUILD_ROOT/usr/sbin/{rpc.lockd,rpc.statd} $RPM_BUILD_ROOT/sbin @@ -87,6 +89,7 @@ fi %defattr(-,root,root) %config /etc/rc.d/init.d/nfs %dir /var/lib/nfs +%config(noreplace) /etc/sysconfig/nfs %config(noreplace) /var/lib/nfs/xtab %config(noreplace) /var/lib/nfs/etab %config(noreplace) /var/lib/nfs/rmtab diff --git a/nfs-utils.spec.in b/nfs-utils.spec.in index 3a3d65f..05a6926 100644 --- a/nfs-utils.spec.in +++ b/nfs-utils.spec.in @@ -53,10 +53,12 @@ rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/{/sbin,/usr/sbin} mkdir -p $RPM_BUILD_ROOT%{_mandir}/{man5,man8} mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d +mkdir -p $RPM_BUILD_ROOT/etc/sysconfig mkdir -p $RPM_BUILD_ROOT/var/lib/nfs make install_prefix=$RPM_BUILD_ROOT MANDIR=$RPM_BUILD_ROOT%{_mandir} SBINDIR=$RPM_BUILD_ROOT%{_prefix}/sbin install install -s -m 755 tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin install -m 755 etc/redhat/nfs.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs +install -m 755 etc/redhat/nfs $RPM_BUILD_ROOT/etc/sysconfig/nfs install -m 755 etc/redhat/nfslock.init $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock touch $RPM_BUILD_ROOT/var/lib/nfs/rmtab mv $RPM_BUILD_ROOT/usr/sbin/{rpc.lockd,rpc.statd} $RPM_BUILD_ROOT/sbin @@ -87,6 +89,7 @@ fi %defattr(-,root,root) %config /etc/rc.d/init.d/nfs %dir /var/lib/nfs +%config(noreplace) /etc/sysconfig/nfs %config(noreplace) /var/lib/nfs/xtab %config(noreplace) /var/lib/nfs/etab %config(noreplace) /var/lib/nfs/rmtab diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c index 73f9f66..f785ef2 100644 --- a/utils/mountd/mountd.c +++ b/utils/mountd/mountd.c @@ -31,7 +31,7 @@ static struct nfs_fh_len *get_rootfh(struct svc_req *, dirpath *, int *, int v3) static struct option longopts[] = { { "foreground", 0, 0, 'F' }, - { "descriptors", 0, 0, 'o' }, + { "descriptors", 1, 0, 'o' }, { "debug", 1, 0, 'd' }, { "help", 0, 0, 'h' }, { "exports-file", 1, 0, 'f' }, diff --git a/utils/mountd/mountd.man b/utils/mountd/mountd.man index 5780813..f68dd17 100644 --- a/utils/mountd/mountd.man +++ b/utils/mountd/mountd.man @@ -93,10 +93,10 @@ Don't advertise TCP for mount. .B \-P Ignored (compatibility with unfsd??). .TP -.B \-p " or " \-\-port +.B \-p " or " \-\-port num Force .B rpc.mountd -to bind to the specified port, instead of using the random port +to bind to the specified port num, instead of using the random port number assigned by the portmapper. .TP .B \-V " or " \-\-nfs-version -- 2.39.2