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
Was this article helpful?
thumb_up
Yes
thumb_down
No