This repository has been archived by the owner on Dec 14, 2020. It is now read-only.
/
nfs.man
1421 lines (1421 loc) · 45.8 KB
/
nfs.man
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.\"@(#)nfs.5"
.TH NFS 5 "2 November 2007"
.SH NAME
nfs \- fstab format and options for the
.B nfs
and
.B nfs4
file systems
.SH SYNOPSIS
.I /etc/fstab
.SH DESCRIPTION
NFS is an Internet Standard protocol
created by Sun Microsystems in 1984. NFS was developed
to allow file sharing between systems residing
on a local area network.
The Linux NFS client supports three versions
of the NFS protocol:
NFS version 2 [RFC1094],
NFS version 3 [RFC1813],
and NFS version 4 [RFC3530].
.P
The
.BR mount (8)
command attaches a file system to the system's
name space hierarchy at a given mount point.
The
.I /etc/fstab
file describes how
.BR mount (8)
should assemble a system's file name hierarchy
from various independent file systems
(including file systems exported by NFS servers).
Each line in the
.I /etc/fstab
file describes a single file system, its mount point,
and a set of default mount options for that mount point.
.P
For NFS file system mounts, a line in the
.I /etc/fstab
file specifies the server name,
the path name of the exported server directory to mount,
the local directory that is the mount point,
the type of file system that is being mounted,
and a list of mount options that control
the way the filesystem is mounted and
how the NFS client behaves when accessing
files on this mount point.
The fifth and sixth fields on each line are not used
by NFS, thus conventionally each contain the digit zero. For example:
.P
.SP
.NF
.TA 2.5i +0.75i +0.75i +1.0i
server:path /mountpoint fstype option,option,... 0 0
.FI
.P
The server's hostname and export pathname
are separated by a colon, while
the mount options are separated by commas. The remaining fields
are separated by blanks or tabs.
The server's hostname can be an unqualified hostname,
a fully qualified domain name,
or a dotted quad IPv4 address.
The
.I fstype
field contains either "nfs" (for version 2 or version 3 NFS mounts)
or "nfs4" (for NFS version 4 mounts).
The
.B nfs
and
.B nfs4
file system types share similar mount options,
which are described below.
.SH "MOUNT OPTIONS"
Refer to
.BR mount (8)
for a description of generic mount options
available for all file systems. If you do not need to
specify any mount options, use the generic option
.B defaults
in
.IR /etc/fstab .
.
.DT
.SS "Valid options for either the nfs or nfs4 file system type"
These options are valid to use when mounting either
.B nfs
or
.B nfs4
file system types.
They imply the same behavior
and have the same default for both file system types.
.TP 1.5i
.BR soft " / " hard
Determines the recovery behavior of the NFS client
after an NFS request times out.
If neither option is specified (or if the
.B hard
option is specified), NFS requests are retried indefinitely.
If the
.B soft
option is specified, then the NFS client fails an NFS request
after
.B retrans
retransmissions have been sent,
causing the NFS client to return an error
to the calling application.
.IP
.I NB:
A so-called "soft" timeout can cause
silent data corruption in certain cases. As such, use the
.B soft
option only when client responsiveness
is more important than data integrity.
Using NFS over TCP or increasing the value of the
.B retrans
option may mitigate some of the risks of using the
.B soft
option.
.TP 1.5i
.BI timeo= n
The time (in tenths of a second) the NFS client waits for a
response before it retries an NFS request. If this
option is not specified, requests are retried every
60 seconds for NFS over TCP.
The NFS client does not perform any kind of timeout backoff
for NFS over TCP.
.IP
However, for NFS over UDP, the client uses an adaptive
algorithm to estimate an appropriate timeout value for frequently used
request types (such as READ and WRITE requests), but uses the
.B timeo
setting for infrequently used request types (such as FSINFO requests).
If the
.B timeo
option is not specified,
infrequently used request types are retried after 1.1 seconds.
After each retransmission, the NFS client doubles the timeout for
that request,
up to a maximum timeout length of 60 seconds.
.TP 1.5i
.BI retrans= n
The number of times the NFS client retries a request before
it attempts further recovery action. If the
.B retrans
option is not specified, the NFS client tries each request
three times.
.IP
The NFS client generates a "server not responding" message
after
.B retrans
retries, then attempts further recovery (depending on whether the
.B hard
mount option is in effect).
.TP 1.5i
.BI rsize= n
The maximum number of bytes in each network READ request
that the NFS client can receive when reading data from a file
on an NFS server.
The actual data payload size of each NFS READ request is equal to
or smaller than the
.B rsize
setting. The largest read payload supported by the Linux NFS client
is 1,048,576 bytes (one megabyte).
.IP
The
.B rsize
value is a positive integral multiple of 1024.
Specified
.B rsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
range but not a multiple of 1024, it is rounded down to the nearest
multiple of 1024.
.IP
If an
.B rsize
value is not specified, or if the specified
.B rsize
value is larger than the maximum that either client or server can support,
the client and server negotiate the largest
.B rsize
value that they can both support.
.IP
The
.B rsize
mount option as specified on the
.BR mount (8)
command line appears in the
.I /etc/mtab
file. However, the effective
.B rsize
value negotiated by the client and server is reported in the
.I /proc/mounts
file.
.TP 1.5i
.BI wsize= n
The maximum number of bytes per network WRITE request
that the NFS client can send when writing data to a file
on an NFS server. The actual data payload size of each
NFS WRITE request is equal to
or smaller than the
.B wsize
setting. The largest write payload supported by the Linux NFS client
is 1,048,576 bytes (one megabyte).
.IP
Similar to
.B rsize
, the
.B wsize
value is a positive integral multiple of 1024.
Specified
.B wsize
values lower than 1024 are replaced with 4096; values larger than
1048576 are replaced with 1048576. If a specified value is within the supported
range but not a multiple of 1024, it is rounded down to the nearest
multiple of 1024.
.IP
If a
.B wsize
value is not specified, or if the specified
.B wsize
value is larger than the maximum that either client or server can support,
the client and server negotiate the largest
.B wsize
value that they can both support.
.IP
The
.B wsize
mount option as specified on the
.BR mount (8)
command line appears in the
.I /etc/mtab
file. However, the effective
.B wsize
value negotiated by the client and server is reported in the
.I /proc/mounts
file.
.TP 1.5i
.BR ac " / " noac
Selects whether the client may cache file attributes. If neither
option is specified (or if
.B ac
is specified), the client caches file
attributes.
.IP
To improve performance, NFS clients cache file
attributes. Every few seconds, an NFS client checks the server's version of each
file's attributes for updates. Changes that occur on the server in
those small intervals remain undetected until the client checks the
server again. The
.B noac
option prevents clients from caching file
attributes so that applications can more quickly detect file changes
on the server.
.IP
In addition to preventing the client from caching file attributes,
the
.B noac
option forces application writes to become synchronous so
that local changes to a file become visible on the server
immediately. That way, other clients can quickly detect recent
writes when they check the file's attributes.
.IP
Using the
.B noac
option provides greater cache coherence among NFS clients
accessing the same files,
but it extracts a significant performance penalty.
As such, judicious use of file locking is encouraged instead.
The DATA AND METADATA COHERENCE section contains a detailed discussion
of these trade-offs.
.TP 1.5i
.BI acregmin= n
The minimum time (in seconds) that the NFS client caches
attributes of a regular file before it requests
fresh attribute information from a server.
If this option is not specified, the NFS client uses
a 3-second minimum.
.TP 1.5i
.BI acregmax= n
The maximum time (in seconds) that the NFS client caches
attributes of a regular file before it requests
fresh attribute information from a server.
If this option is not specified, the NFS client uses
a 60-second maximum.
.TP 1.5i
.BI acdirmin= n
The minimum time (in seconds) that the NFS client caches
attributes of a directory before it requests
fresh attribute information from a server.
If this option is not specified, the NFS client uses
a 30-second minimum.
.TP 1.5i
.BI acdirmax= n
The maximum time (in seconds) that the NFS client caches
attributes of a directory before it requests
fresh attribute information from a server.
If this option is not specified, the NFS client uses
a 60-second maximum.
.TP 1.5i
.BI actimeo= n
Using
.B actimeo
sets all of
.BR acregmin ,
.BR acregmax ,
.BR acdirmin ,
and
.B acdirmax
to the same value.
If this option is not specified, the NFS client uses
the defaults for each of these options listed above.
.TP 1.5i
.BR bg " / " fg
Determines how the
.BR mount (8)
command behaves if an attempt to mount an export fails.
The
.B fg
option causes
.BR mount (8)
to exit with an error status if any part of the mount request
times out or fails outright.
This is called a "foreground" mount,
and is the default behavior if neither the
.B fg
nor
.B bg
mount option is specified.
.IP
If the
.B bg
option is specified, a timeout or failure causes the
.BR mount (8)
command to fork a child which continues to attempt
to mount the export.
The parent immediately returns with a zero exit code.
This is known as a "background" mount.
.IP
If the local mount point directory is missing, the
.BR mount (8)
command acts as if the mount request timed out.
This permits nested NFS mounts specified in
.I /etc/fstab
to proceed in any order during system initialization,
even if some NFS servers are not yet available.
Alternatively these issues can be addressed
using an automounter (refer to
.BR automount (8)
for details).
.TP 1.5i
.BI retry= n
The number of minutes that the
.BR mount (8)
command retries an NFS mount operation
in the foreground or background before giving up.
If this option is not specified, the default value for foreground mounts
is 2 minutes, and the default value for background mounts is 10000 minutes (80 minutes shy of one week).
.TP 1.5i
.BI sec= mode
The RPCGSS security flavor to use for accessing files on this mount point.
If the
.B sec
option is not specified, or if
.B sec=sys
is specified, the NFS client uses the AUTH_SYS security flavor
for all NFS requests on this mount point.
Valid security flavors are
.BR none ,
.BR sys ,
.BR krb5 ,
.BR krb5i ,
.BR krb5p ,
.BR lkey ,
.BR lkeyi ,
.BR lkeyp ,
.BR spkm ,
.BR spkmi ,
and
.BR spkmp .
Refer to the SECURITY CONSIDERATIONS section for details.
.TP 1.5i
.BR sharecache " / " nosharecache
Determines how the client's data cache and attribute cache are shared
when mounting the same export more than once concurrently. Using the
same cache reduces memory requirements on the client and presents
identical file contents to applications when the same remote file is
accessed via different mount points.
.IP
If neither option is specified, or if the
.B sharecache
option is
specified, then a single cache is used for all mount points that
access the same export. If the
.B nosharecache
option is specified,
then that mount point gets a unique cache. Note that when data and
attribute caches are shared, the mount options from the first mount
point take effect for subsequent concurrent mounts of the same export.
.IP
As of kernel 2.6.18, the behavior specified by
.B nosharecache
is legacy caching behavior. This
is considered a data risk since multiple cached copies
of the same file on the same client can become out of sync
following a local update of one of the copies.
.TP 1.5i
.BR resvport " / " noresvport
Specifies whether the NFS client should use a privileged source port
when communicating with an NFS server for this mount point.
If this option is not specified, or the
.B resvport
option is specified, the NFS client uses a privileged source port.
If the
.B noresvport
option is specified, the NFS client uses a non-privileged source port.
This option is supported in kernels 2.6.28 and later.
.IP
Using non-privileged source ports helps increase the maximum number of
NFS mount points allowed on a client, but NFS servers must be configured
to allow clients to connect via non-privileged source ports.
.IP
Refer to the SECURITY CONSIDERATIONS section for important details.
.SS "Valid options for the nfs file system type"
Use these options, along with the options in the above subsection,
for mounting the
.B nfs
file system type.
.TP 1.5i
.BI proto= transport
The transport the NFS client uses
to transmit requests to the NFS server for this mount point.
.I transport
can be either
.B udp
or
.BR tcp .
Each transport uses different default
.B retrans
and
.B timeo
settings; refer to the description of these two mount options for details.
.IP
In addition to controlling how the NFS client transmits requests to
the server, this mount option also controls how the
.BR mount (8)
command communicates with the server's rpcbind and mountd services.
Specifying
.B proto=tcp
forces all traffic from the
.BR mount (8)
command and the NFS client to use TCP.
Specifying
.B proto=udp
forces all traffic types to use UDP.
.IP
If the
.B proto
mount option is not specified, the
.BR mount (8)
command discovers which protocols the server supports
and chooses an appropriate transport for each service.
Refer to the TRANSPORT METHODS section for more details.
.TP 1.5i
.B udp
The
.B udp
option is an alternative to specifying
.BR proto=udp.
It is included for compatibility with other operating systems.
.TP 1.5i
.B tcp
The
.B tcp
option is an alternative to specifying
.BR proto=tcp.
It is included for compatibility with other operating systems.
.TP 1.5i
.BI port= n
The numeric value of the server's NFS service port.
If the server's NFS service is not available on the specified port,
the mount request fails.
.IP
If this option is not specified, or if the specified port value is 0,
then the NFS client uses the NFS service port number
advertised by the server's rpcbind service.
The mount request fails if the server's rpcbind service is not available,
the server's NFS service is not registered with its rpcbind service,
or the server's NFS service is not available on the advertised port.
.TP 1.5i
.BI mountport= n
The numeric value of the server's mountd port.
If the server's mountd service is not available on the specified port,
the mount request fails.
.IP
If this option is not specified,
or if the specified port value is 0, then the
.BR mount (8)
command uses the mountd service port number
advertised by the server's rpcbind service.
The mount request fails if the server's rpcbind service is not available,
the server's mountd service is not registered with its rpcbind service,
or the server's mountd service is not available on the advertised port.
.IP
This option can be used when mounting an NFS server
through a firewall that blocks the rpcbind protocol.
.TP 1.5i
.BI mountproto= transport
The transport the NFS client uses
to transmit requests to the NFS server's mountd service when performing
this mount request, and when later unmounting this mount point.
.I transport
can be either
.B udp
or
.BR tcp .
.IP
This option can be used when mounting an NFS server
through a firewall that blocks a particular transport.
When used in combination with the
.B proto
option, different transports for mountd requests and NFS requests
can be specified.
If the server's mountd service is not available via the specified
transport, the mount request fails.
Refer to the TRANSPORT METHODS section for more on how the
.B mountproto
mount option interacts with the
.B proto
mount option.
.TP 1.5i
.BI mounthost= name
The hostname of the host running mountd.
If this option is not specified, the
.BR mount (8)
command assumes that the mountd service runs
on the same host as the NFS service.
.TP 1.5i
.BI mountvers= n
The RPC version number used to contact the server's mountd.
If this option is not specified, the client uses a version number
appropriate to the requested NFS version.
This option is useful when multiple NFS services
are running on the same remote server host.
.TP 1.5i
.BI namlen= n
The maximum length of a pathname component on this mount.
If this option is not specified, the maximum length is negotiated
with the server. In most cases, this maximum length is 255 characters.
.IP
Some early versions of NFS did not support this negotiation.
Using this option ensures that
.BR pathconf (3)
reports the proper maximum component length to applications
in such cases.
.TP 1.5i
.BI nfsvers= n
The NFS protocol version number used to contact the server's NFS service.
The Linux client supports version 2 and version 3 of the NFS protocol
when using the file system type
.BR nfs .
If the server does not support the requested version,
the mount request fails.
If this option is not specified, the client attempts to use version 3,
but negotiates the NFS version with the server if version 3 support
is not available.
.TP 1.5i
.BI vers= n
This option is an alternative to the
.B nfsvers
option.
It is included for compatibility with other operating systems.
.TP 1.5i
.BR lock " / " nolock
Selects whether to use the NLM sideband protocol to lock files on the server.
If neither option is specified (or if
.B lock
is specified), NLM locking is used for this mount point.
When using the
.B nolock
option, applications can lock files,
but such locks provide exclusion only against other applications
running on the same client.
Remote applications are not affected by these locks.
.IP
NLM locking must be disabled with the
.B nolock
option when using NFS to mount
.I /var
because
.I /var
contains files used by the NLM implementation on Linux.
Using the
.B nolock
option is also required when mounting exports on NFS servers
that do not support the NLM protocol.
.TP 1.5i
.BR intr " / " nointr
Selects whether to allow signals to interrupt file operations
on this mount point. If neither option
is specified (or if
.B nointr
is specified),
signals do not interrupt NFS file operations. If
.B intr
is specified, system calls return EINTR if an in-progress NFS operation is interrupted by
a signal.
.IP
Using the
.B intr
option is preferred to using the
.B soft
option because it is significantly less likely to result in data corruption.
.IP
The
.BR intr " / " nointr
mount option is deprecated after kernel 2.6.25.
Only SIGKILL can interrupt a pending NFS operation on these kernels,
and if specified, this mount option is ignored to provide backwards
compatibility with older kernels.
.TP 1.5i
.BR cto " / " nocto
Selects whether to use close-to-open cache coherence semantics.
If neither option is specified (or if
.B cto
is specified), the client uses close-to-open
cache coherence semantics. If the
.B nocto
option is specified, the client uses a non-standard heuristic to determine when
files on the server have changed.
.IP
Using the
.B nocto
option may improve performance for read-only mounts,
but should be used only if the data on the server changes only occasionally.
The DATA AND METADATA COHERENCE section discusses the behavior
of this option in more detail.
.TP 1.5i
.BR acl " / " noacl
Selects whether to use the NFSACL sideband protocol on this mount point.
The NFSACL sideband protocol is a proprietary protocol
implemented in Solaris that manages Access Control Lists. NFSACL was never
made a standard part of the NFS protocol specification.
.IP
If neither
.B acl
nor
.B noacl
option is specified,
the NFS client negotiates with the server
to see if the NFSACL protocol is supported,
and uses it if the server supports it.
Disabling the NFSACL sideband protocol may be necessary
if the negotiation causes problems on the client or server.
Refer to the SECURITY CONSIDERATIONS section for more details.
.TP 1.5i
.BR rdirplus " / " nordirplus
Selects whether to use NFS version 3 READDIRPLUS requests.
If this option is not specified, the NFS client uses READDIRPLUS requests
on NFS version 3 mounts to read small directories.
Some applications perform better if the client uses only READDIR requests
for all directories.
.SS "Valid options for the nfs4 file system type"
Use these options, along with the options in the first subsection above,
for mounting the
.B nfs4
file system type.
.TP 1.5i
.BI proto= transport
The transport the NFS client uses
to transmit requests to the NFS server for this mount point.
.I transport
can be either
.B udp
or
.BR tcp .
All NFS version 4 servers are required to support TCP,
so if this mount option is not specified, the NFS version 4 client
uses the TCP transport protocol.
Refer to the TRANSPORT METHODS section for more details.
.TP 1.5i
.BI port= n
The numeric value of the server's NFS service port.
If the server's NFS service is not available on the specified port,
the mount request fails.
.IP
If this mount option is not specified,
the NFS client uses the standard NFS port number of 2049
without first checking the server's rpcbind service.
This allows an NFS version 4 client to contact an NFS version 4
server through a firewall that may block rpcbind requests.
.IP
If the specified port value is 0,
then the NFS client uses the NFS service port number
advertised by the server's rpcbind service.
The mount request fails if the server's rpcbind service is not available,
the server's NFS service is not registered with its rpcbind service,
or the server's NFS service is not available on the advertised port.
.TP 1.5i
.BR intr " / " nointr
Selects whether to allow signals to interrupt file operations
on this mount point. If neither option is specified (or if
.B intr
is specified), system calls return EINTR if an in-progress NFS operation
is interrupted by a signal. If
.B nointr
is specified, signals do not
interrupt NFS operations.
.IP
Using the
.B intr
option is preferred to using the
.B soft
option because it is significantly less likely to result in data corruption.
.IP
The
.BR intr " / " nointr
mount option is deprecated after kernel 2.6.25.
Only SIGKILL can interrupt a pending NFS operation on these kernels,
and if specified, this mount option is ignored to provide backwards
compatibility with older kernels.
.TP 1.5i
.BR cto " / " nocto
Selects whether to use close-to-open cache coherence semantics
for NFS directories on this mount point.
If neither
.B cto
nor
.B nocto
is specified,
the default is to use close-to-open cache coherence
semantics for directories.
.IP
File data caching behavior is not affected by this option.
The DATA AND METADATA COHERENCE section discusses
the behavior of this option in more detail.
.TP 1.5i
.BI clientaddr= n.n.n.n
Specifies a single IPv4 address (in dotted-quad form)
that the NFS client advertises to allow servers
to perform NFS version 4 callback requests against
files on this mount point. If the server is unable to
establish callback connections to clients, performance
may degrade, or accesses to files may temporarily hang.
.IP
If this option is not specified, the
.BR mount (8)
command attempts to discover an appropriate callback address automatically.
The automatic discovery process is not perfect, however.
In the presence of multiple client network interfaces,
special routing policies,
or atypical network topologies,
the exact address to use for callbacks may be nontrivial to determine.
.SH EXAMPLES
To mount an export using NFS version 2,
use the
.B nfs
file system type and specify the
.B nfsvers=2
mount option.
To mount using NFS version 3,
use the
.B nfs
file system type and specify the
.B nfsvers=3
mount option.
To mount using NFS version 4,
use the
.B nfs4
file system type.
The
.B nfsvers
mount option is not supported for the
.B nfs4
file system type.
.P
The following example from an
.I /etc/fstab
file causes the mount command to negotiate
reasonable defaults for NFS behavior.
.P
.NF
.TA 2.5i +0.7i +0.7i +.7i
server:/export /mnt nfs defaults 0 0
.FI
.P
Here is an example from an /etc/fstab file for an NFS version 2 mount over UDP.
.P
.NF
.TA 2.5i +0.7i +0.7i +.7i
server:/export /mnt nfs nfsvers=2,proto=udp 0 0
.FI
.P
Try this example to mount using NFS version 4 over TCP
with Kerberos 5 mutual authentication.
.P
.NF
.TA 2.5i +0.7i +0.7i +.7i
server:/export /mnt nfs4 sec=krb5 0 0
.FI
.P
This example can be used to mount /usr over NFS.
.P
.NF
.TA 2.5i +0.7i +0.7i +.7i
server:/export /usr nfs ro,nolock,nocto,actimeo=3600 0 0
.FI
.SH "TRANSPORT METHODS"
NFS clients send requests to NFS servers via
Remote Procedure Calls, or
.IR RPCs .
The RPC client discovers remote service endpoints automatically,
handles per-request authentication,
adjusts request parameters for different byte endianness on client and server,
and retransmits requests that may have been lost by the network or server.
RPC requests and replies flow over a network transport.
.P
In most cases, the
.BR mount (8)
command, NFS client, and NFS server
can automatically negotiate proper transport
and data transfer size settings for a mount point.
In some cases, however, it pays to specify
these settings explicitly using mount options.
.P
Traditionally, NFS clients used the UDP transport exclusively for
transmitting requests to servers. Though its implementation is
simple, NFS over UDP has many limitations that prevent smooth
operation and good performance in some common deployment
environments. Even an insignificant packet loss rate results in the
loss of whole NFS requests; as such, retransmit timeouts are usually
in the subsecond range to allow clients to recover quickly from
dropped requests, but this can result in extraneous network traffic
and server load.
.P
However, UDP can be quite effective in specialized settings where
the network’s MTU is large relative to NFS’s data transfer size (such
as network environments that enable jumbo Ethernet frames). In such
environments, trimming the
.B rsize
and
.B wsize
settings so that each
NFS read or write request fits in just a few network frames (or even
in a single frame) is advised. This reduces the probability that
the loss of a single MTU-sized network frame results in the loss of
an entire large read or write request.
.P
TCP is the default transport protocol used for all modern NFS
implementations. It performs well in almost every conceivable
network environment and provides excellent guarantees against data
corruption caused by network unreliability. TCP is often a
requirement for mounting a server through a network firewall.
.P
Under normal circumstances, networks drop packets much more
frequently than NFS servers drop requests. As such, an aggressive
retransmit timeout setting for NFS over TCP is unnecessary. Typical
timeout settings for NFS over TCP are between one and ten minutes.
After the client exhausts its retransmits (the value of the
.B retrans
mount option), it assumes a network partition has occurred,
and attempts to reconnect to the server on a fresh socket. Since
TCP itself makes network data transfer reliable,
.B rsize
and
.B wsize
can safely be allowed to default to the largest values supported by
both client and server, independent of the network's MTU size.
.SS "Using the mountproto mount option"
This section applies only to NFS version 2 and version 3 mounts
since NFS version 4 does not use a separate protocol for mount
requests.
.P
The Linux NFS client can use a different transport for
contacting an NFS server's rpcbind service, its mountd service,
its Network Lock Manager (NLM) service, and its NFS service.
The exact transports employed by the Linux NFS client for
each mount point depends on the settings of the transport
mount options, which include
.BR proto ,
.BR mountproto ,
.BR udp ", and " tcp .
.P
The client sends Network Status Manager (NSM) notifications
via UDP no matter what transport options are specified, but
listens for server NSM notifications on both UDP and TCP.
The NFS Access Control List (NFSACL) protocol shares the same
transport as the main NFS service.
.P
If no transport options are specified, the Linux NFS client
uses UDP to contact the server's mountd service, and TCP to
contact its NLM and NFS services by default.
.P
If the server does not support these transports for these services, the
.BR mount (8)
command attempts to discover what the server supports, and then retries
the mount request once using the discovered transports.
If the server does not advertise any transport supported by the client
or is misconfigured, the mount request fails.
If the
.B bg
option is in effect, the mount command backgrounds itself and continues
to attempt the specified mount request.
.P
When the
.B proto
option, the
.B udp
option, or the
.B tcp
option is specified but the
.B mountproto
option is not, the specified transport is used to contact
both the server's mountd service and for the NLM and NFS services.
.P
If the
.B mountproto
option is specified but none of the
.BR proto ", " udp " or " tcp
options are specified, then the specified transport is used for the
initial mountd request, but the mount command attempts to discover
what the server supports for the NFS protocol, preferring TCP if
both transports are supported.
.P
If both the
.BR mountproto " and " proto
(or
.BR udp " or " tcp )
options are specified, then the transport specified by the
.B mountproto
option is used for the initial mountd request, and the transport
specified by the
.B proto
option (or the
.BR udp " or " tcp " options)"
is used for NFS, no matter what order these options appear.
No automatic service discovery is performed if these options are
specified.
.P
If any of the
.BR proto ", " udp ", " tcp ", "
or
.B mountproto
options are specified more than once on the same mount command line,
then the value of the rightmost instance of each of these options
takes effect.
.SH "DATA AND METADATA COHERENCE"
Some modern cluster file systems provide
perfect cache coherence among their clients.
Perfect cache coherence among disparate NFS clients
is expensive to achieve, especially on wide area networks.
As such, NFS settles for weaker cache coherence that
satisfies the requirements of most file sharing types. Normally,
file sharing is completely sequential:
first client A opens a file, writes something to it, then closes it;
then client B opens the same file, and reads the changes.
.DT
.SS "Close-to-open cache consistency"
When an application opens a file stored on an NFS server,
the NFS client checks that it still exists on the server
and is permitted to the opener by sending a GETATTR or ACCESS request.
When the application closes the file,
the NFS client writes back any pending changes
to the file so that the next opener can view the changes.
This also gives the NFS client an opportunity to report
any server write errors to the application
via the return code from
.BR close (2).
The behavior of checking at open time and flushing at close time
is referred to as close-to-open cache consistency.
.SS "Weak cache consistency"
There are still opportunities for a client's data cache
to contain stale data.
The NFS version 3 protocol introduced "weak cache consistency"
(also known as WCC) which provides a way of efficiently checking
a file's attributes before and after a single request.
This allows a client to help identify changes
that could have been made by other clients.
.P
When a client is using many concurrent operations
that update the same file at the same time
(for example, during asynchronous write behind),
it is still difficult to tell whether it was
that client's updates or some other client's updates
that altered the file.
.SS "Attribute caching"
Use the
.B noac
mount option to achieve attribute cache coherence
among multiple clients.
Almost every file system operation checks
file attribute information.
The client keeps this information cached
for a period of time to reduce network and server load.
When
.B noac
is in effect, a client's file attribute cache is disabled,
so each operation that needs to check a file's attributes
is forced to go back to the server.