RAIDCTL(8) Maintenance Commands and Procedures RAIDCTL(8)
NAME
raidctl - RAID hardware utility
SYNOPSIS
raidctl -C "disks" [
-r raid_level] [
-z capacity] [
-s stripe_size] [
-f]
controller
raidctl -d [
-f]
volume raidctl -F filename [
-f]
controller...
raidctl -a {
set |
unset}
-g disk {
volume |
controller}
raidctl -p "param=value" [
-f]
volume raidctl -c [
-f] [
-r raid_level]
disk1 disk2 [
disk3...]
raidctl -l -g
disk controller raidctl -l volume raidctl -l controller...
raidctl [
-l]
raidctl -S [
volume |
controller]
raidctl -S -g
disk controller raidctl -hDESCRIPTION
The
raidctl utility is a hardware RAID configuration tool that
supports different RAID controllers by providing a CLI (command-line
interface) to end-users to create, delete or display RAID volume(s).
The utility can also used to set properties of a volume, assign hot-
spare (HSP) disks to volumes or controllers, and to update
firmware/fcode/BIOS for RAID controllers.
The
raidctl utility requires privileges that are controlled by the
underlying file-system permissions. Only privileged users can
manipulate the RAID system configuration. If a non-privileged user
attempts to run
raidctl, the command fails with an exit status of 1.
The
raidctl utility, as described in this man page, defines a broad
set of command line options to provide management for full-featured
RAID controllers. However, support for a given option depends on two
elements:
o the presence of a software driver
o the firmware level of the RAID device
The dependency on a software driver is due to the design of
raidctl.
The utility is built on a common library that enables the insertion
of plug-in modules for different drivers. Currently, the Solaris
operating system is shipped with a plug-in for the
mpt driver. This
plug-in does not support all of the
raidctl options. On a given
storage device, options might be further limited by the device's
firmware level.
The level of support for the various
raidctl options cannot be
determined by
raidctl. The user must rely on the documentation for
his RAID controller or hardware platform.
Currently,
raidctl Currently,
raidctl provides some level of support
for the following RAID controllers:
o LSI1020 SCSI HBA
o LSI1030 SCSI HBA
o LSI1064 SAS HBA
o LSI1068 SAS HBA
All of the above HBAs are maintained by the
mpt driver, on X86-32/64
and SPARC platforms.
OPTIONS
The following options are supported:
-C "disks" [
-r raid_level] [
-z capacity] [
-s stripe_size] [
-f]
controller
Create a RAID volume using specified disks.
When creating a RAID volume using this option, the identity of
the newly created volume is automatically generated and raidctl
reports it to the user.
The argument specified by this option contains the elements used
to form the volume that will be created. Elements can be either
disks or sub-volumes, where disks are separated by space(s) and a
sub-volume is a set of disks grouped by parenthesis. All disks
should be in
C.ID.L expression (for example,
0.1.2 represents a
physical disk of channel 0, target id 1, and logical unit number
2). The argument must match the RAID level specified by the
-r option, even if it's omitted. This means the argument can only
be:
for RAID 0 At least 2 disks
for RAID 1 Only 2 disks
for RAID 1E At least 3 disks
for RAID 5 At least 3 disks
for RAID 10 At least 2 sub-volumes, each sub-volume must be formed by 2
disks
for RAID 50 At least 2 sub-volumes, each sub-volume must be formed by at
least 3 disks, and the disk amount in each sub-volume should
be the same
For example, the expression "0.0.0 0.1.0" means that the 2
specified disks form a RAID volume, which can either be a RAID 0
or a RAID 1 volume. "(0.0.0 0.1.0)(0.2.0 0.3.0)" means that the
first 2 disks and the last 2 disks form 2 sub-volumes, and that
these 2 sub-volumes form a RAID 10 volume. See the
EXAMPLES section for more samples.
The
-r option specifies the RAID level of the volume that will be
created. Possible levels are 0, 1, 1E, 5, 10, 50. If this option
is omitted,
raidctl creates a RAID 1 volume by default.
The
-z option specifies the capacity of the volume that will be
created. The unit can be tera-bytes, giga-bytes, or mega-bytes
(for example, 2t, 10g, 20m, and so on). If this option is
omitted,
raidctl calculates the maximum capacity of the volume
that can be created by the specified disks and uses this value to
create the volume.
The
-s option specifies the stripe size of the volume that will
be created. The possible values are 512, 1k, 2k, 4k, 8k, 16k,
32k, 64k, or 128k. If this option is omitted,
raidctl chooses an
appropriate value for the volume (for example, 64k).
In some cases, the creation of a RAID volume may cause data on
specified disks to be lost (for instance, on LSI1020, LSI1030,
SAS1064, or SAS1068 HBAs), and
raidctl prompts the user for
confirmation about the creation. Use the
-f option to force the
volume creation without prompting the user for confirmation.
The controller argument is used to identify which RAID controller
the specified disks belongs. The
-l option can be used to list
the controller's ID number.
-d [
-f]
volume Delete the RAID volume specified as volume. The volume is
specified in canonical form (for example,
c0t0d0).
When a volume is deleted, all data is lost. Therefore, unless the
-f option is specified,
raidctl prompts the user for confirmation
before deleting the volume.
When a RAID 1 volume is deleted from a LSI1020, LSI1030, SAS1064,
or SAS1068 HBA, the primary and secondary disks are "split". If
the volume was in
SYNCING state, the primary will contain the
data, and the secondary will not. If the volume state was
OPTIMAL, both disks will contain a complete image of the data.
-F filename [
-f]
controller...
Update the firmware running on the specified controller(s). The
raidctl utility prompts the user for confirmation of this action,
unless the
-f option is provided.
-a {
set |
unset}
-g disk {
volume |
controller}
If the volume is specified,
raidctl sets or unsets the disk as a
local hot-spare disk dedicated to the volume, depending on the
value specified by the
-a option. If the controller is specified,
raidctl sets or unsets the disk as a global hot-spare disk.
-p "param=value" [
-f]
volume Change the property value for a given RAID volume. This option
can be used to change cache write policy or to activate a volume.
When changing the cache write policy,
param should be the string
wp (
SET_WR_POLICY), and
value can be either
on or
off. When used
to activate a volume,
param should be
state and
value should be
activate.
Changing a RAID volume's property may affect the internal
behavior of the RAID controller, so
raidctl prompts the user for
a confirmation before applying the change, unless the
-f option
is specified.
-c [
-f] [
-r raid_level]
disk1 disk2 [
disk3...]
Create a volume using the specified disks. This is an alternative
to the
-C option with similar functionality. This option is
preserved for compatibility reasons, but only works with LSI1020,
LSI1030, SAS1064, and SAS1068 HBAs to create RAID 0, RAID 1, or
RAID 1E volumes. For other HBAs, the user can only use the
-C option.
The
-r option can be used to specify the RAID level of the target
volume. If the
-r option is omitted,
raidctl will create a RAID
1 volume.
Disks must be specified in Solaris canonical format (for example,
c0t0d0).
Creating a RAID 1 volume with this option replaces the contents
of disk2 with the contents of disk1.
When the user creates a RAID volume with this option, the RAID
volume assumes the identity of disk1. Other disks become
invisible and the RAID volume appears as one disk.
Creating a volume with this option is by default interactive. The
user must answer a prompt affirmatively to create the volume. Use
the
-f option to force the volume creation without prompting the
user for confirmation.
-l -g
disk controller Display information about the specified disk of the given
controller. The output includes the following information:
Disk Displays the disk in
C.ID.L expression disk.
Vendor Displays the vendor ID string.
Product Displays the product ID string.
Capacity Displays the total capacity of the disk.
Status Displays the current status of disk. The status can be either
"
GOOD" (operating normally), "
FAILED" (non-functional), or
"
MISSING" (disk not present).
HSP Indicates if the disk has been set as a global hot-spare
disk, local hot-spare disk, or a normal one. If it is a local
hot-spare disk, all volumes which this disk is assigned to
are displayed.
GUID GUID string for the specified disk. This is an additional
datum and might be unavailable in some cases.
-l volume Display information about the specified volume. The output
includes the following information:
Volume Displays volume in canonical format.
Sub Displays sub-volumes, if the specified volume is of RAID 10
or RAID 50 volume.
Disk Displays all disks that form the specified volume.
Stripe Size Displays the stripe size of the volume.
Status Displays the status of the specified volume, or the sub-
volumes or disks that form the specified volume. For an
inactive volume, the status should be
INACTIVE; otherwise
it can be
OPTIMAL (operating optimally),
DEGRADED (operating
with reduced functionality),
FAILED (non-functional), or
SYNC (disks are syncing). For a disk, the status can be
GOOD,
FAILED, or
MISSING.
Cache Indicates whether the cache is applied to
I/O write
activities. The cache can be either "
ON" or "
OFF".
RAID level Displays the RAID level. The RAID level can be either 0, 1,
1E, 5, 10, or 50.
-l controller ... Display information about the specified controller(s). The output
includes the following information:
Controller Displays the RAID controller's ID number.
Type Displays the RAID controller's product type.
fw_version Displays the controller's firmware version.
[-l]
List all RAID related objects that the
raidctl utility can
manipulate, including all available RAID controllers, RAID
volumes, and physical disks. The
-l option can be omitted.
The output includes the following information:
Controller Displays the RAID controller's ID number.
Volume Displays the logical RAID volume name.
Disk Displays the RAID disk in
C.ID.L expression.
-S [
volume |
controller]
Takes a snapshot of the RAID configuration information including
all available RAID devices, RAID controllers, volumes, and disks.
Each line of the output specifies a RAID device and its related
information, separated by space(s). All volumes and disks belong
to the last specified controller.
The output lists the following information:
Controller Displays the controller ID number, and the controller type
string in double-quotation marks.
Volume Displays the RAID volume name, number of component disks, the
C.ID.L expression of the component disks, the RAID level, and
the status. The status can be either
OPTIMAL,
DEGRADED,
FAILED, or
SYNCING.
Disk Displays the
C.ID.L expression of the disk, and the status.
The status can be either
GOOD,
FAILED, or
HSP (disk has been
set as a stand-by disk).
If a volume or a controller is specified, a snapshot is only
taken of the information for the specified volume or controller.
-S -g
disk controller Takes a snapshot of the information for the specified disk.
-h Print out the usage string.
EXAMPLES
Example 1: Creating the RAID Configuration
The following command creates a RAID 0 volume of 10G on controller 0,
and the stripe size will be set to 64k:
#
raidctl -C "0.0.0 0.2.0" -r 0 -z 10g -s 64k 0 The following command creates a RAID 1 volume on controller 2:
#
raidctl -C "0.0.0 1.1.0" -r 1 2 The following command creates a RAID 5 volume on controller 2:
#
raidctl -C "0.0.0 0.1.0 0.2.0" -r 5 2 The following command creates a RAID 10 volume on controller 0:
#
raidctl -C "(0.0.0 0.1.0)(0.2.0 0.3.0)" -r 10 0 The following command creates a RAID 50 volume on controller 0:
#
raidctl -C "(0.0.0 0.1.0 0.2.0)(0.3.0 0.4.0 0.5.0)" -r 50 0 Example 2: Displaying the RAID Configuration
The following command displays all available controllers, volumes,
and disks:
#
raidctl -l Controller: 0
Controller: 2
Volume:c2t0d0
Disk: 0.0.0
Disk: 0.1.0
Disk: 0.2.0
Disk: 0.3.0(HSP)
The following command displays information about controller 2:
#
raidctl -l 2 Controller Type Fw_version
--------------------------------------------------------------
c2 LSI 1030 1.03.39.00
The following command displays information about the specified
volume:
#
raidctl -l c2t0d0 Volume Size Stripe Status Cache RAID
Sub Size Level
Disk
--------------------------------------------------------------
c2t0d0 10240M 64K OPTIMAL ON RAID5
0.0.0 5120M GOOD
0.1.0 5120M GOOD
0.2.0 5120M GOOD
The following command displays information about disk 0.0.0 on
controller 0:
#
raidctl -l -g 0.0.0 0 Disk Vendor Product Firmware Capacity Status HSP
--------------------------------------------------------------------
0.0.0 HITACHI H101473SCSUN72G SQ02 68.3G GOOD N/A
GUID:2000000cca02536c
Example 3: Deleting the RAID Configuration
The following command deletes a volume:
#
raidctl -d c0t0d0 Example 4: Updating Flash Images on the Controller
The following command updates flash images on the controller 0:
#
raidctl -F lsi_image.fw 0 Example 5: Setting or Unsetting a Hot-Spare Disk
The following command sets disk 0.3.0 on controller 2 as a global
hot-spare disk:
#
raidctl -a set -g 0.3.0 2 The following command sets disk 0.3.0 on controller 2 as a local hot-
spare disk to volume c2t0d0:
#
raidctl -a set -g 0.3.0 c2t0d0 The following command converts disk 0.3.0 on controller 2 from a
global hot-spare disk to a normal one:
#
raidctl -a unset -g 0.3.0 2 The following command removes disk 0.3.0 from being a local hot-spare
disk from volume c2t0d0:
#
raidctl -a unset -g 0.3.0 c2t0d0 Example 6: Setting the Volume's Property
The following command sets the write policy of the volume to "
off":
#
raidctl -a set -p "wp=off" c0t0d0 Example 7: Creating Volumes with the -c Option
The following command creates a RAID 1 volume:
#
raidctl -c c0t0d0 c0t1d0 The following command creates a RAID 0 volume:
#
raidctl -c -r 0 c0t1d0 c0t2d0 c0t3d0 Example 8: Taking a Snapshot of the RAID Configuration
The following command takes a snapshot of all RAID devices:
#
# raidctl -S 1 "LSI 1030"
c1t1d0 2 0.2.0 0.3.0 1 DEGRADED
0.2.0 GOOD
0.3.0 FAILED
The following command takes a snapshot about volume c1t0d0:
#
raidctl -S c1t0d0 c1t0d0 2 0.0.0 0.1.0 1 OPTIMAL
The following command takes a snapshot about disk 0.1.0 on controller
1:
#
raidctl -S -g 0.1.0 1 0.1.0 GOOD
EXIT STATUS
The following exit values are returned:
0 Successful completion.
1 Invalid command line input or permission denied.
2 Request operation failed.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------------+-----------------+
|Interface Stability | Committed |
+---------------------+-----------------+
SEE ALSO
mpt(4D),
attributes(7) System Administration Guide: Basic Administration
WARNINGS
Do not create raid volumes on internal
SAS disks if you are going to
use the Solaris Multipathing I/O feature (also known as MPxIO).
Creating a new raid volume under Solaris Multipathing will give your
root device a new
GUID which does not match the
GUID for the existing
devices. This will cause a boot failure since your root device entry
in
/etc/vfstab will not match.
NOTES
The
-z option is not supported on systems that use the
mpt driver and
LSI RAID controllers.
February 5, 2009 RAIDCTL(8)