raidutil(8)

NAME
raidutil - Manage, manipulate, and view RAID objects.

SYNOPSIS
raidutil [global options] verb direct-object arguments ...

DESCRIPTION
raidutil utilizes the CoreRAID framework to manipulate RAID devices.

GLOBAL OPTIONS
There are several global options that may be used with. These options are not specific to any particular verb. Instead they have a global effect upon the way that raidutil performs. These global options are:

-c <ControllerType> | --controller <ControllerType>
    This option (controller) allows the user to specify a controller type.

-h | --help
    This option (help) will print the standard "usage" text.

-t | --terse
    This option (terse) will minimize superfluous text.

-v | --verbose
    This option (verbose) will maximize the amount of detailed infomation the program will provide.

-V | --version
    This option (Version) will print out version information about this program.

VERBS, DIRECT OBJECTS, AND SPECIFIC ARGUMENTS

acknowledge event -n <EventNumber>
    Marks an event as acknowledged by specifiying an identifying event number. The -n may also be expressed as --number.

create raidset -n <NewRAIDSet> -d <ListOfDriveBays> -r <RaidLevel>
    Create a RAIDSet specifiying: a RAIDSet name; a list of drive bays; the RAID level. The -n, -d, and -r flags may also be expressed as --name, --drives, and --raidlevel, respectively. Valid raidlevel's are J+, 0, 1, 5, 0+1.

create volume -n <NewVolumeName> -r <NameOfRAIDSet> -s <SizeOfVolume>
    Create a volume specifiying: a volume name; a RAIDSet to build the volume on; the size of the volume. The -n, -d, and -s flags may also be expressed as --name, --raidset, and --size, respectively.

delete raidset -n <NameOfRAIDSet> [-f] [-u]
    Remove a RAIDSet. The name of the RAIDSet is specified using the -n argument. The -n flag may also be expressed as --name. The optional -f flag may also be expressed as --force. The optional -u flag may also be expressed as --unmount.

delete volume -n <NameOfVolume> [-r <RAIDSet>] [-f] [-u]
    Remove a volume. The name of the volume is specified using the -n argument. The -n flag may also be expressed as --name. The optional -r flag may also be expressed as --raidset. The optional -f flag may also be expressed as --force. The optional -u flag may also be expressed as --unmount.

list [devices]
    List all known RAID devices. This is the default behavior if no direct object is specified.

list status
    Prints an overview of status information for the targeted RAID device.

list driveinfo
    Lists relevant information about any disk drives associated with the targeted RAID device.

list eventinfo [-c n]
    Lists the last 100 event messages. When provided, the optional 'count' argument, will limit the output to the last 'n' event messages (a value of 0 will display all event messsages).

list raidsetinfo
    Lists relevant information about any RAIDSet associated with the targeted RAID device.

list taskinfo
    Lists relevant information about any tasks associated with the targeted RAID device.

list volumeinfo
    Lists relevant information about any volumes associated with the targeted RAID device.

list versioninfo
    List version information about the targeted RAID device.

modify controller [arguments listed below]
    This will allow the user to modify specific attributes of the targeted controller.
    --writeCacheBattery
    --WriteCacheEnable

modify drive [arguments listed below]
    This will allow the user to modify specific attributes of the targeted drive.
    --addglobalspare -d <DriveBayNumber> [-Y | -N]
    --removeglobalspare -d <DriveBayNumber>
    --addlocalspare -d <DriveBayNumber> -r <RAIDSet> [-Y | -N]
    --removelocalspare -d <DriveBayNumber>
    --adopt -d <DriveBayNumber>

modify raidset [arguments listed below]
    This will allow the user to modify specific attributes of the targeted RAIDSet.
    --addcapacity -n <RAIDSet> -d <ListOfDrives> [-Y | -N] [-W]
    --addmirror -n <RAIDSet> -d <ListOfDrives> [-Y | -N] [-W]
    --migratetoraid5 -n <RAIDSet> -d <ListOfDrives> [-Y | -N] [-W]
    --verify -n <RAIDSet> -p <ServicePriority> [-W]

modify volume [arguments listed below]
    This will allow the user to modify specific attributes of the targeted volume.
    --expand -n <VolumeName> [-r <RAIDSet>] -s <SizeToAdd> [-W]
    --move -n <ListOfVolumes> -r <SourceRAIDSet> -t <TargetRAIDSet> [-W]
    --rewrite -n <VolumeName> [-r <RAIDSet>] -p <ServicePriority> [-W]
    --verify -n <VolumeName> [-r <RAIDSet>] -p <ServicePriority> [-W]

    NOTE: Valid values for <ServicePriority> are: low, medium, high.

EXAMPLES

raidutil create raidset -n set2 -d 1,2 -r J+
    This creates a RAIDSet named "set2", using the drives in bays one and two, with a raid level of "Enhanced JBOD."

raidutil create volume -n volume1 -r set1 -s 1.5T
    This creates a volume named "volume1", on the RAIDSet named "set1". The size of the volume will be 1.5 tebibytes.

raidutil modify volume -n volume1 --move -r set1 -t set2 --waitfortask
    This moves the volume named "volume1", from the RAIDSet named "set1". to the RAIDSet named "set2". The program will wait for the verification task to complete before proceeding.

raidutil delete raidset -n setX
    This deletes a RAIDSet named "setX." Any volumes associated with this RAIDSet will also be destroyed.

raidutil delete raidset -n setX --force
    Regardless of whether there are any mounted file systems associated with this group, this command deletes a RAIDSet named "setX." Any volumes associated with this group will also be destroyed.

raidutil delete volume -n myVolume
    This deletes a volume named "myVolume."

raidutil delete volume -n myVolume -r BigRAIDSet
    This specifically deletes a volume named "myVolume," that exists on the RAIDSet named BigRAIDSet.

raidutil delete volume -n myVolume:BigRAIDSet
    This specifically deletes a volume named "myVolume," that exists on the group named BigRAIDSet. Make note that this example uses a method of overloading the volume name with the group name in order to specify the group.

raidutil list devices
    This will print out a list of all known RAID devices.

raidutil list version
    This will print out version information for the RAID device.

COMPATIBILITY

  RAID Levels
When creating a RAID set the user must specify the type of RAID set that they wish to create through the raidlevel argument. Valid RAID levels are as follows:

    J+ Enhanced JBOD

    0 RAID 0 (striping)

    1 RAID 1 (mirroring)

    0+1 RAID 0+1 (mirroring a striped pair)

    5 RAID 5 (striping with distributed parity)

Using Enhanced JBOD, you can create a RAID set using a single drive. The resulting RAID set doesnŐt gain the performance or data protection of the other RAID levels, but it does benefit from the data caching and battery backup provided by the RAID card. An enhanced JBOD set can also be migrated to other RAID sets or moved to another computer that has a Mac Pro or Xserve RAID Card installed.

RAID 0 offers improved performance but no data protection. Blocks of data are spread across all of the drives in the RAID set in a process called striping. This allows better performance because file contents move in parallel to and from the individual drives in the set. RAID 0 also provides the most usable disk space; nearly all space on all drives is available for user data. You can create a RAID 0 set using two, three, or four disks.

RAID 1 protects data against a drive failure and allows some increase in read performance. Data is protected by duplicating the contents of each drive on a second drive in the set, a process called mirroring. Because of the duplication, a volume based on a RAID 1 canŐt be larger than half of the total space available on the drives in the set. You can create a RAID 1 set using either two or four disks.

RAID 0+1 combines the performance of RAID 0 with the data protection of RAID 1 by mirroring a striped set on a second pair of drives. Because mirroring duplicates all data, this level offers less usable disk space than RAID 5. Usable space is half of the total space available on the drives in the set. You need four disks to create a RAID 0+1 set.

RAID 5 is a compromise between the performance of RAID 0 and the data protection of RAID 1. Performance is improved by striping data across the drives in the set. Data protection is provided by parity information that is distributed across the drives. Data can be recovered if any single drive fails. RAID 5 leaves you with more usable space than RAID 1. RAID 5 needs only the equivalent of one driveŐs worth of disk space to store the parity information. You can create a RAID 5 set using either three or four disks.

  Specifying volumes
When performing certain actions, it may be desirable to explicitly specify the group that a volume is built upon. For example, when removing a volume, one might want to specify the associated group for clarity. In these cases, an optional argument is generally available for this purpose. An example of this is:

    # raidutil delete volume -n myVolume -r theBigRAIDSet

A shortcut exists whereby the RAIDSet may be specified as a suffix to the volume name. For example, this is equivelent to the previous command:

    # raidutil delete volume -n myVolume:theBigRAIDSet

The RAIDSet name is simply added to the volume name using the colon character as a separator. This shortcut is supported by all of the "modify volume" actions.

  Specifying Sizes
When specifying data that indicates a numeric size, the value will be assumed to be expressed in megabytes (MB) unless otherwise indicated.

For our purposes, we will treat all size units as 1000 based numbers.

Values may be expressed in bytes by ending the value with the letter "B".

Other units for measure storage space follow suit, as shown by the following table:

kilobyte (KB) 2^10 = 1000 bytes
megabyte (MB) 2^20 = 1000 * 1000 bytes
gigabyte (GB) 2^30 = 1000 * 1000 * 1000 bytes
terabyte (TB) 2^40 = 1000 * 1000 * 1000 * 1000 bytes
petabyte (PB) 2^50 = 1000 * 1000 * 1000 * 1000 * 1000 bytes

For the purposes of entering size information to this program, the default units are mebibytes (MiB). This program will support values expressed in the following units. Acceptable abbreviations are listed after the name:

one byte = 1B | --- | B
kilobyte = 1000B | --- | K, KB
megabyte = 1000K | --- | M, MB
gigabyte = 1000M | --- | G, GB
terabyte = 1000G | --- | T, TB
petabyte = 1000T | --- | P, PB

For example, each of the following commands will all create a volume named "theVolume" with a size of 600 megabytes, on the RAIDSet named "RAIDSet":

    # raidutil create volume -n theVolume -s 600000K -r RAIDSet-A

    # raidutil create volume -n theVolume -s 600 -r RAIDSet

    # raidutil create volume -n theVolume -s 600M -r RAIDSet

    # raidutil create volume -n theVolume -s 0.6GB -r RAIDSet

    # raidutil create volume -n theVolume -s 0.0006TB -r RAIDSet

    # raidutil create volume -n theVolume -s 0.0000006P -r RAIDSet

  Special Size Values For Creating Volumes
In place of a numeric value, the user may provide the word all. When this is done the program will attempt to use the maximum valid value. For example, the following command would create a volume named "BigVolume", on the RAIDSet named "BigRAIDSet", using all available space on that RAIDSet:

    # raidutil create volume -n BigVolume -s all -r BigRAIDSet

Similarly, the user may provide a value that indicates a percentage of available space. This is done by providing a numeric value between 1 and 100 that is followed by the ‘%’ character. For example, the following command would create a volume named "BigVolume", on the RAIDSet named "BigRAIDSet", using all available space on that RAIDSet:

    # raidutil create volume -n BigVolume -s 100% -r BigRAIDSet

The following command would create a volume named "MyVolume", on the RAIDSet named "MyRAIDSet", using one fifth of all available space on that RAIDSet:

    # raidutil create volume -n MyVolume -s 20% -r MyRAIDSet

It should be noted that, all percentage values are rounded down to the nearest whole number. Thus, 33.333% becomes 33%, and 17.9321% becomes 17%. Computed values are based on the RAIDSet available capacity attribute.

NOTE: The use of mebibyte and related units is strongly endorsed by IEC, IEEE and CIPM. The mebibyte and related units are defined in the IEC document IEC 60027-1.

EXIT STATUS

SEE ALSO
diskutil(8), hdid(8), hdiutil(1), ufs.util(8), msdos.util(8), hfs.util(8), drutil(1), diskarbitrationd(8)