In my last blog post I wrote about how to provision a new volume from ScaleIO to your VMware environment so the next logical step is what do you do when that volume is completely consumed. Well you have to options; provision a new volume or expand an existing one. Since the former option was covered in my last post, let’s look at the second option.
VMware vSphere has offered the ability to dynamically expand VMFS volumes since, well, vSphere was introduced (version 4.0). VMFS Volume Grow allows ESXi to recognize when a physical device has expanded in capacity and enables an administrator to non-disruptively expand the VMFS volume to take advantage of the extra space without resorting to using messy extents.
Like many storage platforms, ScaleIO allows you to increase the size of a volume non-disruptively and rather easily.
In this case I have a 512 GB ScaleIO VMFS that is now rather full:
First you need to figure out the ScaleIO information for the volume so you actually expand the correct one. If your ScaleIO volume name is different than the VMFS name you chose you will need to use the Extended Unique Identifier (EUI) of the device to correlate it back to the volume ID in ScaleIO. To do this log into the vSphere Client or the Web Client and find the VMFS in question and enter into its properties. In this you will find the EUI which is in the form of eui.XXXXXX… the X’s being a series of numbers and letters.
The important part (for this exercise) of the EUI is the last 16 characters. The last sixteen characters of the EUI is the ScaleIO volume ID. So in this instance the EUI is eui.147704483b8b3e96e766c8ea00000001 and the last sixteen characters are e766c8ea00000001 which is the ScaleIO volume ID.
Using the query volume SCLI command we see our ScaleIO volume.
scli --query_all_volumes
As you can see underlined in red is the matching ID and then the respective name of the volume. Either of these values can be used for expansion but I am going to stick with using the name which is “scio-vol2”.
I want to double the size of my volume from 512GB to 1024GB which should give my VM plenty of breathing room. To do so, use the following SCLI command:
scli –modify_volume_capacity –volume_name <volume name> –size <new total size in GB>
Really fast and simple. The rest of the process is straight forward and no other ScaleIO work is required. Just use whichever vSphere tool you like to expand the volume. Make sure to rescan the ESXi hosts first though so they recognize the new capacity of the device.
I will use the vSphere Client again and from within the datastore properties I will click the “Increase…” option.
Then in the wizard choose the ScaleIO device that currently contains the VMFS. Ensure you have the correct one by verifying the EUI. You should see the new capacity size as well and the volume will be marked as expandable. In my case the volume is now reported as 1 TB instead of the former size of 512 GB. If your size is still the former size, ensure the ESXi rescans completed successfully.
Finish the wizard and the VMFS is now expanded.
One Reply to “Expanding a ScaleIO Volume in a VMware environment”