Powered By Blogger

Sunday, January 4, 2015

How to Create a Stripe Volume in VXVM

How to Create a Stripe Volume in VXVM

To create a striped volume, you need to add the layout type and other attributes to vxassist make command.

vxassist [-g diskgroup] make volume_name length layout=stripe ncol=3 stripeunit=size [disks...]


We are going to create the stripe volume under adg diskgroup. Need to check the disk space under diskgroup.

# vxdg -g adg free
DISK DEVICE TAG OFFSET LENGTH FLAGS
disk5 c1t9d0s2 c1t9d0 0 6205440 -
disk6 c1t10d0s2 c1t10d0 0 6201344 -
disk7 c1t11d0s2 c1t11d0 0 6201344 -

# vxassist -g adg maxsize ncol=3
Maximum volume size: 18604032 (9084Mb)
bash-3.00#

# vxassist -g adg make oradata 9g layout=stripe disk5 disk6 disk7
VxVM vxassist ERROR V-5-1-435 Cannot allocate space for 18874368 block volume

# vxassist -g adg make oradata 8g layout=stripe disk5 disk6 disk7

# mkfs -F vxfs /dev/vx/rdsk/adg/oradata
version 7 layout
16777216 sectors, 8388608 blocks of size 1024, log size 16384 blocks
largefiles supported

# mkdir /oradata

# mount -F vxfs /dev/vx/dsk/adg/oradata /oradata

# df -h /oradata
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/adg/oradata
8.0G 19M 7.5G 1% /oradata
# vxassist -g adg maxsize ncol=3
Maximum volume size: 1824768 (891Mb)
bash-3.00#



How to re-size the Stripe Volume in VXVM:

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.

# df -h /oradata
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/adg/oradata
8.0G 19M 7.5G 1% /oradata

# vxassist -g adg maxgrow oradata ncol=3
Volume oradata can be extended by 1826816 to: 18604032 (9084Mb)


# vxassist -g adg maxsize ncol=3
Maximum volume size: 1824768 (891Mb)
bash-3.00#

# vxprint -htqg adg oradata
v oradata - ENABLED ACTIVE 16777216 SELECT oradata-01 fsgen
pl oradata-01 oradata ENABLED ACTIVE 16777344 STRIPE 3/128 RW
sd disk5-01 oradata-01 disk5 0 5592448 0/0 c1t9d0 ENA
sd disk6-01 oradata-01 disk6 0 5592448 1/0 c1t10d0 ENA
sd disk7-01 oradata-01 disk7 0 5592448 2/0 c1t11d0 ENA
bash-3.00#

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.

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

# vxassist -g adg maxsize ncol=3
Maximum volume size: 1824768 (891Mb)

# /etc/vx/bin/vxresize -g adg oradata +891m ncol=3

# vxassist -g adg maxgrow oradata ncol=3
Volume oradata can be extended by 2048 to: 18604032 (9084Mb)
# /etc/vx/bin/vxresize -g adg oradata +2048 ncol=3

# df -h /oradata
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/adg/oradata
8.9G 19M 8.3G 1% /oradata

You can also predetermine how much space Volume Manage can extend your volume by using the following command:

# vxassist -g adg maxgrow oradata ncol=3
VxVM vxassist ERROR V-5-1-1178 Volume oradata cannot be extend within the given constraints
bash-3.00#


Because VXVM 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 re-layout operation to convert the volume's column count. For additional information on performing a relayout operation see the supplemental material below.


# vxdg -g adg adddisk disk8=c1t12d0

# vxprint -d -g adg
TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0
dm disk5 c1t9d0s2 - 6205440 - - - -
dm disk6 c1t10d0s2 - 6201344 - - - -
dm disk7 c1t11d0s2 - 6201344 - - - -
dm disk8 c1t12d0s2 - 6205440 - - - -
bash-3.00# vxassist -g adg maxsize ncol=3
VxVM vxassist ERROR V-5-1-752 No volume can be created within the given constraints

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

# vxdg -g adg adddisk disk9=c1t13d0

# vxprint -d -g adg
TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0
dm disk5 c1t9d0s2 - 6205440 - - - -
dm disk6 c1t10d0s2 - 6201344 - - - -
dm disk7 c1t11d0s2 - 6201344 - - - -
dm disk8 c1t12d0s2 - 6205440 - - - -
dm disk9 c1t13d0s2 - 6205440 - - - -

# vxassist -g adg maxsize ncol=3
Maximum volume size: 12288 (6Mb)

We have only 6MB space to increase the ncol=3 stripe volume. This is not the sufficient space to increase the Filesystem and one more additional devices have been added to the disk group to increase FS to 17 GB

And the resize operation completes without complaint:

# vxassist -g adg maxsize ncol=3

Maximum volume size: 18616320 (9090Mb)

# vxdg -g adg adddisk disk10=c1t14d0

# vxprint -d -g adg
TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0
dm disk5 c1t9d0s2 - 6205440 - - - -
dm disk6 c1t10d0s2 - 6201344 - - - -
dm disk7 c1t11d0s2 - 6201344 - - - -
dm disk8 c1t12d0s2 - 6205440 - - - -
dm disk9 c1t13d0s2 - 6205440 - - - -
dm disk10 c1t14d0s2 - 6205440 - - - -
# vxassist -g adg maxgrow oradata ncol=3
Volume oradata can be extended by 18616320 to: 37220352 (18174Mb)

# df -h /oradata
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/adg/oradata
8.9G 19M 8.3G 1% /oradata

# /etc/vx/bin/vxresize -g adg oradata +8g

# df -h /oradata
Filesystem size used avail capacity Mounted on
/dev/vx/dsk/adg/oradata
17G 21M 16G 1% /oradata

v oradata - ENABLED ACTIVE 35381248 SELECT oradata-01 fsgen
pl oradata-01 oradata ENABLED ACTIVE 35381376 STRIPE 3/128 RW
sd disk5-01 oradata-01 disk5 0 6205440 0/0 c1t9d0 ENA
sd disk10-01 oradata-01 disk10 0 5588352 0/6205440 c1t14d0 ENA
sd disk6-01 oradata-01 disk6 0 6201344 1/0 c1t10d0 ENA
sd disk8-01 oradata-01 disk8 0 5592448 1/6201344 c1t12d0 ENA
sd disk7-01 oradata-01 disk7 0 6201344 2/0 c1t11d0 ENA
sd disk9-01 oradata-01 disk9 0 5592448 2/6201344 c1t13d0 ENA

No comments:

Post a Comment