An array is an ordered collection, or group, of physical devices (disk drive or flash drive modules) that is used to define logical volumes or devices. An array is a type of MDisk that is made up of disk drives; these drives are members of the array. A Redundant Array of Independent Disks (RAID) is a method of configuring member drives to create high availability and high performance systems.
The system supports nondistributed and distributed array configurations. In nondistributed arrays, entire drives are defined as "hot-spares". Hot-spare drives are idle and do not process I/O for the system until a drive failure occurs. When a member drive fails, the system automatically replaces the failed drive with a hot-spare drive. The system then resynchronizes the array to restore its redundancy. However, all member drives within a distributed array have a rebuild area that is reserved for drive failures. All the drives in an array can process I/O data and provide faster rebuild times when a drive fails. The RAID level provides different degrees of redundancy and performance; it also determines the number of members in the array.
Figure 1 shows the relationships of the array components on the system.
An array can contain 2 - 16 drives; several arrays create the capacity for a pool. For redundancy, spare drives ("hot spares") are allocated to assume read/write operations if any of the other drives fail. The rest of the time, the spare drives are idle and do not process requests for the system. When a member drive fails in the array, the data can only be recovered onto the spare as fast as that drive can write the data. As a result, the load on the remaining member drives is increased by up to 100%. Because of this bottleneck, rebuilding the data can take many hours as the system tries to balance host and rebuild workload. The latency of I/O to the rebuilding array is affected for this entire time. Because volume data is striped across MDisks, all volumes are affected during the time it takes to rebuild the drive.
By default, the system will recommend and create distributed arrays for most new configurations. However, there are some exceptions. If not enough drives are available on the system (for example, in configurations where there are under two flash drives), you cannot configure a distributed array. In addition, you can continue to assign new storage to existing pools in arrays that use previously-configured RAID settings.
After system setup, you must configure storage by creating pools and assigning storage to specific pools. Ensure that a pool or pools have been created before assigning storage. The management GUI provides three options to assign storage based on where the storage is located and its use. The Internal and External options assign storage based on drive class and RAID level. For both of these options, the management GUI displays the recommended configuration based on drive class, RAID level and the width of the array. Use the Internal Custom option to assign storage that has been added to a system to customize your storage configuration.In the command-line interface, use the lsarrayrecommendation command to display recommended configuration. The exact numbers and values recommended depend on the parameter values that you specify on the command.
Use the lsarrayrecommendation command to display the system recommendations for configuring an array. For greatest control and flexibility, you can use the mkarray command-line interface (CLI) command to configure a nondistributed array on your system. To configure a distributed array, you can use the mkdistributedarray command.