DragonFly On-Line Manual Pages
NBD-SERVER(1) NBD-SERVER(1)
NAME
nbd-server - serve a file as a block device to other computers
running the GNU/Linux(tm) or GNU/Hurd Operating System
SYNOPSIS
nbd-server [ip@]port filename [ size ] [ -r ] [ -m ] [ -c ] [ -l host
list filename ] [ -o section name ] [ -C config file ] [ -M max
connections ] [ -d ]
DESCRIPTION
nbd-server is the server for the Linux Network Block Device (NBD). With
NBD, a client can use a file, exported over the network from a server,
as a block device. It can then be used for whatever purpose a normal
block device (harddisk, CD-ROM, ...) can be used for.
NBD can be useful for diskless clients that need swapspace, but you can
also create a filesystem on it and use it as though it were a local
filesystem.
nbd-server implements some security through a file called
"/usr/local/etc/nbd-server/allow" (by default; a different file can be
chosen with the '-l' option or through a config file specification).
This file must list the IP-addresses or network masks of clients that
are allowed to connect. If it does not exist, all clients are able to
connect. If the file is empty, no clients can connect.
Note that while the command line allows for specifying an export, the
use of this option is deprecated. It is preferred to make use of a
configuration file instead, the format of which is defined in nbdserver(5)
.
While nbd-server is running, new exports can be added by re-writing
configuration files and then sending SIGHUP to nbd-server. SIGHUP
causes nbd-server to re-read its configuration files and to start
serving all new exports which were not served earlier. Reconfiguration
does not modify any existing export, it only appends new ones.
OPTIONS
ip The ip address the server should listen on. This may be an IPv4
address, an IPv6 address, or a hostname. In the latter case,
nbd-server will do a hostname lookup for the name specified, and
will listen on the first address that is returned. For
compatibility with past versions of nbd-server, if an IPv4
address is specified, the @ sign that serves as separator
between the address and port may be replaced by a colon.
If this parameter is not specified, nbd-server will listen on
all local addresses on both IPv4 and IPv6. To limit to IPv4,
specify the address as 0.0.0.0; to limit to IPv6, specify it as
::.
port The port the server should listen to. A valid port is any number
between 1 and 65536; if 0 is used, nbd-server will listen on
stdin (so that nbd-server can be ran from inetd)
filename
The filename of the file that should be exported. This can be
any file, including "real" blockdevices (i.e. a file from /dev).
If the filename includes the literal string "%s", then this %s
will be substituded with the IP-address of the client trying to
connect.
size The size of the block device at the client side. This is
especially useful in conjunction with the -m option
Can optionally be followed by one of K,k,M or m, in which case
the size will be multiplied by 1024 (K or k) or 1048576 (M or m)
-r Export the file read-only. If a client tries to write to a read-
only exported file, it will receive an error, but the connection
will stay up.
-m Work with multiple files. This can be used to export
blockdevices that are larger than the maximum allowed filesize
on a given filesystem; i.e. when the filesystem does not allow
files larger than 2GB (which is true for Linux 2.2 and below),
you can use this option to store the data in multiple files and
export a larger filesystem, if needed.
To use this option, you must create a number of files with names
in the format "name.X", where "name" is given as the filename
argument to nbd-server, and "X" is a number starting by 0 and
going up for each file.
Allowing more flexibility for this option is planned for future
versions.
-c Copy on write. When this option is provided, write-operations
are not done to the exported file, but to a separate file. This
separate file is removed when the connection is closed, which
means that serving this way will make nbd-server slow down
(especially on large block devices with lots of writes), and
that after disconnecting and reconnecting the client or the
server, all changes are lost.
-C Specify configuration file. The default configuration file, if
this parameter is not specified, is /usr/local/etc/nbd-
server/config.
Note that the configuration file is always parsed and the
entries in the file used, even if an extra server is specified
on the command line. To disable the configuration file entirely,
either move it away or use the -C option to point nbd-server(1)
to a non-existing or empty configuration file.
Also note that if an empty, incomplete, or invalid configuration
file is specified, nbd-server will produce a warning about
failure to parse the config file. If the command line contains a
fully specified configuration, this warning is harmless and may
be ignored.
-M Specify the maximum number of opened connections. If this
parameter is not specified, no limit is set.
-d Do not fork. Useful for debugging.
host list filename
This argument should contain a list of IP-addresses for hosts
that may connect to the server. Wildcards are not allowed. If
the file does not exist, it is ignored (and any host can
connect); If the file does exist, but is empty, no host can
connect. By default, the name 'nbd_server.allow' is used, and
looked for in the current directory, unless nbd-server is
compiled as a daemon, in which case it is looked for in the
root-directory.
section name
If the -o argument is given on the command line, then nbd-server
will output a configuration file section with this as the header
that is functionally equivalent to the other options specified
on the command line, and exit. This is useful for migrating
pre-2.9 nbd-server initscript configuration files to the new
format.
EXAMPLES
Some examples of nbd-server usage:
o To export a file /export/nbd/exp-bl-dev on port 2000:
nbd-server 2000 /export/nbd/exp-bl-dev
o To export a the same file read-only:
nbd-server 2000 /export/nbd/exp-bl-dev -r
o To export the same file read-write, but make sure changes are lost
after restarting the client or the server:
nbd-server 2000 /export/nbd/exp-bl-dev -c
SEE ALSO
nbd-client (8), nbd-server (5), nbd-trdump (8)
AUTHOR
The NBD kernel module and the NBD tools were originally written by
Pavel Machek (pavel@ucw.cz)
The Linux kernel module is now maintained by Paul Clements
(Paul.Clements@steeleye.com), while the userland tools are maintained
by Wouter Verhelst (<wouter@debian.org>)
On The Hurd there is a regular translator available to perform the
client side of the protocol, and the use of nbd-client is not required.
Please see the relevant documentation for more information.
This manual page was written by Wouter Verhelst (<wouter@debian.org>)
for the Debian GNU/Linux system (but may be used by others).
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
$ NBD-SERVER(1)