Windows 2012 R2 Storage tiering

Update : Disclaimer,as this is older information, situation now is different and I did run into some problems using this method, please read this post only for informational purposes , Not recommendations.

I’m building our new Windows 2012 R2 SOFS cluster for our lab on our new DataON DNS-1640 cabinet.
While configuring storage spaces, I hit the problem that when you have a storage pool that contains as well HDDs as SSDs.
When using the interface, if you do not select to use tiering SSDs are used as “normal” disks, so SDDs decreases even when tiering is not selected as this is wasting valuable SSD capacity not a wanted situation, but I only have one pool containing 6 HDDs and 2 SDD’s that I want to use to their full extend.

Hence I decided to enter PowerShell to get the flexibility to select the disks I wanted, I got that far only by using some “tricks” but as the solution I found looks like a Win-Win. I asked RicksterCDN if this is a valid scenario on twitter, as he was so friendly to forward this to @JoseBarreto I wanted to explain the scenario a bit better.

Hence,this blog post is mostly to explain, when I have cleared up some stuff, I plan to add more information and some performance to make it into a article

The question is basically is this valid :

$stHDDonly = New-StorageTier -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDOnlyWBC_HDD_Template -MediaType HDD

New-VirtualDisk -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDOnlyWBC -StorageTiers ($stHDDonly) -StorageTierSizes (100GB)

To create the last Disk in following list ( last 4 are created and explained by examples below

PS C:\Program Files (x86)\SQLIO> Get-VirtualDisk | ft FriendlyName,NumberOfColumns,WriteCacheSize -a
FriendlyName NumberOfColumns WriteCacheSize
------------ --------------- --------------
vdGoldTiered 1 1073741824 <- Tiered mirror
IOTest 2 1073741824 <- stripe for IO testing
4 1073741824 <- SDD's are misused ! (Note 4 Columns used)
HDDOnly2 3
0 <- Select HDDs manual (Note no WBC used )
HDDSDDWBC 1 1073741824 <- very small SDD (Note only 1 Column so bad performance)
3 1073741824 <- full HDD performance + WBC , Win-Win Valid configuration?

Here are the examples used :

# create a non tiered disk in pool with SSDs (like in interface do not select tiering)

New-VirtualDisk -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDOnly -Size (100GB)

# SDDs are used as “normal” disks (this is misuse of SSDs not wanted)

Get-VirtualDisk | ft FriendlyName,NumberOfColumns,WriteCacheSize -a

# The solution only selecting only HDDs

New-VirtualDisk -StoragePoolFriendlyName Storagepool01 -PhysicalDisksToUse (Get-PhysicalDisk | where {$_.MediaType -eq “hdd”}) -FriendlyName HDDOnly2 -Size (100GB)

# Better but now there is no WBC possible (As no SSD’s selected to create this disk)

Get-VirtualDisk | ft FriendlyName,NumberOfColumns,WriteCacheSize -a

# Using tiered anyway but very small (only thing you can do in interface) did not help

$stSSD = New-StorageTier -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDSSD_SSD_Template -MediaType SSD
$stHDD = New-StorageTier -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDSSD_HDD_Template -MediaType HDD

New-VirtualDisk -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDSSDWBC -StorageTiers ($stSSD,$stHDD) -StorageTierSizes (1GB,100GB)

# because there only 1 column is used (only 2 SSD drives) I loose a lot of performance on my HDD because of this

Get-VirtualDisk | ft FriendlyName,NumberOfColumns,WriteCacheSize -a

# the solution, use storage tiers but do not specify any SDD tier at all :

$stHDDonly = New-StorageTier -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDOnlyWBC_HDD_Template -MediaType HDD

New-VirtualDisk -StoragePoolFriendlyName Storagepool01 -FriendlyName HDDOnlyWBC -StorageTiers ($stHDDonly) -StorageTierSizes (100GB)

# now I have 3 columns, full use of all my HDD performance and can still make use of WBC

Get-VirtualDisk | ft FriendlyName,NumberOfColumns,WriteCacheSize -a

# Win-Win IMHO so I asked RicksterCDN if this is a valid scenario

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s