Striped volumes must have enough devices and free space to grow all columns in parallel

  • Article ID:100029664
  • Last Published:
  • Product(s):InfoScale & Storage Foundation

Problem

Striped volumes must have enough devices and free space to grow all columns in parallel

Solution

Volume Manager has the following internal restrictions regarding the extension of striped volume columns:

  • Device(s) used in one column cannot be used in any other columns in that volume
  • All stripe columns must be grown in parallel

Use the following commands to determine if you have enough devices or free space to grow your volume.

# vxprint -htqg datadg examplevol
v  examplevol   -            ENABLED  ACTIVE   117463040 SELECT   examplevol-01 fsgen
pl examplevol-01 examplevol  ENABLED  ACTIVE   117463296 STRIPE   3/128    RW
sd d01-01       examplevol-01 d01     0        39154432 0/0       c4t0d1   ENA
sd d02-01       examplevol-01 d02     0        39154432 1/0       c4t0d2   ENA
sd d03-01       examplevol-01 d03     0        39154432 2/0       c4t0d3   ENA

The above volume is a 3 column stripe volume.  You can determine this by examining the plex line following STRIPE where you can see 3/128 .  This value is shown in COLUMNS/STRIPE_WIDTH format.

The disk group in this example contains the following devices:

dm d01          c4t0d1       auto     2048     60126464 -
dm d02          c4t0d2       auto     2048     60126464 -
dm d03          c4t0d3       auto     2048     60126464 -
dm d04          c4t0d4       auto     2048     60126464 -

Attempting to grow this volume using only the currently available devices will produce the following error:

# /etc/vx/bin/vxresize -g datadg examplevol +1g
VxVM vxassist ERROR V-5-1-436 Cannot allocate space to grow volume to 119560192 blocks
VxVM vxresize ERROR V-5-1-4703 Problem running vxassist command for volume examplevol, in diskgroup datadg

You can also predetermine how much space Volume Manage can extend your volume by using the following command:
# vxassist -g <dg> maxgrow <volume>

In this example, the following is the result:
# vxassist -g datadg maxgrow examplevol
VxVM vxassist ERROR V-5-1-1178 Volume examplevol cannot be extend within the given constraints

Because VM requires a unique device for each stripe, and there is only one device available for the three column volume, the grow operation cannot run.

To resolve this issue you must add enough storage devices to satisfy the above constraints or use a relayout operation to convert the volume's column count.  For additional information on performing a relayout operation see the supplemental material below.

In the example, two additional devices have been added to the disk group:

dm d01          c4t0d0       auto     2048     60126464 -
dm d02          c4t0d1       auto     2048     60126464 -
dm d03          c4t0d2       auto     2048     60126464 -
dm d04          c4t0d3       auto     2048     60126464 -
dm d05          c4t0d4       auto     2048     60126464 -
dm d06          c4t0d5       auto     2048     60126464 -

And the resize operation completes without complaint:

# /etc/vx/bin/vxresize -g datadg examplevol +1g
# vxprint -htqg datadg examplevol

v  examplevol   -            ENABLED  ACTIVE   119560192 SELECT   examplevol-01 fsgen
pl examplevol-01 examplevol  ENABLED  ACTIVE   119560320 STRIPE   3/128    RW
sd d01-01       examplevol-01 d01     0        39154432 0/0        c4t0d1  ENA
sd d04-01       examplevol-01 d04     0        699008   0/39154432 c4t0d4  ENA
sd d02-01       examplevol-01 d02     0        39154432 1/0        c4t0d2  ENA
sd d05-01       examplevol-01 d05     0        699008   1/39154432 c4t0d5  ENA
sd d03-01       examplevol-01 d03     0        39154432 2/0        c4t0d3  ENA
sd d06-01       examplevol-01 d06     0        699008   2/39154432 c4t0d6  ENA


Was this content helpful?

Get Support