Growing a volume using vxresize and the parameter 'mirror=ctlr' does not always result in proper mirror distribution

book

Article ID: 100019327

calendar_today

Updated On:

Resolution

This article addresses environments with multiple arrays or storage frames where the intent is to mirror data across arrays so that you will have one mirror plex will reside on one array/FrameA and the other mirror plex will reside on the other array/FrameB.

In these environments the command parameter 'mirror=ctlr' should not be used as it will not respect existing plex assignments and will only be applied to new storage allocations.  
 
The correct storage restriction parameter to use is 'mirror=enclr'.


For example:

# vxprint -htq -g example_dg example_vol
v  example_vol     -           ENABLED  ACTIVE   7100416   SELECT    -        fsgen
pl example_vol-01  example_vol ENABLED  ACTIVE   7100416   CONCAT    -        RW
sd arrayA_disk1-01 example_vol-01 arrayA_disk1   0 7100416 0         EMC0_0   ENA
pl example_vol-02  example_vol ENABLED ACTIVE    7100416   CONCAT    -        RW
sd arrayB_disk1-01 example_vol-02 arrayB_disk1   0 7100416 0         EMC1_0   ENA


The plex example_vol-01 resides on the EMC0 array, while example_vol-02 resides on the EMC1 array.  

If the 'mirror=ctlr' parameter is specified when growing the above volume, Volume Manager will only apply this rule to the additional diskspace needed to grow this mirror volume to the desired length.  
 
As a result there are two possible outcomes of the growth:

Possible Result #1 (the desired layout):
# vxprint -htq -g example_dg example_vol
v  example_vol  -            ENABLED  ACTIVE   9197568  SELECT    -        fsgen
pl example_vol-01 example_vol ENABLED ACTIVE   9197568  CONCAT    -        RW
sd arrayA_disk1-01 example_vol-01 arrayA_disk1 0 7100416 0        EMC0_0   ENA 
sd arrayA_disk2-01 example_vol-01 arrayA_disk2 0 2095680 7101888  EMC0_1   ENA
pl example_vol-02 example_vol ENABLED ACTIVE   9197568  CONCAT    -        RW
sd arrayB_disk1-01 example_vol-02 arrayB_disk1 0 7100416 0        EMC1_0   ENA
sd arrayB_disk2-01 example_vol-02 arrayB_disk2 0 2095680 7101888  EMC1_1   ENA

Possible Result #2 (undesired layout):
# vxprint -htq -g example_dg example_vol
v  example_vol  -            ENABLED  ACTIVE   9197568  SELECT    -        fsgen
pl example_vol-01 example_vol ENABLED ACTIVE   9197568  CONCAT    -        RW
sd arrayA_disk1-01 example_vol-01 arrayA_disk1 0 7100416 0        EMC0_0   ENA
sd arrayB_disk2-01 example_vol-01 arrayB_disk2 0 2095680 7101888  EMC1_1   ENA
pl example_vol-02 example_vol ENABLED ACTIVE   9197568  CONCAT    -        RW
sd arrayB_disk1-01 example_vol-02 arrayB_disk1 0 7100416 0        EMC1_0   ENA
sd arrayA_disk2-01 example_vol-02 arrayA_disk2 0 2095680 7101888  EMC0_1   ENA

The result in layout #2  shows how the mirror plexes can end-up consisting of a mix of subdisks from the different arrays.
 
In order to prevent Result #2 (undesired layout) from occurring on environments where plex mirroring is required on an enclosure basis, the "mirror=enclr" parameter should be used as it will always produce the desired result.



 
 

 

Issue/Introduction

Growing a volume using vxresize and the parameter 'mirror=ctlr' does not always result in proper mirror distribution