One of the virtual volumes used in a Microsoft Failover Cluster was almost full (~43MB space left) therefore we needed to grow the virtual volume (VV) to prevent downtime or should I say minimise as some VMs were already in a paused state due to insufficient disk space.
The virtual volume in question was not part of a remote copy group, it exists purely for VMs that are to remain bound to a specific datacenter and never move between DCs.
To grow the virtual volume I used the growvv command while connected to the 3PAR CLI. It is also possible to grow a VV using the management console GUI.
Connect to the 3PAR using your SSH client of choice.
3PAR01 cli% growvv lab_sqlgponly_vv 1T Warning: Exporting volumes larger than 2TiB requires special handling by the host. Are you sure to continue? select q=quit y=yes n=no: y
As you can see the command is very simple – we append the virtual volume name followed by a growth increment. In this instance the VV was expanded by an additional 1 terabyte. As all my volumes are thinly provisioned I don’t mind increasing the size by a decent amount.
A warning message is presented when you export a volume larger than 2TB, in this instance I confirmed my command and grew the volume.
To expand via the GUI is very easy. As stated above the volume is not in a remote copy group – if it had been then the process would be slightly different and I will cover this in a separate post.
Open the management console and browse to the virtual volume. Right click and choose to edit –
You will see the Size field, all you have to do is alter the value in this field to grow the volume to your desired size.
Once the 3PAR had grown the VV (essentially this was instantaneous) I went to Microsoft Failover Cluster Manager to see which of my servers currently owned the disk. Once I found the owner I connected to it, opened disk management and extended the volume in Windows.
Once the Windows finished extending the disk it displayed as a 2TB volume and the low space issue was resolved. As always the full help for the command is displayed below for reference.
DESCRIPTION The growvv command increases the size of a virtual volume. SYNTAX growvv <VV_name> <size>[g|G|t|T] AUTHORITY • Super, Edit • Any role granted the vv_grow right. OPTIONS -f Suppresses the requested confirmation before growing a virtual volume size from under 2 T to over 2 T. SPECIFIERS <VV_name> The name of the volume to be grown. <size>[g|G|t|T] Specifies the size in MB to be added to the volume user space. The size must be an integer in the range from 1 to 16T. The volume size is rounded up to the next multiple of 256M. If the value is followed by a g or G (no space before the suffix), the size is in GB; if by a t or T, the size is in TB. EXAMPLES The following example increases the size of virtual volume vv0 by 10G: cli% growvv vv0 10g NOTES • Access to all domains is required to run this command with logical disks specified. • For this command MB = 1048576 bytes, GB = 1024MB, and TB = 1024GB. • If the volume to be grown is in a remote copy group, the group must be stopped before the grow operation is permitted. • The grow operations of remote-copy volumes are coordinated between the primary and secondary targets. A coordinated grow can be started from either the primary or secondary target. Volumes on remote targets are grown to the intended size of the local volume. If a target cannot be contacted or remote copy is not started, only the local volume will be grown. A check is first made to see if the local and remote volumes can be grown by the requested amount. If this succeeds, all the volumes are grown; however, if other volumes are grown during this process, it is possible that remote volumes are grown and the local volume is not. If this occurs, remote volumes must be grown manually before the group can be started.