xref: /freebsd/share/man/man4/fusefs.4 (revision 1687d77197c01c6ffd5bb233c7a15c6ebb9319af)
1*1687d771SAlexander Ziaee.\"
2*1687d771SAlexander Ziaee.\" SPDX-License-Identifier: BSD-2-Clause
3*1687d771SAlexander Ziaee.\"
4*1687d771SAlexander Ziaee.\" Copyright (c) 2019 The FreeBSD Foundation
5*1687d771SAlexander Ziaee.\"
6*1687d771SAlexander Ziaee.\" This documentation was written by BFF Storage Systems, LLC under
7*1687d771SAlexander Ziaee.\" sponsorship from the FreeBSD Foundation.
8*1687d771SAlexander Ziaee.\"
9*1687d771SAlexander Ziaee.\" Redistribution and use in source and binary forms, with or without
10*1687d771SAlexander Ziaee.\" modification, are permitted provided that the following conditions
11*1687d771SAlexander Ziaee.\" are met:
12*1687d771SAlexander Ziaee.\" 1. Redistributions of source code must retain the above copyright
13*1687d771SAlexander Ziaee.\"    notice, this list of conditions and the following disclaimer.
14*1687d771SAlexander Ziaee.\" 2. Redistributions in binary form must reproduce the above copyright
15*1687d771SAlexander Ziaee.\"    notice, this list of conditions and the following disclaimer in the
16*1687d771SAlexander Ziaee.\"    documentation and/or other materials provided with the distribution.
17*1687d771SAlexander Ziaee.\"
18*1687d771SAlexander Ziaee.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19*1687d771SAlexander Ziaee.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20*1687d771SAlexander Ziaee.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21*1687d771SAlexander Ziaee.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22*1687d771SAlexander Ziaee.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23*1687d771SAlexander Ziaee.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24*1687d771SAlexander Ziaee.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25*1687d771SAlexander Ziaee.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26*1687d771SAlexander Ziaee.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27*1687d771SAlexander Ziaee.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28*1687d771SAlexander Ziaee.\" SUCH DAMAGE.
29*1687d771SAlexander Ziaee.Dd July 31, 2019
30*1687d771SAlexander Ziaee.Dt FUSEFS 4
31*1687d771SAlexander Ziaee.Os
32*1687d771SAlexander Ziaee.Sh NAME
33*1687d771SAlexander Ziaee.Nm fusefs
34*1687d771SAlexander Ziaee.Nd "File system in USErspace"
35*1687d771SAlexander Ziaee.Sh SYNOPSIS
36*1687d771SAlexander ZiaeeTo link into the kernel:
37*1687d771SAlexander Ziaee.Bd -ragged -offset indent
38*1687d771SAlexander Ziaee.Cd "options FUSEFS"
39*1687d771SAlexander Ziaee.Ed
40*1687d771SAlexander Ziaee.Pp
41*1687d771SAlexander ZiaeeTo load as a loadable kernel module:
42*1687d771SAlexander Ziaee.Pp
43*1687d771SAlexander Ziaee.Dl "kldload fusefs"
44*1687d771SAlexander Ziaee.Sh DESCRIPTION
45*1687d771SAlexander ZiaeeThe
46*1687d771SAlexander Ziaee.Nm
47*1687d771SAlexander Ziaeedriver implements a file system that is serviced by a userspace program.
48*1687d771SAlexander Ziaee.Pp
49*1687d771SAlexander ZiaeeThere are many uses for
50*1687d771SAlexander Ziaee.Nm .
51*1687d771SAlexander ZiaeeUserspace daemons can access libraries or programming languages that cannot run
52*1687d771SAlexander Ziaeein kernel-mode, for example.
53*1687d771SAlexander Ziaee.Nm
54*1687d771SAlexander Ziaeeis also useful for developing and debugging file systems, because a crash of
55*1687d771SAlexander Ziaeethe daemon will not take down the entire operating system.
56*1687d771SAlexander ZiaeeFinally, the
57*1687d771SAlexander Ziaee.Nm
58*1687d771SAlexander ZiaeeAPI is portable.
59*1687d771SAlexander ZiaeeMany daemons can run on multiple operating systems with minimal modifications.
60*1687d771SAlexander Ziaee.Sh SYSCTL VARIABLES
61*1687d771SAlexander ZiaeeThe following
62*1687d771SAlexander Ziaee.Xr sysctl 8
63*1687d771SAlexander Ziaeevariables are available:
64*1687d771SAlexander Ziaee.Bl -tag -width indent
65*1687d771SAlexander Ziaee.It Va vfs.fusefs.kernelabi_major
66*1687d771SAlexander ZiaeeMajor version of the FUSE kernel ABI supported by this driver.
67*1687d771SAlexander Ziaee.It Va vfs.fusefs.kernelabi_minor
68*1687d771SAlexander ZiaeeMinor version of the FUSE kernel ABI supported by this driver.
69*1687d771SAlexander Ziaee.It Va vfs.fusefs.data_cache_mode
70*1687d771SAlexander ZiaeeControls how
71*1687d771SAlexander Ziaee.Nm
72*1687d771SAlexander Ziaeewill cache file data for pre-7.23 file systems.
73*1687d771SAlexander ZiaeeA value of 0 will disable caching entirely.
74*1687d771SAlexander ZiaeeEvery data access will be forwarded to the daemon.
75*1687d771SAlexander ZiaeeA value of 1 will select write-through caching.
76*1687d771SAlexander ZiaeeReads will be cached in the VFS layer as usual.
77*1687d771SAlexander ZiaeeWrites will be immediately forwarded to the daemon, and also added to the cache.
78*1687d771SAlexander ZiaeeA value of 2 will select write-back caching.
79*1687d771SAlexander ZiaeeReads and writes will both be cached, and writes will occasionally be flushed
80*1687d771SAlexander Ziaeeto the daemon by the page daemon.
81*1687d771SAlexander ZiaeeWrite-back caching is usually unsafe, especially for FUSE file systems that
82*1687d771SAlexander Ziaeerequire network access.
83*1687d771SAlexander Ziaee.Pp
84*1687d771SAlexander ZiaeeFUSE file systems using protocol 7.23 or later specify their cache behavior
85*1687d771SAlexander Ziaeeon a per-mountpoint basis, ignoring this sysctl.
86*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.filehandle_count
87*1687d771SAlexander ZiaeeCurrent number of open FUSE file handles.
88*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.lookup_cache_hits
89*1687d771SAlexander ZiaeeTotal number of lookup cache hits.
90*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.lookup_cache_misses
91*1687d771SAlexander ZiaeeTotal number of lookup cache misses.
92*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.node_count
93*1687d771SAlexander ZiaeeCurrent number of allocated FUSE vnodes.
94*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.ticket_count
95*1687d771SAlexander ZiaeeCurrent number of allocated FUSE tickets, which is roughly equal to the number
96*1687d771SAlexander Ziaeeof FUSE operations currently being processed by daemons.
97*1687d771SAlexander Ziaee.\" Undocumented sysctls
98*1687d771SAlexander Ziaee.\" ====================
99*1687d771SAlexander Ziaee.\" vfs.fusefs.enforce_dev_perms: I don't understand it well enough.
100*1687d771SAlexander Ziaee.\" vfs.fusefs.iov_credit: I don't understand it well enough
101*1687d771SAlexander Ziaee.\" vfs.fusefs.iov_permanent_bufsize: I don't understand it well enough
102*1687d771SAlexander Ziaee.El
103*1687d771SAlexander Ziaee.Sh SEE ALSO
104*1687d771SAlexander Ziaee.Xr mount_fusefs 8
105*1687d771SAlexander Ziaee.Sh HISTORY
106*1687d771SAlexander ZiaeeThe
107*1687d771SAlexander Ziaee.Nm fuse
108*1687d771SAlexander Ziaeedriver was written as the part of the
109*1687d771SAlexander Ziaee.Fx
110*1687d771SAlexander Ziaeeimplementation of the FUSE userspace file system framework (see
111*1687d771SAlexander Ziaee.Lk https://github.com/libfuse/libfuse )
112*1687d771SAlexander Ziaeeand first appeared in the
113*1687d771SAlexander Ziaee.Pa sysutils/fusefs-kmod
114*1687d771SAlexander Ziaeeport, supporting
115*1687d771SAlexander Ziaee.Fx 6.0 .
116*1687d771SAlexander ZiaeeIt was added to the base system in
117*1687d771SAlexander Ziaee.Fx 10.0 ,
118*1687d771SAlexander Ziaeeand renamed to
119*1687d771SAlexander Ziaee.Nm
120*1687d771SAlexander Ziaeefor
121*1687d771SAlexander Ziaee.Fx 12.1 .
122*1687d771SAlexander Ziaee.Sh AUTHORS
123*1687d771SAlexander Ziaee.An -nosplit
124*1687d771SAlexander ZiaeeThe
125*1687d771SAlexander Ziaee.Nm fuse
126*1687d771SAlexander Ziaeedriver was originally written by
127*1687d771SAlexander Ziaee.An Csaba Henk
128*1687d771SAlexander Ziaeeas a Google Summer of Code project in 2005.
129*1687d771SAlexander ZiaeeIt was further developed by
130*1687d771SAlexander Ziaee.An Ilya Putsikau
131*1687d771SAlexander Ziaeeduring Google Summer of Code 2011, and that version was integrated into the
132*1687d771SAlexander Ziaeebase system by
133*1687d771SAlexander Ziaee.An Attilio Rao Aq Mt attilio@FreeBSD.org .
134*1687d771SAlexander Ziaee.Pp
135*1687d771SAlexander ZiaeeThis manual page was written by
136*1687d771SAlexander Ziaee.An Alan Somers Aq Mt asomers@FreeBSD.org .
137