Date: Mon, 8 Dec 2014 22:24:06 -0500 (EST) From: Rick Macklem <rmacklem@uoguelph.ca> To: Mark Schouten <mark@tuxis.nl> Cc: freebsd-fs@freebsd.org Subject: Re: Mountd, why not use the '-S' flag by default Message-ID: <891022143.8046492.1418095446417.JavaMail.root@uoguelph.ca> In-Reply-To: <710130010-1872@kerio.tuxis.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
Mark Schouten wrote: > Hi, > > > I'm using a FreeBSD nfs-server as storage for my Linux KVM-based > VPS-platform. The images reside on the NFS-server. > > > I'm been noticing errors in my VPS disks when running 'zfs set > sharenfs=XYZ', probably because of reloads of mountd. > > > While trying to debug that, I ran acros this message in mountd(8): > > -S Tell mountd to suspend/resume execution of the nfsd > threads when- > ever the exports list is being reloaded. This avoids > intermit- > tent access errors for clients that do NFS RPCs while > the exports > are being reloaded, but introduces a delay in RPC > response while > the reload is in progress. If mountd crashes while an > exports > load is in progress, mountd must be restarted to get the > nfsd > threads running again, if this option is used. > > > I can't think of a reason why you wouldn't want to use -S by > default.. An '/etc/rc.d/mountd reload' without it causes even my > running Bonnie on a normal NFS-share (not via a diskimage) to stop > with 'input/output error'. Can someone enlighten me with the > drawbacks of using -S ? > Well, there are a couple of things: With "-S" all nfsd threads get suspended/resumed whenever exports changes. This can result in a "pause" in NFS server response and that might be considered a POLA violation. It only works for the new NFS server and not the old one and the old one is still used by some. If it was the default, then the old and new NFS servers would have had different behaviour. (Again, this could be considered a POLA violation.) When "-S" was introduced by me, it was done as a "stop gap", since I had thought that mountd would eventually be replaced by nfse (and nfse did allow exports to be updated "atomically" so the problem didn't occur). It now appears that no variant of nfse will end up in FreeBSD. The last one is noted in the description. If, for some reason, mountd crashes during a reload, then all the nfsd threads could be stuck suspended. (I don't know if this occurs in practice.) Basically, I am a coward w.r.t. POLA and almost never change a default. (The one case I did change was making rsize, wsize default to MAX_BSIZE instead of 32K. By some strange twist of fate, this caused a lot of grief, since there was a bug related to TSO segments just under 64K for network interfaces that are limited to 32 transmit segments. I am still saying "disable TSO" to people running older FreeBSD systems because of this.;-) rick > > Met vriendelijke groeten, > > -- > Kerio Operator in de Cloud? https://www.kerioindecloud.nl/ > Mark Schouten | Tuxis Internet Engineering > KvK: 61527076 | http://www.tuxis.nl/ > T: 0318 200208 | info@tuxis.nl
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?891022143.8046492.1418095446417.JavaMail.root>
