r296: Documentation updates
[nbd.git] / nbd-server.1.sgml
1 <!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
2
3 <!-- Process this file with docbook-to-man to generate an nroff manual
4      page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
5      the manual page with: `docbook-to-man manpage.sgml | nroff -man |
6      less'.  A typical entry in a Makefile or Makefile.am is:
7
8 manpage.1: manpage.sgml
9         docbook-to-man $< > $@
10   -->
11
12   <!-- Fill in your name for FIRSTNAME and SURNAME. -->
13   <!ENTITY dhfirstname "<firstname>Wouter</firstname>">
14   <!ENTITY dhsurname   "<surname>Verhelst</surname>">
15   <!-- Please adjust the date whenever revising the manpage. -->
16   <!ENTITY dhdate      "<date>$Date$</date>">
17   <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
18        allowed: see man(7), man(1). -->
19   <!ENTITY dhsection   "<manvolnum>1</manvolnum>">
20   <!ENTITY dhemail     "<email>wouter@debian.org</email>">
21   <!ENTITY dhusername  "Wouter Verhelst">
22   <!ENTITY dhucpackage "<refentrytitle>NBD-SERVER</refentrytitle>">
23   <!ENTITY dhpackage   "nbd-server">
24
25   <!ENTITY debian      "<productname>Debian GNU/Linux</productname>">
26   <!ENTITY gnu         "<acronym>GNU</acronym>">
27 ]>
28
29 <refentry>
30   <refentryinfo>
31     <address>
32       &dhemail;
33     </address>
34     <author>
35       &dhfirstname;
36       &dhsurname;
37     </author>
38     <copyright>
39       <year>2001</year>
40       <holder>&dhusername;</holder>
41     </copyright>
42     &dhdate;
43   </refentryinfo>
44   <refmeta>
45     &dhucpackage;
46
47     &dhsection;
48   </refmeta>
49   <refnamediv>
50     <refname>&dhpackage;</refname>
51
52     <refpurpose>serve a file as a block device to other computers
53     running the &gnu;/Linux(tm) or &gnu;/Hurd Operating
54     System</refpurpose>
55   </refnamediv>
56   <refsynopsisdiv>
57     <cmdsynopsis>
58       <command>&dhpackage; </command>
59
60       <arg choice=plain><replaceable>[ip:]port</replaceable</arg>
61       <arg choice=plain><replaceable>filename</replaceable></arg>
62       <arg><replaceable>size</replaceable></arg>
63       <arg><option>-r</option></arg>
64       <arg><option>-m</option></arg>
65       <arg><option>-c</option></arg>
66       <arg><option>-a <replaceable>timeout</replaceable></option></arg>
67       <arg><option>-l <replaceable>host list</replaceable></option></arg>
68       <arg><option>-o <replaceable>section name</replaceable></option></arg>
69     </cmdsynopsis>
70   </refsynopsisdiv>
71   <refsect1>
72     <title>DESCRIPTION</title>
73
74     <para><command>&dhpackage;</command> is the server for the Linux
75     Network Block Device (NBD). With NBD, a client can use a file,
76     exported over the network from a server, as a block device. It can
77     then be used for whatever purpose a normal block device (harddisk,
78     CD-ROM, ...) can be used for.</para>
79
80     <para>NBD can be useful for diskless clients that need swapspace,
81     but you can also create a filesystem on it and use it as though it
82     were a local filesystem.</para>
83
84     <para><command>&dhpackage;</command> implements some security
85     through a file called "nbd_server.allow" in the current directory (by default; a different file can be chosen with the '-l' option).
86     This file must list the IP-addresses of clients that are allowed
87     to connect. If it does not exist, all clients are able to connect.
88     If the file is empty, no clients can connect.</para>
89   </refsect1>
90   <refsect1>
91     <title>OPTIONS</title>
92     
93     <variablelist>
94       <varlistentry>
95         <term>ip</term>
96         <listitem>
97           <para>The ip address the server should listen on. If
98           omitted, 0.0.0.0 (aka "any address") is used.</para>
99         </listitem>
100       </varlistentry>
101       <varlistentry>
102         <term><option>port</option>
103         </term>
104         <listitem>
105           <para>The port the server should listen to. A valid port is
106             any number between 1 and 65536; if 0 is used, nbd-server
107             will listen on stdin (so that nbd-server can be ran from
108             inetd)</para>
109         </listitem>
110       </varlistentry>
111       <varlistentry>
112         <term><option>filename</option></term>
113         <listitem>
114           <para>The filename of the file that should be exported. This
115           can be any file, including "real" blockdevices (i.e. a file
116           from /dev). If the filename includes the literal string
117           "%s", then this %s will be substituded with the IP-address
118           of the client trying to connect.</para>
119         </listitem>
120       </varlistentry>
121       <varlistentry>
122         <term><option>size</option></term>
123         <listitem>
124           <para>The size of the block device at the client side. This
125             is especially usefull in conjunction with the -m
126             option</para>
127           <para>Can optionally be followed by one of K,k,M or
128             m, in which case the size will be multiplied by 1024 (K
129             or k) or 1048576 (M or m)</para>
130         </listitem>
131       </varlistentry>
132       <varlistentry>
133         <term><option>-r</option></term>
134         <listitem>
135           <para>Export the file read-only. If a client tries to write
136             to a read-only exported file, it will receive an error, but
137             the connection will stay up.</para>
138         </listitem>
139       </varlistentry>
140       <varlistentry>
141         <term><option>-m</option></term>
142         <listitem>
143           <para>Work with multiple files. This can be used to export
144             blockdevices that are larger than the maximum allowed
145             filesize on a given filesystem; i.e. when the filesystem
146             does not allow files larger than 2GB (which is true for
147             Linux 2.2 and below), you can use this option to store the
148             data in multiple files and export a larger filesystem, if
149             needed.</para>
150           <para>
151             To use this option, you must create a number of files
152             with names in the format "name.X", where "name" is given as
153             the filename argument to nbd-server, and "X" is a number
154             starting by 0 and going up for each file.
155           </para>
156           <para>
157             The files must all be 1GB in size.
158           </para>
159           <para>
160             Allowing more flexibility for this option is planned for
161             future versions.</para>
162         </listitem>
163       </varlistentry>
164       <varlistentry>
165         <term><option>-c</option></term>
166         <listitem>
167           <para>Copy on write. When this option is provided,
168             write-operations are not done to the exported file, but to a
169             separate file. This separate file is removed when the
170             connection is closed, which means that serving this way will
171             make nbd-server slow down (especially on large block devices
172             with lots of writes), and that after disconnecting and
173             reconnecting the client or the server, all changes are
174             lost.</para>
175         </listitem>
176       </varlistentry>
177       <varlistentry>
178         <term><option>-C</option></term>
179         <listitem>
180           <para>Specify configuration file. The default configuration
181             file, if this parameter is not specified, is
182             <filename>@sysconfdir@/nbd-server/config</filename>.</para>
183           <para>Note that the configuration file is always parsed and
184             the entries in the file used, even if an extra server is
185             specified on the command line. To disable the configuration
186             file entirely, either move it away or use the -C option to
187             point <command>nbd-server</command>(1) to a non-existing or
188             empty configuration file.</para>
189         </listitem>
190       </varlistentry>
191       <varlistentry>
192         <term><option>timeout</option></term>
193         <listitem>
194           <para>Maximum number of idle seconds. If a connection is
195             inactive for this amount of time, it is terminated; this is to
196             avoid stale nbd-server processes staying in memory. Use of
197             this option is strongly recommended.</para>
198         </listitem>
199       </varlistentry>
200       <varlistentry>
201         <term><option>host list</option></term>
202         <listitem>
203           <para>This argument should contain a list of IP-addresses
204             for hosts that may connect to the server. Wildcards are
205             <emphasis>not</emphasis> allowed. If the file does not
206             exist, it is ignored (and any host can connect); If the file
207             does exist, but is empty, no host can connect. By default,
208             the name 'nbd_server.allow' is used, and looked for in the
209             current directory, unless nbd-server is compiled as a
210             daemon, in which case it is looked for in the
211             root-directory.</para>
212         </listitem>
213       </varlistentry>
214       <varlistentry>
215         <term><option>section name</option></term>
216         <listitem>
217           <para>If the <option>-o</option> argument is given on the
218           command line, then &dhpackage; will output a configuration
219           file section with this as the header that is functionally
220           equivalent to the other options specified on the command line,
221           and exit. This is useful for migrating pre-2.9 nbd-server
222           initscript configuration files to the new format.</para>
223         </listitem>
224       </varlistentry>
225     </variablelist>
226     
227   </refsect1>
228   <refsect1>
229     <title>EXAMPLES</title>
230     <para>Some examples of nbd-server usage:</para>
231     <itemizedlist mark="none">
232       <listitem>
233         <para>To export a file /export/nbd/exp-bl-dev on port 2000:</para>
234         <para><command>nbd-server 2000 /export/nbd/exp-bl-dev</command></para>
235       </listitem>
236       <listitem>
237         <para>To export a the same file read-only:</para>
238         <para><command>nbd-server 2000 /export/nbd/exp-bl-dev -r</command></para>
239       </listitem>
240       <listitem>
241         <para>To export the same file read-write, but make sure
242           changes are lost after restarting the client or the
243           server:</para>
244         <para><command>nbd-server 2000 /export/nbd/exp-bl-dev
245             -c</command></para>
246       </listitem>
247     </itemizedlist>
248   </refsect1>
249   <refsect1>
250     <title>SEE ALSO</title>
251     
252     <para>nbd-client (8), nbd-server (5), http://nbd.sourceforge.net/roadmap.html</para>
253     
254   </refsect1>
255   <refsect1>
256     <title>AUTHOR</title>
257     <para>The NBD kernel module and the NBD tools were originally
258       written by Pavel Machek (pavel@ucw.cz)</para>
259     
260     <para>The Linux kernel module is now maintained by Paul Clements
261       (Paul.Clements@steeleye.com), while the userland tools are
262       maintained by &dhusername; (&dhemail;)</para>
263
264     <para>On The Hurd there is a regular translator available to perform the
265       client side of the protocol, and the use of
266       <command>nbd-client</command> is not required. Please see the
267       relevant documentation for more information.</para>
268
269     <para>This manual page was written by &dhusername; (&dhemail;) for
270       the &debian; system (but may be used by others).  Permission is
271       granted to copy, distribute and/or modify this document under
272       the terms of the <acronym>GNU</acronym> General Public License,
273       version 2, as published by the Free Software Foundation.</para>
274
275   </refsect1>
276 </refentry>
277
278 <!-- Keep this comment at the end of the file
279 Local variables:
280 mode: sgml
281 sgml-omittag:t
282 sgml-shorttag:t
283 sgml-minimize-attributes:nil
284 sgml-always-quote-attributes:t
285 sgml-indent-step:2
286 sgml-indent-data:t
287 sgml-parent-document:nil
288 sgml-default-dtd-file:nil
289 sgml-exposed-tags:nil
290 sgml-local-catalogs:nil
291 sgml-local-ecat-files:nil
292 End:
293 -->