summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--man/Makefile.am2
-rw-r--r--man/man1/Makefile.am5
-rw-r--r--man/man1/zpios.1210
-rw-r--r--man/man8/Makefile.am2
-rw-r--r--man/man8/mount.zfs.8123
-rw-r--r--man/man8/zinject.8146
-rw-r--r--zfs.spec.in1
8 files changed, 488 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 71776e7ac..669094a55 100644
--- a/configure.ac
+++ b/configure.ac
@@ -64,6 +64,7 @@ AC_CONFIG_FILES([
etc/init.d/Makefile
etc/zfs/Makefile
man/Makefile
+ man/man1/Makefile
man/man5/Makefile
man/man8/Makefile
lib/Makefile
diff --git a/man/Makefile.am b/man/Makefile.am
index 0ccc5b491..841cb9c4e 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1 +1 @@
-SUBDIRS = man5 man8
+SUBDIRS = man1 man5 man8
diff --git a/man/man1/Makefile.am b/man/man1/Makefile.am
new file mode 100644
index 000000000..54ff9e54f
--- /dev/null
+++ b/man/man1/Makefile.am
@@ -0,0 +1,5 @@
+man_MANS = zpios.1 ztest.1
+EXTRA_DIST = $(man_MANS)
+
+install-data-local:
+ $(INSTALL) -d -m 0755 "$(DESTDIR)$(mandir)/man1"
diff --git a/man/man1/zpios.1 b/man/man1/zpios.1
new file mode 100644
index 000000000..4b362b09d
--- /dev/null
+++ b/man/man1/zpios.1
@@ -0,0 +1,210 @@
+'\" t
+.\"
+.\" CDDL HEADER START
+.\"
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.\"
+.\" CDDL HEADER END
+.\"
+.\"
+.\" Copyright 2013 Darik Horn <[email protected]>. All rights reserved.
+.\"
+.TH zpios 1 "2013 FEB 28" "ZFS on Linux" "User Commands"
+
+.SH NAME
+zpios \- Directly test the DMU.
+.SH SYNOPSIS
+.LP
+.BI "zpios [options] <\-p " pool ">"
+
+.SH DESCRIPTION
+This utility runs in-kernel DMU performance and stress tests that do
+not depend on the ZFS Posix Layer ("ZPL").
+
+.SH OPTIONS
+.HP
+.BI "\-s" " regex" ", \-\-threadcount" " regex"
+.IP
+Start this many threads for each test series, specified as a comma
+delimited regular expression. (eg: "-s 1,2,3")
+.IP
+This option is mutually exclusive with the \fBthreadcount_*\fR
+options.
+.HP
+.BI "\-l" " regex_low" ", \-\-threadcount_low" " regex_low"
+.HP
+.BI "\-h" " regex_high" ", \-\-threadcount_high" " regex_high"
+.HP
+.BI "\-e" " regex_incr" ", \-\-threadcount_incr" " regex_incr"
+.IP
+Start \fIregex_low\fR threads for the first test,
+add \fIregex_incr\fR threads for each subsequent test,
+and start \fIregex_high\fR threads for the last test.
+.IP
+These three options must be specified together and are mutually
+exclusive with the \fBthreadcount\fR option.
+.HP
+.BI "\-n" " regex" ", \-\-regioncount" " regex"
+.IP
+Create this many regions for each test series, specified as a comma
+delimited regular expression. (eg: "-n 512,4096,65536")
+.IP
+This option is mutually exclusive with the \fBregioncount_*\fR
+options.
+.HP
+.BI "\-i" " regex_low" ", \-\-regioncount_low" " regex_low"
+.HP
+.BI "\-j" " regex_high" ", \-\-regioncount_high" " regex_high"
+.HP
+.BI "\-k" " regex_incr" ", \-\-regioncount_incr" " regex_incr"
+.IP
+Create \fIregex_low\fR regions for the first test,
+add \fIregex_incr\fR regions for each subsequent test, and
+create \fIregex_high\fR regions for the last test.
+.IP
+These three options must be specified together and are mutually
+exclusive with the \fBregioncount\fR option.
+.HP
+.BI "\-o" " size" ", \-\-offset" " size"
+.IP
+Create regions at \fIsize\fR offset for each test series, specified as
+a comma delimited regular expression with an optional unit suffix.
+(eg: "-o 4M" means four megabytes.)
+.IP
+This option is mutually exclusive with the \fBoffset_*\fR options.
+.HP
+.BI "\-m" " size_low" ", \-\-offset_low" " size_low"
+.HP
+.BI "\-q" " size_high" ", \-\-offset_high" " size_high"
+.HP
+.BI "\-r" " size_incr" ", \-\-offset_incr" " size_incr"
+.IP
+Create a region at \fIsize_low\fR offset for the first test, add
+\fIsize_incr\fR to the offset for each subsequent test, and create
+a region at \fIsize_high\fR offset for the last test.
+.IP
+These three options must be specified together and are mutually
+exclusive with the \fBoffset\fR option.
+.HP
+.BI "\-c" " size" ", \-\-chunksize" " size"
+.IP
+Use \fIsize\fR chunks for each test, specified as a comma delimited
+regular expression with an optional unit suffix. (eg: "-c 1M" means
+one megabyte.) The chunk size must be at least the region size.
+.IP
+This option is mutually exclusive with the \fBchunksize_*\fB options.
+.HP
+.BI "\-a" " size_low" ", \-\-chunksize_low" " size_low"
+.HP
+.BI "\-b" " size_high" ", \-\-chunksize_high" " size_high"
+.HP
+.BI "\-g" " size_incr" ", \-\-chunksize_incr" " size_incr"
+.IP
+Use a \fIsize_low\fR chunk size for the first test, add \fIsize_incr\fR
+to the chunk size for each subsequent test, and use a \fIsize_high\fR
+chunk size for the last test.
+.IP
+These three options must be specified together and are mutually
+exclusive with the \fBchunksize\fR option.
+.HP
+.BI "\-L" " dmu_flags" ", \-\-load" " dmu_flags"
+.IP
+Specify \fIdmuio\fR for regular DMU_IO, \fIssf\fR for single shared
+file access, or \fIfpp\fR for per thread access. Use commas to delimit
+multiple flags. (eg: "-L dmuio,ssf")
+.HP
+.BI "\-p" " name" ", \-\-pool" " name"
+.IP
+The pool name, which is mandatory.
+.HP
+.BI "\-M" " test" ", \-\-name" " test"
+.IP
+An arbitrary string that appears in the program output.
+.HP
+.BI "-x, \-\-cleanup"
+.IP
+Enable the DMU_REMOVE flag.
+.HP
+.BI "\-P" " command" ", \-\-prerun" " command"
+.IP
+Invoke \fIcommand\fR from the kernel before running the test. Shell
+expansion is not performed and the environment is set to
+HOME=/; TERM=linux; PATH=/sbin:/usr/sbin:/bin:/usr/bin.
+.HP
+.BI "\-R" " command" ", \-\-postrun" " command"
+.IP
+Invoke \fIcommand\fR from the kernel after running the test. Shell
+expansion is not performed and the environment is set to
+HOME=/; TERM=linux; PATH=/sbin:/usr/sbin:/bin:/usr/bin.
+.HP
+.BI "\-G" " directory" ", \-\-log" " directory"
+.IP
+Put logging output in this directory.
+.HP
+.BI "\-I" " size" ", \-\-regionnoise" " size"
+.IP
+Randomly vary the \fBregionsize\fR parameter for each test
+modulo \fIsize\fR bytes.
+.HP
+.BI "\-N" " size" ", \-\-chunknoise" " size"
+.IP
+Randomly vary the \fBchunksize\fR parameter for each test
+modulo \fIsize\fR bytes.
+.HP
+.BI "\-T" " time" ", \-\-threaddelay" " time"
+.IP
+Randomly vary the execution time for each test
+modulo \fItime\fR kernel jiffies.
+.HP
+.BI "\-V" "" ", \-\-verify" ""
+.IP
+Enable the DMU_VERIFY flag for trivial data verification.
+.HP
+.BI "\-z" "" ", \-\-zerocopy" ""
+.IP
+Enable the DMU_READ_ZC and DMU_WRITE_ZC flags, which are
+currently unimplemented for Linux.
+.IP
+.HP
+.BI "\-O" "" ", \-\-nowait" ""
+.IP
+Enable the DMU_WRITE_NOWAIT flag.
+.HP
+.BI "\-f" "" ", \-\-noprefetch" ""
+.IP
+Enable the DMU_READ_NOPF flag.
+.HP
+.BI "\-H" "" ", \-\-human\-readable" ""
+.IP
+Print PASS and FAIL results explicitly and put unit suffixes on large
+numbers.
+.HP
+.BI "\-v" "" ", \-\-verbose" ""
+.IP
+Increase output verbosity.
+.HP
+.BI "\-?" " " ", \-\-help" " "
+.IP
+Print the usage message.
+.SH "AUTHORS"
+The original zpios implementation was created by Cluster File Systems
+Inc and adapted to ZFS on Linux by Brian Behlendorf
+
+This man page was written by Darik Horn <[email protected]>.
+.SH "SEE ALSO"
+.BR zpool (8),
+.BR zfs (8)
diff --git a/man/man8/Makefile.am b/man/man8/Makefile.am
index 05ca1ce31..23b39b7f3 100644
--- a/man/man8/Makefile.am
+++ b/man/man8/Makefile.am
@@ -1,4 +1,4 @@
-man_MANS = vdev_id.8 zdb.8 zfs.8 zpool.8 zstreamdump.8
+man_MANS = mount.zfs.8 vdev_id.8 zdb.8 zfs.8 zinject.8 zpool.8 zstreamdump.8
EXTRA_DIST = $(man_MANS)
install-data-local:
diff --git a/man/man8/mount.zfs.8 b/man/man8/mount.zfs.8
new file mode 100644
index 000000000..60c36fe4e
--- /dev/null
+++ b/man/man8/mount.zfs.8
@@ -0,0 +1,123 @@
+'\" t
+.\"
+.\" CDDL HEADER START
+.\"
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.\"
+.\" CDDL HEADER END
+.\"
+.\"
+.\" Copyright 2013 Darik Horn <[email protected]>. All rights reserved.
+.\"
+.TH mount.zfs 8 "2013 FEB 28" "ZFS on Linux" "System Administration Commands"
+
+.SH NAME
+mount.zfs \- mount a ZFS filesystem
+.SH SYNOPSIS
+.LP
+.BI "mount.zfs [\-sfnvh] [\-o " options "]" " dataset mountpoint
+
+.SH DESCRIPTION
+.BR mount.zfs
+is part of the zfsutils package for Linux. It is a helper program that
+is usually invoked by the
+.BR mount (8)
+or
+.BR zfs (8)
+commands to mount a ZFS dataset.
+
+All
+.I options
+are handled according to the FILESYSTEM INDEPENDENT MOUNT OPTIONS
+section in the
+.BR mount (8)
+manual, except for those described below.
+
+The
+.I dataset
+parameter is a ZFS filesystem name, as output by the
+.B "zfs list -H -o name
+command. This parameter never has a leading slash character and is
+not a device name.
+
+The
+.I mountpoint
+parameter is the path name of a directory.
+
+
+.SH OPTIONS
+.TP
+.BI "\-s"
+Ignore bad or sloppy mount options.
+.TP
+.BI "\-f"
+Do a fake mount; do not perform the mount operation.
+.TP
+.BI "\-n"
+Do not update the /etc/mtab file.
+.TP
+.BI "\-v"
+Increase verbosity.
+.TP
+.BI "\-h"
+Print the usage message.
+.TP
+.BI "\-o legacy"
+This private flag indicates that the
+.I dataset
+has an entry in the /etc/fstab file.
+.TP
+.BI "\-o noxattr"
+This private flag disables extended attributes.
+.TP
+.BI "\-o xattr
+This private flag enables extended attributes and, if appropriate,
+adds a ZFS context to the selinux system policy.
+.TP
+.BI "\-o zfsutil"
+This private flag indicates that
+.BR mount (8)
+is being called by the
+.BR zfs (8)
+command.
+
+.SH NOTES
+ZFS conventionally requires that the
+.I mountpoint
+be an empty directory, but the Linux implementation inconsistently
+enforces the requirement.
+
+The
+.BR mount.zfs
+helper does not mount the contents of zvols.
+
+.SH FILES
+.TP 18n
+.I /etc/fstab
+The static filesystem table.
+.TP
+.I /etc/mtab
+The mounted filesystem table.
+.SH "AUTHORS"
+The primary author of
+.BR mount.zfs
+is Brian Behlendorf <[email protected]>.
+
+This man page was written by Darik Horn <[email protected]>.
+.SH "SEE ALSO"
+.BR fstab (5),
+.BR mount (8),
+.BR zfs (8)
diff --git a/man/man8/zinject.8 b/man/man8/zinject.8
new file mode 100644
index 000000000..13c4c1fea
--- /dev/null
+++ b/man/man8/zinject.8
@@ -0,0 +1,146 @@
+'\" t
+.\"
+.\" CDDL HEADER START
+.\"
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.\"
+.\" CDDL HEADER END
+.\"
+.\"
+.\" Copyright 2013 Darik Horn <[email protected]>. All rights reserved.
+.\"
+.TH zinject 8 "2013 FEB 28" "ZFS on Linux" "System Administration Commands"
+
+.SH NAME
+zinject \- ZFS Fault Injector
+.SH DESCRIPTION
+.BR zinject
+creates artificial problems in a ZFS pool by simulating data corruption or device failures. This program is dangerous.
+.SH SYNOPSIS
+.TP
+.B "zinject"
+List injection records.
+.TP
+.B "zinject \-b \fIobjset:object:level:blkd\fB [\-f \fIfrequency\fB] [\-amu] \fIpool\fB"
+Force an error into the pool at a bookmark.
+.TP
+.B "zinject \-c <\fIid\fB | all>
+Cancel injection records.
+.TP
+.B "zinject \-d \fIvdev\fB \-A <degrade|fault> \fIpool\fB
+Force a vdev into the DEGRADED or FAULTED state.
+.TP
+.B "zinject \-d \fIvdev\fB [\-e \fIdevice_error\fB] [\-L \fIlabel_error\fB] [\-T \fIfailure\fB] [\-F] \fIpool\fB"
+Force a vdev error.
+.TP
+.B "zinject \-I [\-s \fIseconds\fB | \-g \fItxgs\fB] \fIpool\fB"
+Simulate a hardware failure that fails to honor a cache flush.
+.TP
+.B "zinject \-p \fIfunction\fB \fIpool\fB
+Panic inside the specified function.
+.TP
+.B "zinject \-t data [\-e \fIdevice_error\fB] [\-f \fIfrequency\fB] [\-l \fIlevel\fB] [\-r \fIrange\fB] [\-amq] \fIpath\fB"
+Force an error into the contents of a file.
+.TP
+.B "zinject \-t dnode [\-e \fIdevice_error\fB] [\-f \fIfrequency\fB] [\-l \fIlevel\fB] [\-amq] \fIpath\fB"
+Force an error into the metadnode for a file or directory.
+.TP
+.B "zinject \-t \fImos_type\fB [\-e \fIdevice_error\fB] [\-f \fIfrequency\fB] [\-l \fIlevel\fB] [\-r \fIrange\fB] [\-amqu] \fIpool\fB"
+Force an error into the MOS of a pool.
+.SH OPTIONS
+.TP
+.BI "\-a"
+Flush the ARC before injection.
+.TP
+.BI "\-b" " objset:object:level:start:end"
+Force an error into the pool at this bookmark tuple. Each number is
+in hexidecimal, and only one block can be specified.
+.TP
+.BI "\-d" " vdev"
+A vdev specified by path or GUID.
+.TP
+.BI "\-e" " device_error"
+Specify
+.BR "checksum" " for an ECKSUM error,"
+.BR "dtl" " for an ECHILD error,"
+.BR "io" " for an EIO error where reopening the device will succeed, or"
+.BR "nxio" " for an ENXIO error where reopening the device will fail."
+.TP
+.BI "\-f" " frequency"
+Only inject errors a fraction of the time. Expressed as an integer
+percentage between 1 and 100.
+.TP
+.BI "\-F"
+Fail faster. Do fewer checks.
+.TP
+.BI "\-g" " txgs"
+Run for this many transaction groups before reporting failure.
+.TP
+.BI "\-h"
+Print the usage message.
+.TP
+.BI "\-l" " level"
+Inject an error at a particular block level. The default is 0.
+.TP
+.BI "\-L" " label_error"
+Set the label error region to one of
+.BR " nvlist" ","
+.BR " pad1" ","
+.BR " pad2" ", or"
+.BR " uber" "."
+.TP
+.BI "\-m"
+Automatically remount the underlying filesystem.
+.TP
+.BI "\-q"
+Quiet mode. Only print the handler number added.
+.TP
+.BI "\-r" " range"
+Inject an error over a particular logical range of an object, which
+will be translated to the appropriate blkid range according to the
+object's properties.
+.TP
+.BI "\-s" " seconds"
+Run for this many seconds before reporting failure.
+.TP
+.BI "\-T" " failure"
+Set the failure type to one of
+.BR " all" ","
+.BR " claim" ","
+.BR " free" ","
+.BR " read" ", or"
+.BR " write" "."
+.TP
+.BI "\-t" " mos_type"
+Set this to
+.BR "mos " "for any data in the MOS,"
+.BR "mosdir " "for an object directory,"
+.BR "config " "for the pool configuration,"
+.BR "bpobj " "for the block pointer list,"
+.BR "spacemap " "for the space map,"
+.BR "metaslab " "for the metaslab, or"
+.BR "errlog " "for the persistent error log."
+.TP
+.BI "\-u"
+Unload the pool after injection.
+
+.SH "AUTHORS"
+This man page was written by Darik Horn <[email protected]>
+excerpting the \fBzinject\fR usage message and source code.
+
+.SH "SEE ALSO"
+.BR zpool (8),
+.BR zfs (8)
diff --git a/zfs.spec.in b/zfs.spec.in
index 3e784ecda..29f6f83e9 100644
--- a/zfs.spec.in
+++ b/zfs.spec.in
@@ -78,6 +78,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-, root, root)
%{_sbindir}/*
%{_libdir}/*
+%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man8/*
%{_udevdir}/*