Monday 4 July 2016

Creating a tiered virtual disk in Windows Server 2016 VM using VirtualBox as hypervisor

I've been playing with Windows Server 2016 as a VM inside VirtualBox, but despite VirtualBox being able to mark virtual disks as an SSD disk, I was unable to create any tiered Storage Spaces inside the guest VM.


The VM disks (hosted as virtual disks on an actual SSD) were marked as SSD correctly:



























Turns out that the SSD disks weren't the problem, it was the HDD which were coming up as UnSpecified:

Get-PhysicalDisk | select FriendlyName, UniqueId, MediaType, Size

FriendlyName  UniqueId                               MediaType           Size
------------  --------                               ---------           ----
VBOX HARDDISK {01c1a62b-e1d6-1910-b251-09f3ae1b2047} UnSpecified 214748364800
VBOX HARDDISK {12fcf70b-b805-183a-f1a8-103d6b91ba70} UnSpecified  34359738368
VBOX HARDDISK {31b25faa-db05-490a-7acd-a8927a2b569f} UnSpecified 214748364800
VBOX HARDDISK {45fc2705-9a13-1afc-a554-0ded23d9e78b} UnSpecified 214748364800
VBOX HARDDISK {50642166-ca99-47ce-2f87-b5b4f2c19254} SSD          21474836480
VBOX HARDDISK {57b897e4-f98a-3330-dbc2-6a5ab6749742} SSD          21474836480
VBOX HARDDISK {769a2aa9-a289-7627-24ef-6b3a2fcff2bb} SSD          21474836480
VBOX HARDDISK {a1a9e55d-68b9-7eb3-11dd-6348bb837642} UnSpecified 214748364800
VBOX HARDDISK {d98baa0d-b0df-74ea-ac87-d107998e79ed} SSD          21474836480


The commands below won't work if the disks are still in the primordial pool, so you need to use either the GUI or PowerShell to create the pool first. Once that is done you can edit change the FriendlyName and the MediaType using Powershell.


I was able to rename and reclassify the HDD's like so:

Set-PhysicalDisk -UniqueId '{01c1a62b-e1d6-1910-b251-09f3ae1b2047}' -NewFriendlyName HDD1 -MediaType HDD
Set-PhysicalDisk -UniqueId '{31b25faa-db05-490a-7acd-a8927a2b569f}' -NewFriendlyName HDD2 -MediaType HDD
Set-PhysicalDisk -UniqueId '{45fc2705-9a13-1afc-a554-0ded23d9e78b}' -NewFriendlyName HDD3 -MediaType HDD
Set-PhysicalDisk -UniqueId '{a1a9e55d-68b9-7eb3-11dd-6348bb837642}' -NewFriendlyName HDD4 -MediaType HDD


I was also able to rename the SSD devices to make them more obvious:

Set-PhysicalDisk -UniqueId '{50642166-ca99-47ce-2f87-b5b4f2c19254}' -NewFriendlyName SDD1
Set-PhysicalDisk -UniqueId '{57b897e4-f98a-3330-dbc2-6a5ab6749742}' -NewFriendlyName SDD2
Set-PhysicalDisk -UniqueId '{769a2aa9-a289-7627-24ef-6b3a2fcff2bb}' -NewFriendlyName SDD3
Set-PhysicalDisk -UniqueId '{d98baa0d-b0df-74ea-ac87-d107998e79ed}' -NewFriendlyName SDD4


The disks were now identified correctly and I could create my tiered virtual disks:

FriendlyName  UniqueId                               MediaType           Size
------------  --------                               ---------           ----
HDD1          {01c1a62b-e1d6-1910-b251-09f3ae1b2047} HDD         214748364800
VBOX HARDDISK {12fcf70b-b805-183a-f1a8-103d6b91ba70} UnSpecified  34359738368
HDD2          {31b25faa-db05-490a-7acd-a8927a2b569f} HDD         214748364800
HDD3          {45fc2705-9a13-1afc-a554-0ded23d9e78b} HDD         214748364800
SDD1          {50642166-ca99-47ce-2f87-b5b4f2c19254} SSD          21474836480
SDD2          {57b897e4-f98a-3330-dbc2-6a5ab6749742} SSD          21474836480
SDD3          {769a2aa9-a289-7627-24ef-6b3a2fcff2bb} SSD          21474836480
HDD4          {a1a9e55d-68b9-7eb3-11dd-6348bb837642} HDD         214748364800
SDD4          {d98baa0d-b0df-74ea-ac87-d107998e79ed} SSD          21474836480


Everything looked good in the GUI too: