mkarray

Use the mkarray command to create an MDisk array and add it to a storage pool. This command applies to nondistributed arrays. (Use the mkdistributedarray command to create distributed arrays.)

Syntax

mkarray  -level  { raid0 | raid1 | raid5 | raid6 | raid10 }  -drive drive_id_list [  -strip  { 128 | 256 } ] [  -sparegoal  { 0-(MAX_DRIVES-1) } ] [  -name  new_name_arg ] [  -slowwritepriority  { { latency | redundancy } } ] { mdiskgrp_id | mdiskgrp_name }

Parameters

-level
(Required) Sets the RAID level for the array MDisk being created.
The following requirements apply for RAID levels:
  • RAID-0: Stripes data across all members, provides no redundancy.
  • RAID-1: Mirrored pair of drives, allows reading from either drive. Can tolerate either drive failing.
  • RAID-5: These arrays stripe data over the member drives with one parity strip on every stripe and can tolerate no more than one member drive failure.
  • RAID-6: These arrays stripe data over the member drives with two parity strips on every stripe and can tolerate any two concurrent member drive failures.
  • RAID-10: These arrays are in a set of up to eight mirrored pairs with the data striped across mirrors. They can tolerate the failure of one drive in each mirror and they allow reading from both drives in a mirror. (You cannot use RAID-10 with distributed arrays.)
-drive drive_id_list
(Optional) Identifies the drive or drives to use as members of the RAID array.

For RAID-1 and RAID-10 arrays, drives are specified as a sequence of mirrored drive pairs. For example, if an array is created with -drive a:b:c:d, drive b contains the mirror copy of drive a, and drive d contains the mirror copy of drive c. (You cannot use RAID-10 with distributed arrays.)

This list shows how many member drives are allowed in each supported RAID type:
  • RAID-0: Allows one-member to eight-member drives.
  • RAID-1: Allows two-member drives.
  • RAID-5: Allows three-member to sixteen-member drives.
  • RAID-6: Allows five-member to sixteen-member drives.
  • RAID-10: Allows drives with:
    • Two members
    • Four members
    • Six members
    • Eight members
    • Ten members
    • Twelve members
    • Fourteen members
    • Sixteen members
    Each pair of drives must contain a drive from a node in the I/O group and a drive from the other node. (You cannot use RAID-10 with distributed arrays.)
-strip 128 | 256
(Optional) Sets strip size (in KB) for the array MDisk being created. The default is 256 KB.
-sparegoal 0-(MAX_DRIVES-1)
(Optional) Sets the number of spares that this array's members must be protected by. The default is 1 (except for RAID-0 arrays, which have a default of 0).
-name new_name_arg
(Optional) Specifies the name to which you want to apply the array MDisk.
-slowwriteprioritylatency | redundancy
(Optional) Controls array ability to complete write operations that take too long, even if it temporarily compromises redundancy.
The value can be either latency or redundancy:
  • latency implies the feature is enabled for normal I/O operations
  • redundancy implies the feature is not enabled for normal I/O operations
The default value is latency mode for existing arrays, unless the array is RAID-0 (in which case redundancy mode is required).
Important: Do not change the mode of a RAID-0 array.
mdiskgrp_id | mdiskgrp_name
(Required) Identifies the storage pool (by name or ID) to which you want to add the created array MDisk.

Description

This command creates an array MDisk RAID array and adds it to a storage pool. Although the array tier is automatically determined, you can change it later using the chmdisk command.

An array MDisk being added to a storage pool used for active-active relationships must match other MDisks in the storage pool.

Remember: This command cannot be used to add an array to a child pool.

If the raid_level is RAID-1 or RAID-10, and the drive list contains drives that do not share a SAS port connection chain, the array attempts to continue to maintain the location balance between the mirrored pairs. (You cannot use RAID-10 with distributed arrays.) Configuration changes indicate a member drive might not be goal-balanced depending on its current chain. This is relative to both the drive that created the array member goals and the current chain of the mirror partner.

If the MDisk group has an encryption key, the array must be encrypted.

An invocation example (to create arrays)

mkarray -level raid0 -drive 0:1:2:3 raid0grp 

The resulting output:

MDisk, id [0], successfully created

An invocation example (to create fully redundant arrays)

mkarray -level raid1 -drive 4:5 -strip 128 mdiskgrp_4

The resulting output:

MDisk, id [1], successfully created

An invocation example (to create fully redundant arrays)

mkarray -level raid5 -drive 6:7:8:9:10 raid6grp

The resulting output:

MDisk, id [2], successfully created