1nbdkit-nozero-filter(1)             NBDKIT             nbdkit-nozero-filter(1)
2
3
4

NAME

6       nbdkit-nozero-filter - nbdkit nozero filter
7

SYNOPSIS

9        nbdkit --filter=nozero plugin [plugin-args...] \
10          [zeromode=MODE] [fastzeromode=MODE]
11

DESCRIPTION

13       "nbdkit-nozero-filter" is a filter that intentionally disables
14       efficient handling of sparse file holes (ranges of all-zero bytes)
15       across the NBD protocol.  It is mainly useful for evaluating timing
16       differences between naive vs. sparse-aware connections, and for testing
17       client or server fallbacks.
18

PARAMETERS

20       The parameters "zeromode" and "fastzeromode" are optional and control
21       which mode the filter will use.
22
23       zeromode=none
24           Zero support is not advertised to the client; clients must
25           explicitly write any regions of zero like any other normal write.
26
27           This is the default if the "zeromode" parameter is not specified.
28
29       zeromode=emulate
30           Zero support is advertised, but emulated by the filter by using the
31           plugin's "pwrite" callback, regardless of whether the plugin itself
32           has a more efficient C"zero" callback.
33
34       zeromode=notrim
35           (nbdkit ≥ 1.14)
36
37           Zero requests are forwarded on to the plugin, except that the
38           plugin will never see the "NBDKIT_MAY_TRIM" flag.  This can help
39           determine if the client permitting trimming during zero operations
40           makes a difference.  It is an error to request this mode if the
41           plugin lacks the "zero" callback.
42
43       zeromode=plugin
44           (nbdkit ≥ 1.16)
45
46           Zero requests are forwarded on to the plugin, unchanged by the
47           filter; this mode is helpful when experimenting with the
48           "fastzeromode" parameter.  It is an error to request this mode if
49           the plugin lacks the "zero" callback.
50
51       fastzeromode=none
52           (nbdkit ≥ 1.16)
53
54           Support for fast zeroing is not advertised to the client.
55
56       fastzeromode=slow
57           (nbdkit ≥ 1.16)
58
59           Fast zero support is advertised to the client, but all fast zero
60           requests result in an immediate "ENOTSUP" failure rather than
61           performing any fallback attempts.
62
63       fastzeromode=ignore
64           (nbdkit ≥ 1.16)
65
66           This mode is unsafe: Fast zero support is advertised to the client,
67           but all fast zero requests behave as if the fast zero flag had not
68           been included.  This behavior is typically contrary to the NBD
69           specification, but can be useful for comparison against the actual
70           fast zero implementation to see if fast zeroes make a difference.
71
72       fastzeromode=default
73           (nbdkit ≥ 1.16)
74
75           This mode is the default.  When paired with "zeromode=emulate",
76           fast zeroes are advertised but fast zero requests always fail
77           (similar to "slow"); when paired with "zeromode=notrim" or
78           "zeromode=plugin", fast zero support is left to the plugin
79           (although in the latter case, the nozero filter could be omitted
80           for the same behavior).
81

EXAMPLES

83       Serve the file disk.img, but force the client to write zeroes
84       explicitly rather than with "NBD_CMD_WRITE_ZEROES":
85
86        nbdkit --filter=nozero file disk.img
87
88       Serve the file disk.img, allowing the client to take advantage of less
89       network traffic via "NBD_CMD_WRITE_ZEROES", but fail any fast zero
90       requests up front and force all other zero requests to write data
91       explicitly rather than punching any holes:
92
93        nbdkit --filter=nozero file zeromode=emulate disk.img
94
95       Serve the file disk.img, but do not advertise fast zero support to the
96       client even if the plugin supports it:
97
98        nbdkit --filter=nozero file zeromode=plugin fastzeromode=none disk.img
99

FILES

101       $filterdir/nbdkit-nozero-filter.so
102           The filter.
103
104           Use "nbdkit --dump-config" to find the location of $filterdir.
105

VERSION

107       "nbdkit-nozero-filter" first appeared in nbdkit 1.4.
108

SEE ALSO

110       nbdkit(1), nbdkit-file-plugin(1), nbdkit-filter(3),
111       nbdkit-fua-filter(1), nbdkit-nocache-filter(1),
112       nbdkit-noparallel-filter(1), nbdkit-noextents-filter(1).
113

AUTHORS

115       Eric Blake
116
118       Copyright (C) 2018-2020 Red Hat Inc.
119

LICENSE

121       Redistribution and use in source and binary forms, with or without
122       modification, are permitted provided that the following conditions are
123       met:
124
125       ·   Redistributions of source code must retain the above copyright
126           notice, this list of conditions and the following disclaimer.
127
128       ·   Redistributions in binary form must reproduce the above copyright
129           notice, this list of conditions and the following disclaimer in the
130           documentation and/or other materials provided with the
131           distribution.
132
133       ·   Neither the name of Red Hat nor the names of its contributors may
134           be used to endorse or promote products derived from this software
135           without specific prior written permission.
136
137       THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
138       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
139       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
140       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
141       LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
142       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
143       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
144       BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
145       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
146       OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
147       ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
148
149
150
151nbdkit-1.24.2                     2021-03-02           nbdkit-nozero-filter(1)
Impressum