This feature has many names. Creating a larger config vVol. Creating a sub-vVol datastore. Creating an ISO repository. Etc.
In 7.0U2, VMware added a new feature that supports creating a custom size config vVol–while this was technically possible in earlier releases, it was not supported. Also, I should note that this is not supported by all vVol vendors, so of course speak to your vendor first.
First to review what a config vVol is check out this post:
In short, it is a mini VMFS that gets created when you create a directory in a vVol datastore (most commonly created by creating a new VM). This defaults to 4 GB in size. Enough to store the general VM files; some logs, VMDK pointers, vmx file, and some other frivolities.
The issue though is that this was not large enough to store large things like ISOs or vib files or whatever. So if you tried to upload something to a vVol datastore folder it would fail with an out-of-space issue. And you cannot upload to the root of a vVol datastore because a vVol datastore is not a file system. So you had to use VMFS or NFS to store those objects.
This is no longer the case.
When a folder on a vVol datastore by default it will use the 4 GB size:
From the Pure web interface you can see the size:
So the new directory input does not offer the ability to specify a size, which of course makes sense, because directories don’t typically have a size. So this is in the VMware API instead.
The specific API is below:
This uses CreateDirectory() in datastoreNamespaceManager and one of the parameters is a size in MB.
DatastoreNamespaceManager.CreateDirectory(datastore reference, name, policy, size)
As of PowerCLI 12.2, the New-Folder does not (nor using the datastoreManager directly) support a size parameter. So through that it will not allow a custom size. I’ll check back when 12.3 comes out etc to see if that changes.
UPDATE: This is now supported in PowerCLI 12.3 https://www.codyhosterman.com/2021/04/creating-a-file-repository-on-a-vvol-datastore-with-powershell/
So for now, you need to use the API directly, and a simple option is using the ManagedObjectBrowser.
So go to your vCenter and add /mob to the URL.
Click on content then datastoreNamespaceManager.
From there, click on CreateDirectory.
You will see some inputs.
The datastore is not the datastore name, but the managed object reference. To find the MoRef for a datastore check out this handy KB. My MoRef is datastore-4008 for my vVol datastore called “FlashArray-x50-2-vVolDS”. Replace the string MOID with that:
Then add in a name (the directory name) and a size (in MB). I want a folder named ISODirectory and it to be 17 TB, so:
Execute it by clicking Execute.
Wrong screen. Sorry, here, click Invoke Method:
It will return the path:
You will see the new folder in the datastore:
If you go to the array, and find the volume group named with the ISORepository name, you will see a config vVol in it, that is 16 TB in size:
Let’s throw an ISO on it!
We can then attach it to a VM and go forward.
The nice thing here (beyond of course being able to host large custom files), any host that you connect the vVol datastore to, will now have direct access to the repos.