Specifying ordered allocation of storage to volumes

Ordered allocation gives you complete control of space allocation. It requires that the number of disks that you specify to the vxassist command must match the number of disks that are required to create a volume. The order in which you specify the disks to vxassist is also significant.

If you specify the -o ordered option to vxassist when creating a volume, any storage that you also specify is allocated in the following order:

For example, the following command creates a mirrored-stripe volume with 3 columns and 2 mirrors on 6 disks in the disk group, mydg:

# vxassist -b -g mydg -o ordered make mirstrvol 10g \ 
  layout=mirror-stripe ncol=3 mydg01 mydg02 mydg03 mydg04 mydg05 mydg06

This command places columns 1, 2 and 3 of the first mirror on disks mydg01, mydg02 and mydg03 respectively, and columns 1, 2 and 3 of the second mirror on disks mydg04, mydg05 and mydg06 respectively.

Figure: Example of using ordered allocation to create a mirrored-stripe volume shows an example of using ordered allocation to create a mirrored-stripe volume.

Figure: Example of using ordered allocation to create a mirrored-stripe volume

Example of using ordered allocation to create a mirrored-stripe volume

For layered volumes, vxassist applies the same rules to allocate storage as for non-layered volumes. For example, the following command creates a striped-mirror volume with 2 columns:

# vxassist -b -g mydg -o ordered make strmirvol 10g \
  layout=stripe-mirror ncol=2 mydg01 mydg02 mydg03 mydg04

This command mirrors column 1 across disks mydg01 and mydg03, and column 2 across disks mydg02 and mydg04.

Figure: Example of using ordered allocation to create a striped-mirror volume shows an example of using ordered allocation to create a striped-mirror volume.

Figure: Example of using ordered allocation to create a striped-mirror volume

Example of using ordered allocation to create a striped-mirror volume

Additionally, you can use the col_switch attribute to specify how to concatenate space on the disks into columns. For example, the following command creates a mirrored-stripe volume with 2 columns:

# vxassist -b -g mydg -o ordered make strmir2vol 10g \
  layout=mirror-stripe ncol=2 col_switch=3g,2g \
  mydg01 mydg02 mydg03 mydg04 mydg05 mydg06 mydg07 mydg08

This command allocates 3 gigabytes from mydg01 and 2 gigabytes from mydg02 to column 1, and 3 gigabytes from mydg03 and 2 gigabytes from mydg04 to column 2. The mirrors of these columns are then similarly formed from disks mydg05 through mydg08.

Figure: Example of using concatenated disk space to create a mirrored-stripe volume shows an example of using concatenated disk space to create a mirrored-stripe volume.

Figure: Example of using concatenated disk space to create a mirrored-stripe volume

Example of using concatenated disk space to create a mirrored-stripe volume

Other storage specification classes for controllers, enclosures, targets and trays can be used with ordered allocation. For example, the following command creates a 3-column mirrored-stripe volume between specified controllers:

# vxassist -b -g mydg -o ordered make mirstr2vol 80g \
  layout=mirror-stripe ncol=3 \
  ctlr:c1 ctlr:c2 ctlr:c3 ctlr:c4 ctlr:c5 ctlr:c6

This command allocates space for column 1 from disks on controllers c1, for column 2 from disks on controller c2, and so on.

Figure: Example of storage allocation used to create a mirrored-stripe volume across controllers shows an example of using storage allocation to create a mirrored-stripe volume across controllers.

Figure: Example of storage allocation used to create a mirrored-stripe volume across controllers

Example of storage allocation used to create a mirrored-stripe volume across controllers

There are other ways in which you can control how vxassist lays out mirrored volumes across controllers.

More Information

Mirroring across targets, controllers or enclosures