2019-04-13 13:59:01 +00:00
|
|
|
.\"
|
|
|
|
.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
|
|
|
.\"
|
|
|
|
.\" Copyright (c) 2019 The FreeBSD Foundation
|
|
|
|
.\"
|
2019-06-28 04:18:10 +00:00
|
|
|
.\" This documentation was written by BFF Storage Systems, LLC under
|
|
|
|
.\" sponsorship from the FreeBSD Foundation.
|
2019-04-13 13:59:01 +00:00
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. 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.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR 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.
|
|
|
|
.\"
|
|
|
|
.\" $FreeBSD$
|
2019-07-31 16:07:16 +00:00
|
|
|
.Dd July 31, 2019
|
2019-04-13 13:59:01 +00:00
|
|
|
.Dt FUSEFS 5
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm fusefs
|
|
|
|
.Nd "File system in USErspace"
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
To link into the kernel:
|
|
|
|
.Bd -ragged -offset indent
|
|
|
|
.Cd "options FUSEFS"
|
|
|
|
.Ed
|
|
|
|
.Pp
|
|
|
|
To load as a loadable kernel module:
|
|
|
|
.Pp
|
|
|
|
.Dl "kldload fusefs"
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
driver implements a file system that is serviced by a userspace program.
|
|
|
|
.Pp
|
|
|
|
There are many uses for
|
|
|
|
.Nm .
|
|
|
|
Userspace daemons can access libraries or programming languages that cannot run
|
|
|
|
in kernel-mode, for example.
|
|
|
|
.Nm
|
|
|
|
is also useful for developing and debugging file systems, because a crash of
|
|
|
|
the daemon will not take down the entire operating system.
|
|
|
|
Finally, the
|
|
|
|
.Nm
|
|
|
|
API is portable.
|
|
|
|
Many daemons can run on multiple operating systems with minimal modifications.
|
|
|
|
.Sh SYSCTL VARIABLES
|
2019-07-31 16:07:16 +00:00
|
|
|
The following
|
2019-04-13 13:59:01 +00:00
|
|
|
.Xr sysctl 8
|
2019-06-27 16:30:25 +00:00
|
|
|
variables are available:
|
2019-04-13 13:59:01 +00:00
|
|
|
.Bl -tag -width indent
|
|
|
|
.It Va vfs.fusefs.kernelabi_major
|
|
|
|
Major version of the FUSE kernel ABI supported by this driver.
|
|
|
|
.It Va vfs.fusefs.kernelabi_minor
|
|
|
|
Minor version of the FUSE kernel ABI supported by this driver.
|
|
|
|
.It Va vfs.fusefs.data_cache_mode
|
|
|
|
Controls how
|
|
|
|
.Nm
|
2019-06-26 17:32:31 +00:00
|
|
|
will cache file data for pre-7.23 file systems.
|
2019-04-13 13:59:01 +00:00
|
|
|
A value of 0 will disable caching entirely.
|
|
|
|
Every data access will be forwarded to the daemon.
|
|
|
|
A value of 1 will select write-through caching.
|
|
|
|
Reads will be cached in the VFS layer as usual.
|
|
|
|
Writes will be immediately forwarded to the daemon, and also added to the cache.
|
|
|
|
A value of 2 will select write-back caching.
|
|
|
|
Reads and writes will both be cached, and writes will occasionally be flushed
|
|
|
|
to the daemon by the page daemon.
|
|
|
|
Write-back caching is usually unsafe, especially for FUSE file systems that
|
|
|
|
require network access.
|
2019-06-26 17:32:31 +00:00
|
|
|
.Pp
|
|
|
|
FUSE file systems using protocol 7.23 or later specify their cache behavior
|
|
|
|
on a per-mountpoint basis, ignoring this sysctl.
|
2019-06-27 16:30:25 +00:00
|
|
|
.It Va vfs.fusefs.stats.filehandle_count
|
|
|
|
Current number of open FUSE file handles.
|
|
|
|
.It Va vfs.fusefs.stats.lookup_cache_hits
|
|
|
|
Total number of lookup cache hits.
|
|
|
|
.It Va vfs.fusefs.stats.lookup_cache_misses
|
|
|
|
Total number of lookup cache misses.
|
|
|
|
.It Va vfs.fusefs.stats.node_count
|
|
|
|
Current number of allocated FUSE vnodes.
|
|
|
|
.It Va vfs.fusefs.stats.ticket_count
|
|
|
|
Current number of allocated FUSE tickets, which is roughly equal to the number
|
2019-07-31 16:07:16 +00:00
|
|
|
of FUSE operations currently being processed by daemons.
|
2019-04-13 13:59:01 +00:00
|
|
|
.\" Undocumented sysctls
|
|
|
|
.\" ====================
|
|
|
|
.\" vfs.fusefs.enforce_dev_perms: I don't understand it well enough.
|
|
|
|
.\" vfs.fusefs.iov_credit: I don't understand it well enough
|
|
|
|
.\" vfs.fusefs.iov_permanent_bufsize: I don't understand it well enough
|
2019-07-31 16:07:16 +00:00
|
|
|
.El
|
2019-04-13 13:59:01 +00:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr mount_fusefs 8
|
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm fuse
|
|
|
|
driver was written as the part of the
|
|
|
|
.Fx
|
|
|
|
implementation of the FUSE userspace file system framework (see
|
2019-07-31 16:07:16 +00:00
|
|
|
.Lk https://github.com/libfuse/libfuse )
|
2019-04-13 13:59:01 +00:00
|
|
|
and first appeared in the
|
|
|
|
.Pa sysutils/fusefs-kmod
|
|
|
|
port, supporting
|
|
|
|
.Fx 6.0 .
|
|
|
|
It was added to the base system in
|
|
|
|
.Fx 10.0 ,
|
|
|
|
and renamed to
|
|
|
|
.Nm
|
|
|
|
for
|
|
|
|
.Fx 12.1 .
|
|
|
|
.Sh AUTHORS
|
|
|
|
.An -nosplit
|
|
|
|
The
|
|
|
|
.Nm fuse
|
|
|
|
driver was originally written by
|
|
|
|
.An Csaba Henk
|
|
|
|
as a Google Summer of Code project in 2005.
|
|
|
|
It was further developed by
|
|
|
|
.An Ilya Putsikau
|
|
|
|
during Google Summer of Code 2011, and that version was integrated into the
|
|
|
|
base system by
|
|
|
|
.An Attilio Rao Aq Mt attilio@FreeBSD.org .
|
|
|
|
.Pp
|
|
|
|
This manual page was written by
|
|
|
|
.An Alan Somers Aq Mt asomers@FreeBSD.org .
|