共用方式為


Cannot Extend Simple Virtual Disk in Windows Server 2012 R2

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

Comments

  • Anonymous
    January 01, 2003
    @Aaron,

    I see what you mean after going over the article again in more detail. There was info left out and we will update the blog with that info.
  • Anonymous
    January 01, 2003
    @LucasThis is just the default that is made. The blog tells you how to change it to a different column number so that you can add just one disk.
  • Anonymous
    January 01, 2003
    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?
  • Anonymous
    January 01, 2003
    You're Big! Your post has resolved my dilemma! Thanks Steven!!!
  • Anonymous
    December 19, 2013
    Pingback from WINDOWS SERVER 2014 2014
  • Anonymous
    December 19, 2013
    Pingback from WINDOWS SERVER 2014 2014
  • Anonymous
    February 04, 2014
    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.
  • Anonymous
    March 23, 2014
    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 ?
  • Anonymous
    August 14, 2014
    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.
  • Anonymous
    December 02, 2014
    I have 7 disk running in a cluster with 25TB. I have added 3 more 4TB drives and the pool shows that I have the a total of 60TB. When I try to extend the virtual disk, it checks and come back with max the same as before and grays out. This is just like Micheal problem.
  • Anonymous
    December 18, 2014
    Hey Steven no personal offense, but this is again typical real garbage technology Microsoft is spreading around.

    So if you happen to start off with 8 disks, you need to extend in multiples of 8 when all you want is one more disk?
    Why is it that no one at Microsoft lives on earth?
  • Anonymous
    December 26, 2014
    John, just to clarify. We can only modify the number of columns prior to creation of the storage pool? For those of us that created virtual disks before this in Server 2012 it is not possible to change the NumberOfColumns then?
  • Anonymous
    December 29, 2014
    @Aaron
    The Number of Columns cannot be changed once the virtual disk has been created whether you use the GUI or PowerShell to create a new virtual disk.
    The GUI provides no way of setting the Number of Columns for the virtual disk and will use the default values. The New-VirtualDisk Powershell command is more granular with several configurable switches.
    Here is another blog on Windows IT Pro http://windowsitpro.com/windows/navigating-storage-spaces-and-pools. There is a good description of Number of Columns.
  • Anonymous
    December 31, 2014
    You're Big! Your post has resolved my dilemma! Thanks Steven!!!
  • Anonymous
    November 05, 2015
    Great post, had the same problem, delete everything and create a storage pool with 1 disk, then de virtual disk and finally the volume (thats set the column value in 1), then add as many disk as i need without problem.
  • Anonymous
    March 12, 2019
    Hi Steven,Thanks for the explanation. I know this is an old thread, but I have a similar scenario with the difference that the vDisk type was set as Parity (not Simple). I would like to confirm if this instructions apply to Parity vDisks as well? and if by adding physical disks and extending, the current data on the vDisk is going to remain intact. I would assume so, but just want to confirm. Thanks again.