mirror of
https://github.com/versity/scoutfs.git
synced 2025-12-23 05:25:18 +00:00
750 lines
23 KiB
Groff
750 lines
23 KiB
Groff
.TH scoutfs 8
|
|
.SH NAME
|
|
scoutfs \- scoutfs management utility
|
|
.SH DESCRIPTION
|
|
The
|
|
.B scoutfs
|
|
utility provides commands to create and manage a ScoutFS filesystem.
|
|
.SH COMMANDS
|
|
|
|
Note: Commands taking the
|
|
.B --path
|
|
option will, when the option is omitted, fall back to using the value of the
|
|
.I SCOUTFS_MOUNT_PATH
|
|
environment variable. If that variable is also absent the current working
|
|
directory will be used.
|
|
|
|
.TP
|
|
.BI "change-format-version [-V, --format-version VERS] [-F|--offline] META-DEVICE DATA-DEVICE"
|
|
.sp
|
|
Change the format version of an existing file system. The maxmimum
|
|
supported version is used by default. A specific version in the range
|
|
can be specified. The range of supported versions in shown in the
|
|
output of --help.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-F, --offline"
|
|
Change the format version by writing directly to the metadata and data
|
|
devices. Like mkfs, this writes directly to the devices without
|
|
protection and must only be used on completely unmounted devices. The
|
|
command will fail if it sees evidence of active quorum use of the device
|
|
or of previously connected clients which haven't been reclaimed. The
|
|
only way to avoid these checks is to fully mount and cleanly unmount the
|
|
file system.
|
|
.sp
|
|
This is not an atomic operation because it writes to blocks on two
|
|
devices. Write failure can result in the versions becoming out of sync
|
|
which will prevent the system from mouting. To recover the error must
|
|
be resolved so the command can be repeated and successfully write to
|
|
the super blocks on both devices.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "change-quorum-config {-Q|--quorum-slot NR,ADDR,PORT} [-F|--offline] META-DEVICE"
|
|
.sp
|
|
Change the quorum configuration for an existing file system. The new
|
|
configuration completely replaces the old configuration. Any slots
|
|
from the old configuration that should be retained must be described
|
|
with arguments in the new configuration.
|
|
.sp
|
|
Currently the configuration may only be changed offline.
|
|
.sp
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.B "-Q, --quorum-slot NR,ADDR,PORT"
|
|
The quorum configuration is built by specifying configured slots with
|
|
multiple arguments as described in the
|
|
.B mkfs
|
|
command.
|
|
.TP
|
|
.B "-F, --offline"
|
|
Perform the change offline by updating the superblock in the metadata
|
|
device. The command will read the super block and refuse to make the
|
|
change if it sees any evidence that the metadata device is currently in
|
|
use. The file system must be successfully unmounted after possibly
|
|
recovering any previously unresolved mounts for the change to be
|
|
successful. After the change succeeds the newly configured slots can
|
|
be used by mounts.
|
|
.sp
|
|
The offline change directly reads from and writes to the device and does
|
|
not protect against concurrent use of the device. It must be carefully
|
|
run when the file system will not be mounted.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "counters [-t|--table] SYSFS-DIR"
|
|
.sp
|
|
Display the counters and their values for a mounted ScoutFS filesystem.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.B SYSFS-DIR
|
|
The mount's sysfs directory in which to find the
|
|
.B counters/
|
|
directory when then contains files for each counter.
|
|
The sysfs directory is
|
|
of the form
|
|
.I /sys/fs/scoutfs/f.<fsid>.r.<rid>/
|
|
\&.
|
|
.TP
|
|
.B "-t, --table"
|
|
Format the counters into a columnar table that fills the width of the display
|
|
instead of printing one counter per line.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "data-waiting {-I|--inode} INODE-NUM {-B|--block} BLOCK-NUM [-p|--path PATH]"
|
|
.sp
|
|
Display all the files and blocks for which there is a task blocked waiting on
|
|
offline data.
|
|
.sp
|
|
The results are sorted by the file's inode number and the
|
|
logical block offset that is being waited on.
|
|
.sp
|
|
Each line of output describes a block in a file that has a task waiting
|
|
and is formatted as:
|
|
.I "ino <nr> iblock <nr> ops [str]"
|
|
\&. The ops string indicates blocked operations seperated by commas and can
|
|
include
|
|
.B read
|
|
for a read operation,
|
|
.B write
|
|
for a write operation, and
|
|
.B change_size
|
|
for a truncate or extending write.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.B "-I, --inode INODE-NUM"
|
|
Start iterating over waiting tasks from the given inode number.
|
|
Value of 0 will show all waiting tasks.
|
|
.TP
|
|
.B "-B, --block BLOCK-NUM"
|
|
Start iterating over waiting tasks from the given logical block number
|
|
in the starting inode. Value of 0 will show blocks in the first inode
|
|
and then continue to show all blocks with tasks waiting in all the
|
|
remaining inodes.
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "data-wait-err {-I|--inode} INODE-NUM {-V|--version} VER-NUM {-F|--offset} OFF-NUM {-C|--count} COUNT {-O|--op} OP {-E|--err} ERR [-p|--path PATH]"
|
|
.sp
|
|
Return error from matching waiters.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.B "-C, --count COUNT"
|
|
Count.
|
|
.TP
|
|
.B "-E, --err ERR"
|
|
Error.
|
|
.TP
|
|
.B "-F, --offset OFF-NUM"
|
|
Offset. May be expressed in bytes, or with KMGTP (Kibi, Mibi, etc.) size
|
|
suffixes.
|
|
.TP
|
|
.B "-I, --inode INODE-NUM"
|
|
Inode number.
|
|
.TP
|
|
.B "-O, --op OP"
|
|
Operation. One of: "read", "write", "change_size".
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "df [-h|--human-readable] [-p|--path PATH]"
|
|
.sp
|
|
Display available and used space on the ScoutFS data and metadata devices.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-h, --human-readable"
|
|
Output sizes in human-readable size units (e.g. 500G, 1.2P) rather than number
|
|
of ScoutFS allocation blocks.
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "get-allocated-inos [-i|--ino INO] [-s|--single] [-p|--path PATH]"
|
|
.sp
|
|
This debugging command prints allocated inode numbers. It only prints
|
|
inodes
|
|
found in the group that contains the starting inode. The printed inode
|
|
numbers aren't necessarily reachable. They could be anywhere in the
|
|
process from being unlinked to finally deleted when their items
|
|
were found.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-i, --ino INO"
|
|
The first 64bit inode number which could be printed.
|
|
.TP
|
|
.B "-s, --single"
|
|
Only print the single starting inode when it is allocated, all other allocated
|
|
inode numbers will be ignored.
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "get-attr-x FILE"
|
|
.sp
|
|
Display ScoutFS-specific attributes from a file. If no options are
|
|
given than all the attributes that the command supports will be
|
|
displayed. If attributes are specified with options then only those
|
|
attributes are displayed. If only one attribute is specified then it
|
|
will not have a label prefix in the display output. The --help option
|
|
will list the attributes that the command supports. The file system may
|
|
support a different set of attributes.
|
|
.TP
|
|
.BI "get-referring-entries [-p|--path PATH] INO"
|
|
.sp
|
|
Find directory entries that reference an inode number.
|
|
.sp
|
|
Display all the directory entries that refer to a given inode. Each
|
|
entry includes the inode number of the directory that contains it, the
|
|
d_off and d_type values for the entry as described by
|
|
.BR readdir (3)
|
|
, and the name of the entry.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.TP
|
|
.B "INO"
|
|
The inode number of the target inode.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "ino-path INODE-NUM [-p|--path PATH]"
|
|
.sp
|
|
Display all paths that reference an inode number.
|
|
.sp
|
|
Ongoing filesystem changes, such as renaming a common parent of multiple paths,
|
|
can cause displayed paths to be inconsistent.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.B "INODE-NUM"
|
|
The inode number of the target inode.
|
|
.TP
|
|
.B "-p|--path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "list-hidden-xattrs FILE"
|
|
.sp
|
|
Display extended attributes starting with the
|
|
.BR scoutfs.
|
|
prefix and containing the
|
|
.BR hide.
|
|
tag
|
|
which makes them invisible to
|
|
.BR listxattr (2) .
|
|
The names of each attribute are output, one per line. Their order
|
|
is not specified.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "FILE"
|
|
The path to a file within a ScoutFS filesystem. File permissions must allow
|
|
reading.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "mkfs META-DEVICE DATA-DEVICE {-Q|--quorum-slot} NR,ADDR,PORT [-m|--max-meta-size SIZE] [-d|--max-data-size SIZE] [-z|--data-alloc-zone-blocks BLOCKS] [-f|--force] [-A|--allow-small-size] [-V|--format-version VERS]"
|
|
.sp
|
|
Initialize a new ScoutFS filesystem on the target devices. Since ScoutFS uses
|
|
separate block devices for its metadata and data storage, two are required.
|
|
The internal structures and nature of metadata and data transactions
|
|
lead to minimum viable device sizes.
|
|
.B mkfs
|
|
will check both devices and fail with an error if either are under the
|
|
minimum size. If
|
|
.B --allow-small-size
|
|
is given then sizes under the minimum size will be
|
|
allowed after printing an informational warning.
|
|
.sp
|
|
If
|
|
.B --force
|
|
option is not given, mkfs will check for existing filesystem signatures. It is
|
|
recommended to use
|
|
.B wipefs(8)
|
|
to remove non-ScoutFS filesystem signatures before proceeding, and
|
|
.B --force
|
|
to overwrite a previous ScoutFS filesystem.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B META-DEVICE
|
|
The path to the block device to be used for ScoutFS metadata. If possible, use
|
|
a faster block device for the metadata device.
|
|
.TP
|
|
.B DATA-DEVICE
|
|
The path to the block device to be used for ScoutFS file data. If possible, use
|
|
a larger block device for the data device.
|
|
.TP
|
|
.B "-Q, --quorum-slot NR,ADDR,PORT"
|
|
Each \-Q option configures a quorum slot. The NR specifies the number
|
|
of the slot to configure which must be between 0 and 14. Each slot
|
|
number must only be used once, but they can be used in any order and
|
|
they need not be consecutive. This is to allow natural relationships
|
|
between slot numbers and nodes which may have arbitrary numbering
|
|
schemes. ADDR and PORT are the numerical IPv4 address and port which
|
|
will be used as the UDP endpoint for leader elections and as the TCP
|
|
listening address for server connections. The number of configured
|
|
slots determines the size of the quorum of member mounts which must be
|
|
present to start the server for the filesystem to operate. A simple
|
|
majority is typically required, while one mount is sufficient if only
|
|
one or two slots are configured. Until the majority quorum are present,
|
|
all mounts will hang waiting for a server to connect to.
|
|
.TP
|
|
.B "-m, --max-meta-size SIZE"
|
|
Limit the space used by ScoutFS on the metadata device to the
|
|
given size, rather than using the entire block device. Size is given as
|
|
an integer followed by a units digit: "K", "M", "G", "T", "P", to denote
|
|
kibibytes, mebibytes, etc.
|
|
.TP
|
|
.B "-d, --max-data-size SIZE"
|
|
Same as previous, but for limiting the size of the data device.
|
|
.TP
|
|
.B "-A, --allow-small-size"
|
|
Allows use of specified device sizes less than the minimum. This can
|
|
result in bad behaviour and is only intended for testing.
|
|
.TP
|
|
.B "-z, --data-alloc-zone-blocks BLOCKS"
|
|
Set the data_alloc_zone_blocks volume option, as described in
|
|
.BR scoutfs (5).
|
|
.TP
|
|
.B "-f, --force"
|
|
Ignore presence of existing data on the data and metadata devices.
|
|
.TP
|
|
.B "-V, --format-verson"
|
|
Specify the format version to use in the newly created file system.
|
|
The range of supported versions is visible in the output of
|
|
+.BR scoutfs (8)
|
|
+.I --help
|
|
.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "prepare-empty-data-device {-c|--check} META-DEVICE DATA-DEVICE"
|
|
.sp
|
|
Prepare an unused device for use as the data device for an existing file
|
|
system. This will write an initialized super block to the specified
|
|
data device, destroying any existing contents. The specified metadata
|
|
device will not be modified. The file system must be fully unmounted
|
|
and any client mount recovery must be complete.
|
|
.sp
|
|
The existing metadata device is read to ensure that it's safe to stop
|
|
using the old data device. The data block allocators must indicate that
|
|
all data blocks are free. If there are still data blocks referenced by
|
|
files then the command will fail. The contents of these files must be
|
|
freed for the command to proceed.
|
|
.sp
|
|
A new super block is written to the new data device. The device can
|
|
then be used as the data device to mount the file system. As this
|
|
switch is made all client mounts must refer to the new device. The old
|
|
device is not modified and still contains a valid data super block that
|
|
could be mounted, creating data device writes that wouldn't be read by
|
|
mounts using the new device.
|
|
.sp
|
|
The number of data blocks available to the file system will not change
|
|
as the new data device is used. The new device must be large enough to
|
|
store all the data blocks that were available on the old device. If the
|
|
new device is larger then its added capacity can be used by growing the
|
|
new data device with the resize-devices command once it is mounted.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-c, --check"
|
|
Only check for errors that would prevent a new empty data device from
|
|
being used. No changes will be made to the data device. If the data
|
|
device is provided then its size will be checked to make sure that it is
|
|
large enough. This can be used to test the metadata for data references
|
|
before destroying an old empty data device.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "print {-S|--skip-likely-huge} META-DEVICE"
|
|
.sp
|
|
Prints out all of the metadata in the file system. This makes no effort
|
|
to ensure that the structures are consistent as they're traversed and
|
|
can present structures that seem corrupt as they change as they're
|
|
output.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-S, --skip-likely-huge"
|
|
Skip printing structures that are likely to be very large. The
|
|
structures that are skipped tend to be global and whose size tends to be
|
|
related to the size of the volume. Examples of skipped structures include
|
|
the global fs items, srch files, and metadata and data
|
|
allocators. Similar structures that are not skipped are related to the
|
|
number of mounts and are maintained at a relatively reasonable size.
|
|
These include per-mount log trees, srch files, allocators, and the
|
|
metadata allocators used by server commits.
|
|
.sp
|
|
Skipping the larger structures limits the print output to a relatively
|
|
constant size rather than being a large multiple of the used metadata
|
|
space of the volume making the output much more useful for inspection.
|
|
.TP
|
|
.B "META-DEVICE"
|
|
The path to the metadata device for the filesystem whose metadata will be
|
|
printed. An attempt will be made to flush the host's buffer cache for
|
|
this device with the BLKFLSBUF ioctl, or with posix_fadvise() if
|
|
the path refers to a regular file.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "resize-devices [-p|--path PATH] [-m|--meta-size SIZE] [-d|--data-size SIZE]"
|
|
.sp
|
|
Resize the metadata or data devices of a mounted ScoutFS filesystem.
|
|
.sp
|
|
ScoutFS metadata has free extent records and fields in the super block
|
|
that reflect the size of the devices in use. This command sends a
|
|
request to the server to change the size of the device that can be used
|
|
by updating free extents and setting the super block fields.
|
|
.sp
|
|
The specified sizes are in bytes and are translated into block counts.
|
|
If the specified sizes are not a multiple of the metadata or data block
|
|
sizes then a message is output and the resized size is truncated down to
|
|
the next whole block. Specifying either a size of 0 or the current
|
|
device size makes no change. The current size of the devices can be
|
|
seen, in units of their respective block sizes, in the total_meta_blocks
|
|
and total_data_blocks fields returned by the scoutfs statfs command (via
|
|
the statfs_more ioctl).
|
|
.sp
|
|
Shrinking is not supported. Specifying a smaller size for either device
|
|
will return an error and neither device will be resized.
|
|
.sp
|
|
Specifying a larger size will expand the initial size of the device that
|
|
will be used. Free space records are added for the expanded region and
|
|
can be used once the resizing transaction is complete.
|
|
.sp
|
|
The resizing action is performed in a transaction on the server. This
|
|
command will hang until a server is elected and running and can service
|
|
the reqeust. The server serializes any concurrent requests to resize.
|
|
.sp
|
|
The new sizes must fit within the current sizes of the mounted devices.
|
|
Presumably this command is being performed as part of a larger
|
|
coordinated resize of the underlying devices. The device must be
|
|
expanded before ScoutFS can use the larger device and ScoutFS must stop
|
|
using a region to shrink before it could be removed from the device
|
|
(which is not currently supported).
|
|
.sp
|
|
The resize will be committed by the server before the response is sent
|
|
to the client. The system can be using the new device size before the
|
|
result is communicated through the client and this command completes.
|
|
The client could crash and the server could still have performed the
|
|
resize.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-p, --path PATH"
|
|
A path in the mounted ScoutFS filesystem which will have its devices
|
|
resized.
|
|
.TP
|
|
.B "-m, --meta-size SIZE"
|
|
.B "-d, --data-size SIZE"
|
|
The new size of the metadata or data device to use, in bytes. Size is given as
|
|
an integer followed by a units digit: "K", "M", "G", "T", "P", to denote
|
|
kibibytes, mebibytes, etc.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "search-xattrs XATTR-NAME [-p|--path PATH]"
|
|
.sp
|
|
Display the inode numbers of inodes in the filesystem which may have
|
|
an extended attribute with the given name.
|
|
.sp
|
|
The results may contain false positives. The returned inode numbers
|
|
should be checked to verify that the extended attribute is in fact
|
|
present on the inode.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B XATTR-NAME
|
|
The full name of the extended attribute to search for as
|
|
described in the
|
|
.BR xattr (7)
|
|
manual page.
|
|
.TP
|
|
.B "-p|--path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "set-attr-x FILE"
|
|
.sp
|
|
Set ScoutFS-specific attributes on a file. Only the attributes that are
|
|
spcified by options will be set. The --help option will list the
|
|
attributes that the command understands. The file system may support a
|
|
different set of attributes.
|
|
.PD
|
|
|
|
.TP
|
|
.BI "setattr FILE [-d, --data-version=VERSION [-s, --size=SIZE [-o, --offline]]] [-t, --ctime=TIMESPEC]"
|
|
.sp
|
|
Set ScoutFS-specific attributes on a newly created zero-length file.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.B "-V, --data-version=VERSION"
|
|
Set data version.
|
|
.TP
|
|
.B "-o, --offline"
|
|
Set file contents as offline, not sparse. Requires
|
|
.I --size
|
|
option also be present.
|
|
.TP
|
|
.B "-s, --size=SIZE"
|
|
Set file size. May be expressed in bytes, or with
|
|
KMGTP (Kibi, Mibi, etc.) size suffixes. Requires
|
|
.I --data-version
|
|
option also be present.
|
|
.TP
|
|
.B "-t, --ctime=TIMESPEC"
|
|
Set creation time using
|
|
.I "<seconds-since-epoch>.<nanoseconds>"
|
|
format.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "stage ARCHIVE-FILE FILE {-V|--version} VERSION [-o, --offset OFF-NUM] [-l, --length LENGTH]"
|
|
.sp
|
|
.B Stage
|
|
(i.e. return to online) the previously-offline contents of a file by copying a
|
|
region from another file, the archive, and without updating regular inode
|
|
metadata. Any operations that are blocked by the existence of an offline
|
|
region will proceed once the region has been staged.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "ARCHIVE-FILE"
|
|
The source file for the file contents being staged.
|
|
.TP
|
|
.B "FILE"
|
|
The regular file whose contents will be staged.
|
|
.TP
|
|
.B "-V, --version VERSION"
|
|
The data_version of the contents to be staged. It must match the
|
|
current data_version of the file.
|
|
.TP
|
|
.B "-o, --offset OFF-NUM"
|
|
The starting byte offset of the region to write. May be expressed in bytes, or with
|
|
KMGTP (Kibi, Mibi, etc.) size suffixes. Default is 0.
|
|
.TP
|
|
.B "-l, --length LENGTH"
|
|
Length of range (bytes or KMGTP units) of file to stage. Default is the file's
|
|
total size.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "stat FILE [-s|--single-field FIELD-NAME]"
|
|
.sp
|
|
Display ScoutFS-specific metadata fields for the given file.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "FILE"
|
|
Path to the file.
|
|
.TP
|
|
.B "-s, --single-field FIELD-NAME"
|
|
Only output a single field's value instead of the default: all the stats with
|
|
one stat per line.
|
|
.sp
|
|
.TP
|
|
.RE
|
|
.PD
|
|
The fields are:
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.B "meta_seq"
|
|
The metadata change sequence. This changes each time the inode's metadata
|
|
is changed.
|
|
.TP
|
|
.B "data_seq"
|
|
The data change sequence. This changes each time the inode's data
|
|
is changed.
|
|
.TP
|
|
.B "data_version"
|
|
The data version changes every time the contents of the file changes,
|
|
or the file grows or shrinks.
|
|
.TP
|
|
.B "online_blocks"
|
|
The number of 4Kb data blocks that contain data and can be read.
|
|
.TP
|
|
.B "offline_blocks"
|
|
The number of 4Kb data blocks that are offline and would need to be
|
|
staged to be read.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "statfs [-s|--single-field FIELD-NAME] [-p|--path PATH]"
|
|
.sp
|
|
Display ScoutFS-specific filesystem-wide metadata fields.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "-s, --single-field FIELD-NAME"
|
|
Only ontput a single stat instead of all the stats with one stat per
|
|
line. The possible stat names are those given in the output.
|
|
.TP
|
|
.B "-p, --path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.sp
|
|
.TP
|
|
.RE
|
|
.PD
|
|
The fields are:
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.B "fsid"
|
|
The unique 64bit filesystem identifier for this filesystem.
|
|
.TP
|
|
.B "rid"
|
|
The unique 64bit random identifier for this mount of the filesystem.
|
|
This is generated for every new mount of the file system.
|
|
.TP
|
|
.B "committed_seq"
|
|
All seqs up to and including this seq have been
|
|
committed. Can be compared with meta_seq and data_seq from inodes in
|
|
.B stat
|
|
to discover if changes to a file have been committed to disk.
|
|
.TP
|
|
.B "total_meta_blocks"
|
|
The total number of 64K metadata blocks in the filesystem.
|
|
.TP
|
|
.B "total_data_blocks"
|
|
The total number of 4K data blocks in the filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "release FILE {-V|--version} VERSION [-o, --offset OFF-NUM] [-l, --length LENGTH]"
|
|
.sp
|
|
.B Release
|
|
the given region of the file. That is, remove the region's backing data and
|
|
leave an offline data region. Future attempts to read or write the offline
|
|
region will block until the region is restored by a
|
|
.B stage
|
|
write. This is used by userspace archive managers to free data space in the
|
|
ScoutFS filesystem once the file data has been archived.
|
|
.sp
|
|
Note: This only works on regular files with write permission. Releasing regions
|
|
that are already offline or sparse, including regions extending past the end of
|
|
the file, will silently succeed.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.TP
|
|
.sp
|
|
.B "path"
|
|
The path to the regular file whose region will be released.
|
|
.TP
|
|
.B "-V, --version VERSION"
|
|
The data_version of the contents to be released. It must match the current
|
|
data_version of the file. This ensures that a release operation is truncating
|
|
the same version of the data that was archived. (Use the
|
|
.BI "stat"
|
|
subcommand to obtain data version for a file.)
|
|
.TP
|
|
.B "-o, --offset OFF-NUM"
|
|
The starting byte offset of the region to write. May be expressed in bytes, or with
|
|
KMGTP (Kibi, Mibi, etc.) size suffixes. Default is 0.
|
|
.TP
|
|
.B "-l, --length LENGTH"
|
|
Length of range (bytes or KMGTP units) of file to stage. Default is the file's
|
|
total size.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
.BI "walk-inodes {meta_seq|data_seq} FIRST-INODE LAST-INODE [-p|--path PATH]"
|
|
.sp
|
|
Walk an inode index in the file system and output the inode numbers
|
|
that are found between the first and last positions in the index.
|
|
.RS 1.0i
|
|
.PD 0
|
|
.sp
|
|
.TP
|
|
.BR meta_seq , data_seq
|
|
Which index to walk.
|
|
.TP
|
|
.B "FIRST-INODE"
|
|
An integer index value giving starting position of the index walk.
|
|
.I 0
|
|
is the first possible position.
|
|
.TP
|
|
.B "LAST-INODE"
|
|
An integer index value giving the last position to include in the index walk.
|
|
.I \-1
|
|
can be given to indicate the last possible position.
|
|
.TP
|
|
.B "-p|--path PATH"
|
|
A path within a ScoutFS filesystem.
|
|
.RE
|
|
.PD
|
|
|
|
.TP
|
|
|
|
.SH SEE ALSO
|
|
.BR scoutfs (5),
|
|
.BR xattr (7),
|
|
.BR blockdev (8),
|
|
.BR wipefs (8)
|
|
|
|
.SH AUTHORS
|
|
Zach Brown <zab@versity.com>
|