.\"	$OpenBSD: bioctl.8,v 1.61 2008/08/22 06:41:36 jmc Exp $
.\"
.\" Copyright (c) 2004, 2005 Marco Peereboom
.\"
.\" 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 AUTHORS 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 AUTHORS 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.
.\"
.Dd $Mdocdate: August 22 2008 $
.Dt BIOCTL 8
.Os
.Sh NAME
.Nm bioctl
.Nd RAID management interface
.Sh SYNOPSIS
.Nm bioctl
.Bk -words
.Op Fl dhiqv
.Op Fl a Ar alarm-function
.Op Fl b Ar channel:target[.lun]
.Op Fl C Ar flag[,flag,...]
.Op Fl c Ar raidlevel
.Op Fl H Ar channel:target[.lun]
.Op Fl l Ar special[,special,...]
.Op Fl R Ar device\*(Bachannel:target[.lun]
.Op Fl r Ar rounds
.Op Fl u Ar channel:target[.lun]
.Ar device
.Ek
.Sh DESCRIPTION
RAID device drivers which support management functionality can
register their services with the
.Xr bio 4
driver.
.Nm bioctl
then can be used to maintain RAID volumes.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl a Ar alarm-function
Control the RAID card's alarm functionality, if supported.
.Ar alarm-function
may be one of:
.Pp
.Bl -tag -width disable -compact
.It Ar disable
Disable the alarm on the RAID controller.
.It Ar enable
Enable the alarm on the RAID controller.
.It Ar get
Retrieve the current alarm state (enabled or disabled).
.It Ar silence | Ar quiet
Silence the alarm if it is currently beeping.
.El
.Pp
The
.Ar alarm-function
may be specified as given above,
or by the first letter only
(e.g. -a e).
.It Fl b Ar channel:target[.lun]
Instruct the device at
.Ar channel:target[.lun]
to start blinking, if there is
.Xr ses 4
or
.Xr safte 4
support in the enclosure.
.It Fl C Ar flag[,flag,...]
Pass flags when doing operations with
.Nm .
May be one of:
.Pp
.Bl -tag -width disable -compact
.It Ar force
Force the operation, e.g. to force creation of volumes
with unclean data in the metatdata areas.
.It Ar noauto
Ignore this RAID volume upon reboot.
.El
.It Fl c Ar raidlevel
Create a
.Xr softraid 4
device of level
.Ar raidlevel .
The device must begin with
.Dq softraid
followed by a number.
.Pp
Valid raidlevels are:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It 0
RAID 0:
A striping discipline.
.It 1
RAID 1:
A mirroring discipline.
.It C
CRYPTO:
An encrypting discipline.
.El
.It Fl d
Delete volume specified by device.
.It Fl H Ar channel:target[.lun]
If the device at
.Ar channel:target[.lun]
is currently marked
.Dq Unused ,
promote it to being a
.Dq Hot Spare .
.It Fl h
Where necessary, produce "human-readable" output.
Use unit suffixes: Byte, Kilobyte, Megabyte,
Gigabyte, Terabyte, Petabyte, Exabyte in order to reduce the number of
digits to four or less.
.It Fl i
Enumerate the selected RAID devices.
.It Fl l Ar special[,special,...]
Use
.Ar special
device list to create within the
.Xr softraid 4
framework.
Requires
.Fl c .
.It Fl q
Show vendor, product, revision, and serial number for the given disk.
.It Fl R Ar device\*(Bachannel:target[.lun]
Manually kick off a rebuild using
.Ar device
or
.Ar channel:target[.lun]
on the provided drive name.
This command requires a drive by name (e.g. sd1) instead of a controller
by name (e.g. softraid0).
.It Fl r Ar rounds
When creating an encrypted volume, specifies the number of iterations of
the algorithm used to convert a passphrase into a key.
Higher iteration counts take more time, but offer more resistance to key
guessing attacks.
The minimum is 1000 rounds and the default is 8192.
.It Fl u Ar channel:target[.lun]
Instruct the device at
.Ar channel:target[.lun]
to cease blinking, if there is
.Xr ses 4
or
.Xr safte 4
support in the enclosure.
.It Fl v
Be more verbose in output.
.It Ar device
Select a drive by name (e.g. sd0) or a RAID controller by name (e.g. ami0).
For operations which will be performed against
.Xr ses 4
or
.Xr safte 4
enclosures, it is also possible to directly specify the enclosure name
(e.g. safte0).
.El
.Sh EXAMPLES
The following command, executed from the command line, would configure
the device softraid0 with 4 special devices
(/dev/sd2e, /dev/sd3e, /dev/sd4e, /dev/sd5e) and
a raid level of 1:
.Bd -literal -offset 3n
# bioctl -c 1 -l /dev/sd2e,/dev/sd3e,/dev/sd4e,/dev/sd5e softraid0
.Ed
.Pp
The following command, executed from the command line, would configure the
device softraid0 with one special device (/dev/sd2e) and an encrypting
volume:
.Bd -literal -offset 3n
# bioctl -c C -l /dev/sd2e softraid0
.Ed
.Pp
.Nm
will ask for a passphrase, that will be needed to unlock the encrypted
disk.
After creating a new encrypted disk, it should be zeroed with the
following command (assuming the new disk is sd3):
.Bd -literal -offset 3n
# dd if=/dev/zero of=/dev/rsd3c
.Ed
.Sh SEE ALSO
.Xr ami 4 ,
.Xr arc 4 ,
.Xr bio 4 ,
.Xr ciss 4 ,
.Xr mfi 4 ,
.Xr safte 4 ,
.Xr scsi 4 ,
.Xr ses 4 ,
.Xr softraid 4
.Sh HISTORY
The
.Nm
command first appeared in
.Ox 3.8 .
.Sh AUTHORS
The
.Nm
interface was written by
.An Marco Peereboom Aq marco@openbsd.org .
.Sh CAVEATS
Use of the crypto discipline is currently considered experimental.