Storage pools

In general, a pool or storage pool is an allocated amount of capacity that jointly contains all of the data for a specified set of volumes. The system supports two types of pools: parent pools and child pools.

Figure 1 shows a basic parent pool with associated child pools. In this graphic, the physical capacity for the parent group is divided between two child pools. Volumes can then be created by using either the capacity from the MDisks through the parent pool or from the child pool.
Figure 1. Storage pool
This figure is described in the surrounding text

Parent Pools

Parent pools receive their capacity from MDisks. All MDisks in a pool are split into extents of the same size. Volumes are created from the extents that are available in the pool. You can add MDisks to a pool at any time either to increase the number of extents that are available for new volume copies or to expand existing volume copies. The system automatically balances volume extents between the MDisks to provide the best performance to the volumes.

To track the space that is available on an MDisk, the system divides each MDisk into chunks of equal size. These chunks are called extents and are indexed internally. Extent sizes can be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, or 8192 MB. The choice of extent size affects the total amount of storage that is managed by the system.

You specify the extent size when you create a new parent pool. You cannot change the extent size later; it must remain constant throughout the lifetime of the parent pool.

You cannot use the data migration function to migrate volumes between parent pools that have different extent sizes. However, you can use volume mirroring to move data to a parent pool that has a different extent size.

Use volume mirroring to add a copy of the disk from the destination pool. After the copies are synchronized, you can free up extents by deleting the copy of the data in the source pool. The FlashCopy® function can also be used to create a copy of a volume in a different pool.

A system can manage 2^22 extents. For example, with a 16 MB extent size, the system can manage up to 16 MB x 4,194,304 = 64 TB of storage.

When you choose an extent size, consider your future needs. For example, if you currently have 40 TB of storage and you specify an extent size of 16 MB for all parent pools, the capacity of the system is limited to 64 TB of storage in the future. If you select an extent size of 64 MB for all parent pools, the capacity of the system can grow to 256 TB.

Using a larger extent size can waste storage. When a volume is created, the storage capacity for the volume is rounded to a whole number of extents. If you configure the system to have many small volumes and you use a large extent size, storage can be wasted at the end of each volume.

Consider the following general guidelines when you create or manage a parent pool:

  • Ensure that all MDisks that are allocated to the same tier of a parent pool are the same RAID type. Allocating MDisks within the same tier ensures that a single failure of a physical disk does not take the entire pool offline. For example, if you have three RAID-5 arrays in one pool and add a non-RAID disk to this pool, you lose access to all the data striped across the pool if the non-RAID disk fails. Similarly, for performance reasons, you must not mix RAID types. The performance of all volumes is reduced to the lowest achiever in the tier.
  • An MDisk can be associated with just one parent pool.
  • You can specify a warning capacity for a pool. A warning event is generated when the amount of space that is used in the pool exceeds the warning capacity. The warning threshold is especially useful with thin-provisioned volumes that are configured to automatically use space from the pool.
  • Volumes are associated with just one pool, except when you migrate between parent pools.
  • Volumes that are allocated from a parent pool are striped across all the storage that is placed into that parent pool.
  • You can add only MDisks that are in unmanaged mode. When MDisks are added to a parent pool, their mode changes from unmanaged to managed.
  • Allocate your image-mode volumes between your parent pools. Child pools do not support image-mode volumes.
  • You can delete an image-mode MDisk by either deleting the associated image-mode volume or deleting the entire parent pool.

  • You can delete MDisks from a parent pool under the following conditions:

    • Volumes are not using any of the extents that are on the MDisk.
    • Enough free extents are available elsewhere in the pool to move any extents that are in use from this MDisk.
    • The system ensures that all extents that are used by volumes in the child pool are migrated to other MDisks in the parent pool to ensure that data is not lost.
  • If the parent pool is deleted, you cannot recover the mapping that existed between extents that are in the pool or the extents that the volumes use. If the parent pool has associated child pools, then you must delete the child pools first and return its extents to the parent pool. After the child pools are deleted, you can delete the parent pool. The MDisks that were in the parent pool are returned to unmanaged mode and can be added to other parent pools. Because the deletion of a parent pool can cause a loss of data, you must force the deletion if volumes are associated with it.

