fs-nfs3

NFS 3 client filesystem (QNX Neutrino)

Note: You must be root or have the right abilities to start this manager.

Syntax:

fs-nfs3 [global_options] [mountpoint_options] [mountpoint_spec] 
        [[mountpoint_options] mountpoint_spec ...]

Runs on:

QNX Neutrino

Options:

The global options include the following:

-B size
Set the buffer size to size bytes. The default is set by the first server, and is usually 32 KB.
-b num
Use num buffers (default: 200).
-D
Run in the foreground.
-h
Display usage information.
-i nodes
Set the number of inodes to nodes. The default is to increase the number dynamically.
-o opt
Specify additional options, separated by commas; opt can be one of the following:
  • port=n1:n2 — the port number range that the client uses. The default is to use a privileged port.
  • soft=n — use a soft mount. The mount attempt terminates after failing n times.
  • disable_fdinfo — don't support iofdinfo().
-T num
Set the number of threads. The default is 5.
-w wopt[,wopt...]
Options to control write operations, separated by commas. The following options are available:
  • delay=sec — indicate the time, in seconds, after which the data will be flushed to the server. The default is 2 seconds.
  • number=num — the number of buffers (default is 10.) Each buffer manages content for one file. The default value indicates that 10 files can be buffered simultaneously.
  • size=num — the size of the buffer, in units of 1 KB. The default is 32 KB.
  • sync=hard — turn off write caching. Data is written synchronously on the server. By default, data is buffered locally and written onto the server later.
-v[v]...
Verbose output; add more v characters for more verbosity. In order to capture the log messages, you need to have syslogd running.

The mountpoint options include the following:

-e
Set the NO EXEC flag for the mounted filesystem.
-r
Set the READ ONLY flag for the mounted filesystem.
-S
Don't cache symlinks.
-s
Use a soft mount. The mount attempt terminates after failing four times.
-t
Use TCP instead of UDP. If this fails, fs-nfs3 uses UDP.
-u
Use UDP (which is the default). If this fails, fs-nfs3 fails.
-Z n
The value of n indicates how to attach to the path:
  • B or b — attach before other managers.
  • A or a — attach after other managers.
  • O or o — make the attachment opaque; don't resolve to mountpoints with shorter pathname matches. The pathname resolver tries to find the longest match against all pathnames attached.

The default is none of these. For more information, see Pathname Management in the Process Manager chapter of the System Architecture guide.

A mountpoint_spec is in the form:

remote_host:/remote_export local_mountpoint

The components are as follows:

remote_host
The name of the NFS server.
remote_export
The directory to be exported from the server.
local_mountpoint
The name under which the exported directory is to be mounted.

Description:

The fs-nfs3 filesystem manager is an NFS 3 client operating over TCP/IP. To use it, you must have an NFS server.

When you use fs-nfs3 with write caching (the default), you benefit from enhanced filesystem performance. However, there can be interoperability issues if more than one NFS client accesses the same file on the NFS server. If fs-nfs3's cached data hasn't been written to the NFS server, another NFS client attempting to read the same file won't see the changes to the file until they're written to the server at a later point. If you want fs-nfs3 to write file modifications immediately to the NFS server, use the -w sync=hard option to turn off write caching.

This filesystem manager requires a TCP/IP transport layer, such as the one provided by io-pkt*. It also needs socket.so and libc.so.

By default, this utility does not set any upper limit for number of inodes.

You can also create mountpoints with the mount command by specifying nfs for the type and -o ver3 as an option. You must start fs-nfs3 before creating mountpoints in this manner. If you start fs-nfs3 without any arguments, it runs in the background so you can use mount. The -o options that you can use with mount include the following:

tcp
Use TCP instead of UDP. If this fails, mount uses UDP.
udp
Use UDP (which is the default). If this fails, mount fails.
nocachesymlink
Don't cache symlinks.
ver3
Use fs-nfs3 instead of fs-nfs2.
soft
Use a soft mount (i.e., break the connection if unable to reach the server).

If you try to access a link that has a trailing slash, fs-nfs3 immediately returns EINVAL (invalid argument) instead of resolving the link and reporting errors such as EPERM (permission denied) or ENOTDIR (not a directory). It does this to reduce network traffic, because a path that ends in a slash must be a directory, and so the access will ultimately fail anyway.

Examples:

Mount the qnx_bin export as /bin from an NFS server named server_node:

fs-nfs3 server_node:/qnx_bin /bin &

Mount /nfs1 using TCP, and /nfs3 using UDP:

fs-nfs3 -t host1:/ /nfs1 host2:/ /nfs3

Mount both using TCP:

fs-nfs3 -t host1:/ /nfs1 -t host2:/ /nfs3

Mount an NFS filesystem (fs-nfs3 must be running first):

mount -t nfs -o ver3 server_node:/qnx_bin /bin

Mount an NFS filesystem, using TCP (fs-nfs3 must be running first):

mount -t nfs -o tcp,ver3 server:/tmp /mnt

Caveats:

If possible, you should use fs-nfs3 instead of fs-nfs2.