I've currently got my filers with 'options nfs.tcp.enable off' from when I
first
set them up due to a perception that this would cause problems.
Has anyone got tcp enabled? Have they seen any problems/benefits, or are
there
any known issues with this?
I think the "problem" with switching on nfs.tcp.enable stems from the way that the mount(1M) command works on many modern UNIX systems. If you don't actually specify the version of NFS that you want to use, and the transport protocol you wish it to ride on the mount(1M) command line, the default is often to use the highest version of NFS available (usually 3) over the first connection oriented transport found (usually TCP), that's supported by both the client *and* the server. So, if you're a little "lazy" when it comes to telling the system exactly what you want, you'll end up with NFS v3 on TCP when what you *probably* wanted was UDP and/or NFS v2.
Although NFS v3 over TCP or UDP is "fine by us" at the server end of the show (NFS is one of the small number of things a filer does, so you'll find it's done rather well no matter what flavour you pick ;-)), there have been and still are some UNIX clients around whose NFS v3 implementations leave something to be desired on the stability and performance fronts. Hence the default disablement of some of the fancier combinations, to prevent them from being selected by accident.
Keith
Has anyone got tcp enabled? Have they seen any problems/benefits, or are there any known issues with this?
...
still are some UNIX clients around whose NFS v3 implementations leave something to be desired on the stability and performance fronts. Hence the default disablement of some of the fancier combinations, to prevent them from being selected by accident.
The question was about TCP, not the version of the NFS protocol. The defaults for 5.2 are
options nfs.tcp.enable off options nfs.v3.enable on
The reason for that choice had nothing to do with stability nor with any client issues so far as I know, but rather because most customers see a performance hit when running TCP with enabled, and having the low-performance option being the default didn't make a lot of sense.
Most customers see the hit because they're running over a LAN. In a WAN environment, NFS-over-TCP is great because it does a much better job of dealing with slow and possibly lossy networks, but over a LAN it simply adds overhead to deal with non-existant problems. The hit seems to be about 10-20% based on SPEC SFS results -- see
http://www.netapp.com/products/spec/spec2.html
Note that comparing UDP and TCP SFS results is meaningful (with the same protocol version, hardware, and testbed), but comparing V2 and V3 results is NOT meaningful because the workloads are different.
-- Karl