xref: /freebsd/usr.sbin/mptutil/mptutil.8 (revision 6137b5f7b8c183ee8806d79b3f1d8e5e3ddb3df3)
1.\"
2.\" Copyright (c) 2008 Yahoo!, Inc.
3.\" All rights reserved.
4.\" Written by: John Baldwin <jhb@FreeBSD.org>
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. Neither the name of the author nor the names of any co-contributors
15.\"    may be used to endorse or promote products derived from this software
16.\"    without specific prior written permission.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.Dd May 24, 2024
31.Dt MPTUTIL 8
32.Os
33.Sh NAME
34.Nm mptutil
35.Nd Utility for managing LSI Fusion-MPT controllers
36.Sh SYNOPSIS
37.Nm
38.Cm version
39.Nm
40.Op Fl u Ar unit
41.Cm show adapter
42.Nm
43.Op Fl u Ar unit
44.Cm show config
45.Nm
46.Op Fl u Ar unit
47.Cm show drives
48.Nm
49.Op Fl u Ar unit
50.Cm show events
51.Nm
52.Op Fl u Ar unit
53.Cm show volumes
54.Nm
55.Op Fl u Ar unit
56.Cm fail Ar drive
57.Nm
58.Op Fl u Ar unit
59.Cm online Ar drive
60.Nm
61.Op Fl u Ar unit
62.Cm offline Ar drive
63.Nm
64.Op Fl u Ar unit
65.Cm name Ar volume Ar name
66.Nm
67.Op Fl u Ar unit
68.Cm volume status Ar volume
69.Nm
70.Op Fl u Ar unit
71.Cm volume cache Ar volume
72.Ar enable|enabled|disable|disabled
73.Nm
74.Op Fl u Ar unit
75.Cm clear
76.Nm
77.Op Fl u Ar unit
78.Cm create Ar type
79.Op Fl q
80.Op Fl v
81.Op Fl s Ar stripe_size
82.Ar drive Ns Op \&, Ns Ar drive Ns Op ",..."
83.Nm
84.Op Fl u Ar unit
85.Cm delete Ar volume
86.Nm
87.Op Fl u Ar unit
88.Cm add Ar drive Op Ar volume
89.Nm
90.Op Fl u Ar unit
91.Cm remove Ar drive
92.Sh DESCRIPTION
93The
94.Nm
95utility can be used to display or modify various parameters on LSI
96Fusion-MPT controllers.
97Each invocation of
98.Nm
99consists of zero or more global options followed by a command.
100Commands may support additional optional or required arguments after the
101command.
102.Pp
103Currently one global option is supported:
104.Bl -tag -width indent
105.It Fl u Ar unit
106.Ar unit
107specifies the unit of the controller to work with.
108If no unit is specified,
109then unit 0 is used.
110.El
111.Pp
112Volumes may be specified in two forms.
113First,
114a volume may be identified by its location as
115.Sm off
116.Op Ar xx Ns \&:
117.Ar yy
118.Sm on
119where
120.Ar xx
121is the bus ID and
122.Ar yy
123is the target ID.
124If the bus ID is omitted,
125the volume is assumed to be on bus 0.
126Second,
127on the volume may be specified by the corresponding
128.Em daX
129device,
130such as
131.Em da0 .
132.Pp
133The
134.Xr mpt 4
135controller divides drives up into two categories.
136Configured drives belong to a RAID volume either as a member drive or as a hot
137spare.
138Each configured drive is assigned a unique device ID such as 0 or 1 that is
139show in
140.Cm show config ,
141and in the first column of
142.Cm show drives .
143Any drive not associated with a RAID volume as either a member or a hot spare
144is a standalone drive.
145Standalone drives are visible to the operating system as SCSI disk devices.
146As a result, drives may be specified in three forms.
147First,
148a configured drive may be identified by its device ID.
149Second,
150any drive may be identified by its location as
151.Sm off
152.Ar xx Ns \&:
153.Ar yy
154.Sm on
155where
156.Ar xx
157is the bus ID and
158.Ar yy
159is the target ID for each drive as displayed in
160.Cm show drives .
161Note that unlike volumes,
162a drive location always requires the bus ID to avoid confusion with device IDs.
163Third,
164a standalone drive that is not part of a volume may be identified by its
165corresponding
166.Em daX
167device as displayed in
168.Cm show drives .
169.Pp
170The
171.Nm
172utility supports several different groups of commands.
173The first group of commands provide information about the controller,
174the volumes it manages, and the drives it controls.
175The second group of commands are used to manage the physical drives
176attached to the controller.
177The third group of commands are used to manage the logical volumes
178managed by the controller.
179The fourth group of commands are used to manage the drive configuration for
180the controller.
181.Pp
182The informational commands include:
183.Bl -tag -width indent
184.It Cm version
185Displays the version of
186.Nm .
187.It Cm show adapter
188Displays information about the RAID controller such as the model number.
189.It Cm show config
190Displays the volume and drive configuration for the controller.
191Each volume is listed along with the physical drives that the volume spans.
192If any hot spare drives are configured, then they are listed as well.
193.It Cm show drives
194Lists all of the physical drives attached to the controller.
195.It Cm show events
196Display all the entries from the controller's event log.
197Due to lack of documentation this command is not very useful currently and
198just dumps each log entry in hex.
199.It Cm show volumes
200Lists all of the logical volumes managed by the controller.
201.El
202.Pp
203The physical drive management commands include:
204.Bl -tag -width indent
205.It Cm fail Ar drive
206Mark
207.Ar drive
208as
209.Dq failed requested .
210Note that this state is different from the
211.Dq failed
212state that is used when the firmware fails a drive.
213.Ar Drive
214must be a configured drive.
215.It Cm online Ar drive
216Mark
217.Ar drive
218as an online drive.
219.Ar Drive
220must be part a configured drive in either the
221.Dq offline
222or
223.Dq failed requested
224states.
225.It Cm offline Ar drive
226Mark
227.Ar drive
228as offline.
229.Ar Drive
230must be a configured, online drive.
231.El
232.Pp
233The logical volume management commands include:
234.Bl -tag -width indent
235.It Cm name Ar volume Ar name
236Sets the name of
237.Ar volume
238to
239.Ar name .
240.It Cm volume cache Ar volume Ar enable|enabled|disable|disabled
241Enables or disables the drive write cache for the member drives of
242.Ar volume .
243.It Cm volume status Ar volume
244Display more detailed status about a single volume including the current
245progress of a rebuild operation if one is being performed.
246.El
247.Pp
248The configuration commands include:
249.Bl -tag -width indent
250.It Cm clear
251Delete the entire configuration including all volumes and spares.
252All drives will become standalone drives.
253.It Xo Cm create Ar type
254.Op Fl q
255.Op Fl v
256.Op Fl s Ar stripe_size
257.Ar drive Ns Op \&, Ns Ar drive Ns Op ",..."
258.Xc
259Create a new volume.
260The
261.Ar type
262specifies the type of volume to create.
263Currently supported types include:
264.Bl -tag -width indent
265.It Cm raid0
266Creates one RAID0 volume spanning the drives listed in the single drive list.
267.It Cm raid1
268Creates one RAID1 volume spanning the drives listed in the single drive list.
269.It Cm raid1e
270Creates one RAID1E volume spanning the drives listed in the single drive list.
271.El
272.Pp
273.Sy Note:
274Not all volume types are supported by all controllers.
275.Pp
276If the
277.Fl q
278flag is specified after
279.Ar type ,
280then a
281.Dq quick
282initialization of the volume will be done.
283This is useful when the drives do not contain any existing data that need
284to be preserved.
285.Pp
286If the
287.Fl v
288flag is specified after
289.Ar type ,
290then more verbose output will be enabled.
291Currently this just provides notification as drives are added to volumes
292when building the configuration.
293.Pp
294The
295.Fl s
296.Ar stripe_size
297parameter allows the stripe size of the array to be set.
298By default a stripe size of 64K is used.
299The list of valid values for a given
300.Ar type
301are listed in the output of
302.Cm show adapter .
303.It Cm delete Ar volume
304Delete the volume
305.Ar volume .
306Member drives will become standalone drives.
307.It Cm add Ar drive Op Ar volume
308Mark
309.Ar drive
310as a hot spare.
311.Ar Drive
312must not be a member of a volume.
313If
314.Ar volume
315is specified,
316then the hot spare will be dedicated to that volume.
317Otherwise,
318.Ar drive
319will be used as a global hot spare backing all volumes for this controller.
320Note that
321.Ar drive
322must be as large as the smallest drive in all of the volumes it is going to
323back.
324.It Cm remove Ar drive
325Remove the hot spare
326.Ar drive
327from service.
328It will become a standalone drive.
329.El
330.Sh EXAMPLES
331Mark the drive at bus 0 target 4 as offline:
332.Pp
333.Dl Nm Cm offline 0:4
334.Pp
335Create a RAID1 array from the two standalone drives
336.Va da1
337and
338.Va da2 :
339.Pp
340.Dl Nm Cm create raid1 da1,da2
341.Pp
342Mark standalone drive
343.Va da3
344as a global hot spare:
345.Pp
346.Dl Nm Cm add da3
347.Sh SEE ALSO
348.Xr mpt 4
349.Sh HISTORY
350The
351.Nm
352utility first appeared in
353.Fx 8.0 .
354.Sh BUGS
355The handling of spare drives appears to be unreliable.
356The
357.Xr mpt 4
358firmware manages spares via spare drive
359.Dq pools .
360There are eight pools numbered 0 through 7.
361Each spare drive can only be assigned to a single pool.
362Each volume can be backed by any combination of zero or more spare pools.
363The
364.Nm
365utility attempts to use the following algorithm for managing spares.
366Global spares are always assigned to pool 0,
367and all volumes are always backed by pool 0.
368For dedicated spares,
369.Nm
370assigns one of the remaining 7 pools to each volume and
371assigns dedicated drives to that pool.
372In practice however, it seems that assigning a drive as a spare does not
373take effect until the box has been rebooted.
374Also, the firmware renumbers the spare pool assignments after a reboot
375which undoes the effects of the algorithm above.
376Simple cases such as assigning global spares seem to work ok
377.Pq albeit requiring a reboot to take effect
378but more
379.Dq exotic
380configurations may not work reliably.
381.Pp
382Drive configuration commands result in an excessive flood of messages on the
383console.
384.Pp
385The mpt version 1 API that is used by
386.Nm
387and
388.Xr mpt 4
389does not support volumes above two terabytes.
390This is a limitation of the API.
391If you are using this adapter with volumes larger than two terabytes, use the adapter in JBOD mode.
392Utilize
393.Xr geom 8 ,
394.Xr zfs 8 ,
395or another software volume manager to work around this limitation.
396