Provided by: nbdkit_1.24.1-2ubuntu4_amd64 bug

NAME

       nbdkit-file-plugin - nbdkit file plugin

SYNOPSIS

        nbdkit file [file=]FILENAME
                    [cache=default|none] [fadvise=normal|random|sequential]

        nbdkit file dir=DIRNAME

DESCRIPTION

       "nbdkit-file-plugin" is a file serving plugin for nbdkit(1).

       It serves the named "FILENAME" over NBD.  Local block devices (eg. /dev/sda) may also be served.  It may
       also be used to serve any file within a given "DIRECTORY", according to which export name the guest
       requests.

PARAMETERS

       One of file or dir must be given to determine which mode the server will use.

       cache=default
       cache=none
           (nbdkit ≥ 1.22, not Windows)

           Using  "cache=none" tries to prevent the kernel from keeping parts of the file that have already been
           read or written in the page cache.

       fadvise=normal
       fadvise=random
       fadvise=sequential
           (nbdkit ≥ 1.22, not Windows)

           This optional flag hints to the kernel that you will access the file normally, or in a random  order,
           or  sequentially.  The exact behaviour depends on your operating system, but for Linux using "normal"
           causes the kernel to read-ahead, "sequential" causes the  kernel  to  read-ahead  twice  as  much  as
           "normal", and "random" turns off read-ahead.  See also posix_fadvise(2).

           The default is "normal".

       [file=]FILENAME
           Serve the file named "FILENAME".  A local block device name can also be used here.  When this mode is
           used, the export name requested by the client is ignored.

           "file=" is a magic config key and may be omitted in most cases.  See "Magic parameters" in nbdkit(1).

       [file=]\\.\C:
       [file=]\\.\Volume
       [file=]\\.\PhysicalDiskN
       [file=]\\.\CdRomN
           (Windows only)

           Serve      the      Windows      volume      specified      by     the     device     name.      See:
           https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#win32-device-namespaces.

       dir=DIRNAME
           (nbdkit ≥ 1.22, not Windows)

           Serve all regular files and block devices located directly  within  the  directory  named  "DIRNAME",
           including  those  found  by  following symbolic links.  Other special files in the directory (such as
           subdirectories, fifos, or Unix sockets) are ignored.  When this mode is used, the file to  be  served
           is  chosen  by the export name passed by the client, where the client can request a list of available
           exports using NBD_OPT_LIST.  A client that  requests  the  default  export  ("")  will  be  rejected.
           However,  you can use nbdkit-exportname-filter(1) to adjust what export names the client sees or uses
           as a default.  For security, when using directory mode, this plugin  will  not  accept  export  names
           containing slash ("/").

NOTES

   Optimizing for random or sequential access
       If  you  know  in advance that the NBD client will access the file randomly or only sequentially then you
       can hint that to the kernel using:

        nbdkit file disk.img fadvise=random
        nbdkit file disk.img fadvise=sequential

       As described in the "PARAMETERS" section above, on Linux this disables or increases the amount  of  read-
       ahead that the kernel does.

   Reducing evictions from the page cache
       If the file is very large and you know the client will only read/write the file sequentially one time (eg
       for  making a single copy or backup) then this will stop other processes from being evicted from the page
       cache:

        nbdkit file disk.img fadvise=sequential cache=none

   Files on tmpfs
       If you want to expose a file that resides on a file system known to have poor lseek(2)  performance  when
       searching for holes ("tmpfs" is known to be one such file system), you can use nbdkit-noextents-filter(1)
       to avoid the penalty of probing for holes.

   Plugin --dump-plugin output
       You can obtain extra information about how the file plugin was compiled by doing:

        nbdkit file --dump-plugin

       Some  of  the  fields  which may appear are listed below.  Note these are for information only and may be
       changed or removed at any time in the future.

       "file_blksszget=yes"
       "file_blkzeroout=yes"
           If both set, the plugin may be able to efficiently zero ranges of block devices, where the driver and
           block device itself supports this.

       "file_falloc_fl_punch_hole=yes"
           If set, the plugin may be able to punch holes (make sparse) files and block devices.

       "file_falloc_fl_zero_range=yes"
           If set, the plugin may be able to efficiently zero ranges of files and block devices.

       "winfile=yes"
           If present, this is the Windows version of the file plugin which lacks certain features as  noted  in
           this manual.

   Windows sparse files
       This  plugin  supports  sparse files on Windows (with hole punching).  However for this to work the files
       must already have the sparse property,  the  plugin  will  not  make  existing  files  sparse.   Use  the
       "fsutil sparse" command to control the sparseness property of files.

   Old "rdelay" and "wdelay" parameters.
       Before  nbdkit supported filters (< 1.2) this plugin had extra parameters "rdelay" and "wdelay" to insert
       delays.  These parameters have been moved to nbdkit-delay-filter(1).  Modify  the  command  line  to  add
       --filter=delay in order to use these parameters.

   Concatenating files
       To concatenate and export multiple files, use nbdkit-split-plugin(1).

DEBUG FLAG

       -D file.zero=1
           This  enables  very  verbose debugging of the NBD zero request.  This can be used to tell if the file
           plugin is able to zero ranges in the file or block device efficiently or not.

FILES

       $plugindir/nbdkit-file-plugin.so
           The plugin.

           Use "nbdkit --dump-config" to find the location of $plugindir.

VERSION

       "nbdkit-file-plugin" first appeared in nbdkit 1.0.

SEE ALSO

       nbdkit(1),        nbdkit-plugin(3),        nbdkit-split-plugin(1),         nbdkit-partitioning-plugin(1),
       nbdkit-tmpdisk-plugin(1), nbdkit-exportname-filter(1), nbdkit-fua-filter(1), nbdkit-noextents-filter(1).

AUTHORS

       Eric Blake

       Nir Soffer

       Richard W.M. Jones

COPYRIGHT

       Copyright (C) 2013-2020 Red Hat Inc.

LICENSE

       Redistribution  and  use in source and binary forms, with or without modification, are permitted provided
       that the following conditions are met:

       •   Redistributions of source code must retain the above copyright notice, this list  of  conditions  and
           the following disclaimer.

       •   Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
           the following disclaimer in the documentation and/or other materials provided with the distribution.

       •   Neither  the  name  of  Red  Hat  nor the names of its contributors may be used to endorse or promote
           products derived from this software without specific prior written permission.

       THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS  OR  IMPLIED  WARRANTIES,
       INCLUDING,  BUT  NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE  FOR  ANY  DIRECT,  INDIRECT,
       INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
       ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  LIABILITY,  OR  TORT  (INCLUDING  NEGLIGENCE  OR
       OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
       DAMAGE.

nbdkit-1.24.1                                      2021-01-20                              nbdkit-file-plugin(1)