Cannot Extend Simple Virtual Disk in Windows Server 2012 R2

Cannot Extend Simple Virtual Disk in Windows Server 2012 R2

  • Comments 6
  • Likes

I’m writing this blog to help shed some light on extending simple virtual disks in Windows Server 2012 R2.  We have had questions from various customers that have been using simple virtual disk and need to add more space to them.

Let’s say you used Server Manager to create a new Storage Pool called “Storage Pool1”.  Using 3 x 10Gb physical disks, you have created a new simple virtual fixed disk using all the available disks in Storage Pool1.  This gives the system 24Gb of usable space as E:.

image

You now need to extend the simple fixed virtual disk because it is running out of free space. The logical way to go about this is to use Server Manager and add 1 new physical disk to Storage Pool1 and extend the simple fixed virtual disk.

In the screenshot below, I added physical disk 4 to Storage Pool1 and try expand the simple fixed virtual disk.

image

Go to Server Manager then select File and Storage Services, Volumes then Storage Pools, right click Storage Pool1 and under Virtual Disks right click VDisk1 and select Extend Virtual Disk. A Window comes like the screenshot below but all options are greyed out and the only choice is to click Cancel.

image

This leaves you scratching your head wondering what was missed and why it failed. There is an answer to this and I’ll explain.

When a virtual disk is created using Server Manager, there is a key property created called NumberOfColumns.  The NumberOfColumns property is set according to the number of physical disks used to create the virtual disk and cannot be changed after the virtual disk has been created. You can see the NumberOfColumns property by right clicking VDisk1, select Properties, select Details tab and in the Property drop down select NumberOfColumns.

image

As shown in the screenshot above, the Value is 3.  This is the number of physical disks used from Storage Pool1 to create the simple fixed virtual disk.  The only way to properly extend the simple fixed virtual disk is to add 3 more physical disks to Storage Pool1 (NumberOfColumns).

The way add new physical disks to Storage Pool1 is right click Storage Pool1, select Add Physical Disk, select the physical disks to add and click OK.

image

There are now 6 total physical disks in Storage Pool1 and the simple fixed virtual disk will successfully extend.

image

Right click VDisk1, select Extend Virtual Disk and now all the options are no longer greyed out. You can select to Specify Size or Maximum Size. I choose Maximum Size.

image

Click OK and now the capacity is 48 GB for the simple virtual fixed disk.

image

You can check the properties for VDisk1 and see that the NumberOfColumns is still 3.  You can also use the Get-VirtualDisk PowerShell command.

image

Ok, so now that you understand how the NumberOfColumns is set and why it is set when the virtual disk is created. But hold on, there is a way around this by using PowerShell to create the virtual disk.

PowerShell saves the day!

The quick and easy way to create a new virtual disk specifying the NumberOfColumns of 1 with multiple physical disks is to use PowerShell. But first, a Storage Pool needs to be created and can be done using Server Manager or PowerShell.

Follow the below steps using PowerShell to create Storage Pool named Storage Pool1 with 3 physical Disks.

New-StoragePool –FriendlyName “Storage Pool1” –PhysicalDisks (Get-PhysicalDisk PhysicalDisk1, PhysicalDisk2,PhysicalDisk3 ) –StorageSubSystemFriendlyName *space*

Now, run Get-StoragePool command and there will be two pools listed; Primordial and Storage Pool1 which was just created.

image
 
Now it’s time to create a new Simple fixed virtual disk in Storage Pool1 using 3 physical disk with NumberOfColumns 1 and maximum size.

New-VirtualDisk –StoragePoolFriendlyName “Storage Pool1” –FriendlyName VDisk1 –NumberOfColumns 1 –ProvisioningType Fixed –ResiliencySettingName Simple -UseMaximumSize

image

Now let’s confirm the NumberOfColumns is 1.

Get-VirtualDisk –FriendlyName VDisk1 | FL NumberOfColumns

image

Or for a more detail view of the virtual disk.

Get-VirtualDisk –FriendlyName VDisk1 | FL *

image

I hope this blog helps sheds some light on the NumberOfColumns and how the value is set when the virtual disk is created.

Steven Graves
Senior Support Escalation Engineer
Windows Availability Team

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Hi Steven. Thanks for the info. The more info we get on Storage Spaces the better - it feels a bit sparse at the moment. What would the consequences of using just one column be?

  • Hi Martin, I would guess that the number of column (or disks) is used to stripe data. the lower the # of column, the less performance you get. Now you have to be carefull with this settings as a lower # of columns add flexibility in growing the pool/vdisk, butn if your disks are SAN LUNs, be careful about contention on your spindles.

  • How about the case in which you do not add another physical disk but let's say you have only one physical disk (space presented from blockstorage) and you extended it ?

  • Hi Steven, I'm having some trouble adding a drive to a storage pool, I have followed your guide exactly and have got the disk added to the storage pool but cannot for the life of me get the Extend Virtual Disk to let me increase the size of the virtual disk.

    http://puu.sh/aSqUL/b8f4294e10.png

    As you can see I have 4 TB of capacity in the pool with the 1023 from the newly added disk available as free space, but the dialog will not let me expand the size of the virtual disk beyond 3TB, I've been trying Storage Spaces as an alternative to the older Disk Management based system which would not allow me to add more disks.