xref: /freebsd/lib/geom/stripe/gstripe.8 (revision e0c4386e)
1.\" Copyright (c) 2004-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd May 21, 2004
26.Dt GSTRIPE 8
27.Os
28.Sh NAME
29.Nm gstripe
30.Nd "control utility for striped devices"
31.Sh SYNOPSIS
32.Nm
33.Cm create
34.Op Fl v
35.Op Fl s Ar stripesize
36.Ar name
37.Ar prov prov ...
38.Nm
39.Cm destroy
40.Op Fl fv
41.Ar name ...
42.Nm
43.Cm label
44.Op Fl hv
45.Op Fl s Ar stripesize
46.Ar name
47.Ar prov prov ...
48.Nm
49.Cm stop
50.Op Fl fv
51.Ar name ...
52.Nm
53.Cm clear
54.Op Fl v
55.Ar prov ...
56.Nm
57.Cm dump
58.Ar prov ...
59.Nm
60.Cm list
61.Nm
62.Cm status
63.Nm
64.Cm load
65.Nm
66.Cm unload
67.Sh DESCRIPTION
68The
69.Nm
70utility is used for setting up a stripe on two or more disks.
71The striped device can be configured using two different methods:
72.Dq manual
73or
74.Dq automatic .
75When using the
76.Dq manual
77method, no metadata are stored on the devices, so the striped
78device has to be configured by hand every time it is needed.
79The
80.Dq automatic
81method uses on-disk metadata to detect devices.
82Once devices are labeled, they will be automatically detected and
83configured.
84.Pp
85The first argument to
86.Nm
87indicates an action to be performed:
88.Bl -tag -width ".Cm destroy"
89.It Cm create
90Set up a striped device from the given devices with specified
91.Ar name .
92This is the
93.Dq manual
94method and the stripe will not exist after a reboot (see
95.Sx DESCRIPTION
96above).
97The kernel module
98.Pa geom_stripe.ko
99will be loaded if it is not loaded already.
100.It Cm label
101Set up a striped device from the given devices with the specified
102.Ar name .
103This is the
104.Dq automatic
105method, where metadata are stored in every device's last sector.
106The kernel module
107.Pa geom_stripe.ko
108will be loaded if it is not loaded already.
109.It Cm stop
110Turn off an existing striped device by its
111.Ar name .
112This command does not touch on-disk metadata!
113.It Cm destroy
114Same as
115.Cm stop .
116.It Cm clear
117Clear metadata on the given devices.
118.It Cm dump
119Dump metadata stored on the given devices.
120.It Cm list
121See
122.Xr geom 8 .
123.It Cm status
124See
125.Xr geom 8 .
126.It Cm load
127See
128.Xr geom 8 .
129.It Cm unload
130See
131.Xr geom 8 .
132.El
133.Pp
134Additional options:
135.Bl -tag -width ".Fl s Ar stripesize"
136.It Fl f
137Force the removal of the specified striped device.
138.It Fl h
139Hardcode providers' names in metadata.
140.It Fl s Ar stripesize
141Specifies size of stripe block in bytes.
142The
143.Ar stripesize
144must be a multiple of the largest sector size of all the providers.
145.It Fl v
146Be more verbose.
147.El
148.Sh SYSCTL VARIABLES
149The following
150.Xr sysctl 8
151variables can be used to control the behavior of the
152.Nm STRIPE
153GEOM class.
154The default value is shown next to each variable.
155.Bl -tag -width indent
156.It Va kern.geom.stripe.debug : No 0
157Debug level of the
158.Nm STRIPE
159GEOM class.
160This can be set to a number between 0 and 3 inclusive.
161If set to 0 minimal debug information is printed, and if set to 3 the
162maximum amount of debug information is printed.
163.It Va kern.geom.stripe.fast : No 0
164If set to a non-zero value enable
165.Dq "fast mode"
166instead of the normal
167.Dq "economic mode" .
168Compared to
169.Dq "economic mode" ,
170.Dq "fast mode"
171uses more memory, but it is much faster for smaller stripe sizes.
172If enough memory cannot be allocated,
173.Nm STRIPE
174will fall back to
175.Dq "economic mode" .
176.It Va kern.geom.stripe.maxmem : No 13107200
177Maximum amount of memory that can be consumed by
178.Dq "fast mode"
179(in bytes).
180This
181.Xr sysctl 8
182variable is read-only and can only be set as a tunable in
183.Xr loader.conf 5 .
184.It Va kern.geom.stripe.fast_failed
185A count of how many times
186.Dq "fast mode"
187has failed due to an insufficient amount of memory.
188If this value is large, you should consider increasing the
189.Va kern.geom.stripe.maxmem
190value.
191.El
192.Sh EXIT STATUS
193Exit status is 0 on success, and 1 if the command fails.
194.Sh EXAMPLES
195The following example shows how to set up a striped device from four disks with a
196128KB stripe size for automatic configuration,
197create a file system on it,
198and mount it:
199.Bd -literal -offset indent
200gstripe label -v -s 131072 data /dev/da0 /dev/da1 /dev/da2 /dev/da3
201newfs /dev/stripe/data
202mount /dev/stripe/data /mnt
203[...]
204umount /mnt
205gstripe stop data
206gstripe unload
207.Ed
208.Sh COMPATIBILITY
209The
210.Nm
211interleave is in number of bytes,
212unlike
213.Xr ccdconfig 8
214which use the number of sectors.
215A
216.Xr ccdconfig 8
217.Ar ileave
218of
219.Ql 128
220is 64 KB (128 512B sectors).
221The same stripe interleave would be specified as
222.Ql 65536
223for
224.Nm .
225.Sh SEE ALSO
226.Xr geom 4 ,
227.Xr loader.conf 5 ,
228.Xr ccdconfig 8 ,
229.Xr geom 8 ,
230.Xr gvinum 8 ,
231.Xr mount 8 ,
232.Xr newfs 8 ,
233.Xr sysctl 8 ,
234.Xr umount 8
235.Sh HISTORY
236The
237.Nm
238utility appeared in
239.Fx 5.3 .
240.Sh AUTHORS
241.An Pawel Jakub Dawidek Aq Mt pjd@FreeBSD.org
242