1NFSDCLD(8)                                                          NFSDCLD(8)
2
3
4

NAME

6       nfsdcld - NFSv4 Client Tracking Daemon
7

SYNOPSIS

9       nfsdcld [-d] [-F] [-p path] [-s stable storage dir]
10

DESCRIPTION

12       nfsdcld is the NFSv4 client tracking daemon. It is not necessary to run
13       this daemon on machines that are not acting as NFSv4 servers.
14
15       When a network partition is combined with a server reboot, there are
16       edge conditions that can cause the server to grant lock reclaims when
17       other clients have taken conflicting locks in the interim. A more
18       detailed explanation of this issue is described in RFC 3530, section
19       8.6.3.
20
21       In order to prevent these problems, the server must track a small
22       amount of per-client information on stable storage. This daemon
23       provides the userspace piece of that functionality.
24

OPTIONS

26       -d, --debug
27           Enable debug level logging.
28
29       -F, --foreground
30           Runs the daemon in the foreground and prints all output to stderr
31
32       -p path, --pipefsdir=path
33           Location of the rpc_pipefs filesystem. The default value is
34           /var/lib/nfs/rpc_pipefs.
35
36       -s storage_dir, --storagedir=storage_dir
37           Directory where stable storage information should be kept. The
38           default value is /var/lib/nfs/nfsdcld.
39

CONFIGURATION FILE

41       The following values are recognized in the [nfsdcld] section of the
42       /etc/nfs.conf configuration file:
43
44       storagedir
45           Equivalent to -s/--storagedir.
46
47       debug
48           Setting "debug = 1" is equivalent to -d/--debug.
49
50       In addition, the following value is recognized from the [general]
51       section:
52
53       pipefs-directory
54           Equivalent to -p/--pipefsdir.
55

NOTES

57       The Linux kernel NFSv4 server has historically tracked this information
58       on stable storage by manipulating information on the filesystem
59       directly, in the directory to which /proc/fs/nfsd/nfsv4recoverydir
60       points.
61
62       This changed with the original introduction of nfsdcld upcall in kernel
63       version 3.4, which was later deprecated in favor of the nfsdcltrack(8)
64       usermodehelper program, support for which was added in kernel version
65       3.8.  However, since the usermodehelper upcall does not work in
66       containers, support for a new version of the nfsdcld upcall was added
67       in kernel version 5.2.
68
69       This daemon requires a kernel that supports the nfsdcld upcall. On
70       older kernels, if the legacy client name tracking code was in use, then
71       the kernel would not create the pipe that nfsdcld uses to talk to the
72       kernel.  On newer kernels, nfsd attempts to initialize client tracking
73       in the following order:  First, the nfsdcld upcall.  Second, the
74       nfsdcltrack usermodehelper upcall.  Finally, the legacy client
75       tracking.
76
77       This daemon should be run as root, as the pipe that it uses to
78       communicate with the kernel is only accessable by root. The daemon
79       however does drop all superuser capabilities after starting. Because of
80       this, the storagedir should be owned by root, and be readable and
81       writable by owner.
82
83       The daemon now supports different upcall versions to allow the kernel
84       to pass additional data to be stored in the on-disk database.  The
85       kernel will query the supported upcall version from nfsdcld during
86       client tracking initialization.  A restart of nfsd is not necessary
87       after upgrading nfsdcld, however nfsd will not use a later upcall
88       version until restart.  A restart of nfsd is necessary after
89       downgrading nfsdcld, to ensure that nfsd does not use an upcall version
90       that nfsdcld does not support.  Additionally, a downgrade of nfsdcld
91       requires the schema of the on-disk database to be downgraded as well.
92       That can be accomplished using the nfsdclddb(8) utility.
93

FILES

95       /var/lib/nfs/nfsdcld/main.sqlite
96

SEE ALSO

98       nfsdcltrack(8), nfsdclddb(8)
99

AUTHORS

101       The nfsdcld daemon was developed by Jeff Layton <jlayton@redhat.com>
102       with modifications from Scott Mayhew <smayhew@redhat.com>.
103
104
105
106                                  2011-12-21                        NFSDCLD(8)
Impressum