diod.conf - distributed I/O daemon configuration file
The diod.conf file is actually a LUA script. Internal config
defaults are overridden by settings in the file, and some of those values
can in turn be overridden on the command line.
Config settings take the form of LUA global variables which are
read out after the config file is executed. Therefore, the values of said
variables can either be statically assigned or computed. The variables are
described below.
- listen = {
"IP:PORT" [,"IP:PORT",...] }
- List the interfaces and ports that diod should listen on. The
default is "0.0.0.0:564".
- exports = {
"/path" [, "/path", ...] }
- List the file systems that clients will be allowed to mount. All paths
should be fully qualified. The exports table can include two types of
element: a string element (as above), or an alternate table element form
{ path="/path", opts="ro" }. In the alternate
form, the (optional) opts attribute is a comma-separated list of export
options, as described below in EXPORT OPTIONS. The two table element forms
can be mixed in the exports table. Note that although diod will not
traverse file system boundaries for a given mount due to inode uniqueness
constraints, subdirectories of a file system can be separately
exported.
- exportall =
1
- Export all file systems listed in /proc/mounts. If new file systems are
mounted after diod has started, they will become immediately
mountable. If there is a duplicate entry for a file system in the
exports list, any options listed in the exports entry will
apply.
- exportopts =
"opt,opt,..."
- Establish a default set of export options. These are overridden, not
appended to, by opts attributes in an "exports" entry.
- nwthreads =
INTEGER
- Sets the (fixed) number of worker threads created to handle 9P requests
for a unique aname. The default is 16 per aname.
- auth_required
= 0
- Allow clients to connect without authentication, i.e. without a valid
MUNGE credential.
- userdb = 0
- This option disables password/group lookups. It allows any uid to attach
and assumes gid=uid, and supplementary groups contain only the primary
gid.
- allsquash =
1
- Remap all users to "nobody". The attaching user need not be
present in the password file.
- squashuser =
"nobody"
- Change the squash user from the default of nobody. The squash user must be
present in the password file.
- logdest =
"DEST"
- Set the destination for logging. DEST is in the form of
syslog:facility:level or filename. The default is
syslog:daemon:err.
- statfs_passthru
= 1
- This option configures statfs to return the host file system's type rather
than V9FS_MAGIC. The default is 0 (return V9FS_MAGIC).
The following export options are defined:
- ro
- Export the file system read-only.
- suppress
- Exclude this file system from exports. Useful following exportall =
1.
- sharefd
- Allow limited server-side file descriptor sharing for files opened
O_RDONLY by the same user.
- privport
- Reject attach request unless client is bound to a port in the privileged
port range (512-1023). The diodcat utility has a --privport
option which, when run as root, binds to a privileged socket before
connecting. This provides limited additional security, especially in open
networks, as it is vulnerable to IP spoofing attacks.
- noauth
- Allow attach to succeed without authentication.
--
-- example diod.conf
--
listen = { "0.0.0.0:10002" }
exports = {
"/home",
"/usr/global",
{ path="ctl", opts="ro,noauth" },
{ path="/usr/local", opts="ro" },
}
nwthreads = 8
lua (1), diod (8), openlog (3)
http://www.lua.org/