Child Pools

Instead of being created directly from MDisks, child pools are created from existing capacity that is allocated to a parent pool. As with parent pools, volumes can be created that specifically use the capacity that is allocated to the child pool. Child pools are similar to parent pools with similar properties and can be used for volume copy operation.

Child pools are created with fully allocated physical capacity. The capacity of the child pool must be smaller than the free capacity that is available to the parent pool. The allocated capacity of the child pool is no longer reported as the free space of its parent pool.

Consider the following general guidelines when you create or work with a child pool:
  • Child pools can be created and changed with the command-line interface or through the Spectrum Control when creating VMware vSphere Virtual Volumes. You can use the management GUI to view child pools and their properties.
  • On systems with encryption enabled, child pools can be created to migrate existing volumes in non-encrypted pool to encrypted child pools. When you create a child pool after encryption is enabled, an encryption key is created for the child pool even when the parent pool is not encrypted. You can then use volume mirroring to migrate the volumes from the non-encrypted parent pool to the encrypted child pool.
  • As with parent pools, you can specify a warning threshold that alerts you when the capacity of the child pool is reaching its upper limit. Use this threshold to ensure that access is not lost when the capacity of the child pool is close to its allocated capacity.
  • Ensure that any child pools that are associated with a parent pool have enough capacity for the volumes that are in the child pool before removing MDisks from a parent pool. The system automatically migrates all extents that are used by volumes to other MDisks in the parent pool to ensure data is not lost.
  • You cannot shrink the capacity of a child pool below its real capacity. The system uses reserved extents from the parent pool that use multiple extents. The system also resets the warning level when the child pool is shrunk and issues a warning if the level is reached when the capacity is shrunk.
  • The system supports migrating a copy of volumes between child pools within the same parent pool or migrating a copy of a volume between a child pool and its parent pool. Migrations between a source and target child pool with different parent pools are not supported. However, you can migrate a copy of the volume from the source child pool to its parent pool. The volume copy can then be migrated from the parent pool to the parent pool of the target child pool. Finally, the volume copy can be migrated from the target parent pool to the target child pool.

Pool states

Table 1 describes the operational states of a pool. Child pools adopt the state of the parent pool. States that indicate an error must be resolved on the parent pool.
Table 1. Pool states
State Description
Online The pool is online and available. All the MDisks in the pool are available.
Degraded paths This state indicates that one or more nodes in the system cannot access all the MDisks in the pool. A degraded path state is most likely the result of incorrect configuration of either the storage system or the Fibre Channel fabric. However, hardware failures in the storage system, Fibre Channel fabric, or node might also be a contributing factor to this state. To recover from this state, follow these steps:
  1. Verify that the fabric configuration rules for storage systems are correct.
  2. Ensure that you have configured the storage system properly.
  3. Correct any errors in the event log.
Degraded ports This state indicates that one or more 1220 errors were logged against the MDisks in the pool. The 1220 error indicates that the remote Fibre Channel port was excluded from the MDisk. This error might cause reduced performance on the storage system and usually indicates a hardware problem with the storage system. To fix this problem, you must resolve any hardware problems on the storage system and fix the 1220 errors in the event log. To resolve these errors in the log, click Monitor > Events in the management GUI. This action displays a list of unfixed errors that are currently in the event log. For these unfixed errors, select the error name to begin a guided maintenance procedure to resolve them. Errors are listed in descending order with the highest priority error listed first. Resolve highest priority errors first.
Offline The pool is offline and unavailable. No nodes in the system can access the MDisks. The most likely cause is that one or more MDisks are offline or excluded.
Attention: If a single array MDisk in a pool is offline and cannot be seen by any of the online nodes in the system, the pool of which this MDisk is a member goes offline. This causes all the volume copies that are being presented by this pool to go offline. Take care when you create pools to ensure an optimal configuration.