Server 2012 R2, Storage Spaces and Tiering

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Dennis Wood

New Member
Feb 11, 2014
4
0
1
www.cinevate.com
I just wanted to thank you for posting this thread. I spent a day or so sorting out tier configurations with a six disk array of 4TB Hitachi 7200 drives, and two SSDS. The performance on larger high capacity writes was not good using storage spaces with 2 x Intel 530 SSD tier and 5 column parity over six drives, when really pushing from a 10G workstation pushing a 500MB/s backup. I ended up going back to RAID 5 using a rocketraid 2720. With 16GB of RAM in the windows 2012 server, these files are being sucked in at 1000MB/s. I'll post up my powershell script here for reference. Although the Powershell interface is a pretty crazy way to set and monitor an array (sheesh!) I did appreciate being able to tear the array down, and simply past the entire script into the powershell window to do an entire new setup in a few seconds.

I will mention a few things that may help in any further testing you do based on a few comments you made.

1. RamDrives on both test machines are pretty much required to really test IO over 10G. RAMdisk software also will affect your speed. I found SoftPerfect Ramdisk to be one of the faster free packages. IMdisk is also free, but skewed top end results by nearly 200MB/s

2. Parkdale (a rather simple desk benchmark) does work over networked drives (you can map to shared ramdisk drives as well).

3. ATTO will work over networked drives if you use the SUBST command at the command prompt. Example SUBST m: \\192.168.0.1\raid_share_name

I'll add in a few screen grabs during my own quest for sustained 1000MB/s performance.

This is an example of multichannel (2 x 10G) Intel x540 connections with tuned drivers, jumbo frames enabled. Both workstations using Windows 8.1, so therefore SMB3 :)



This is ATTO "fooled" by a SUBST command so is measuring array performance on the "server" from the workstation...both windows 8.1 Pro.



Cheers, Dennis (Cinevate - Tools for Filmmakers and Photographers)
 

Hank C

Active Member
Jun 16, 2014
644
66
28
Sorry to dig up old post.
PigLover, possible to use RAMDisk as Writeback Cache on Storage Spaces? or is it automatically uses it?
 

PigLover

Moderator
Jan 26, 2011
3,194
1,553
113
Sorry to dig up old post.
PigLover, possible to use RAMDisk as Writeback Cache on Storage Spaces? or is it automatically uses it?
Is it possible? Very likely. The lg/cache disk must be type SSD, but with the right powershell commands you can lie to SS and tell it any disk is an SSD. I've never tried but the method should be pretty trivial to puzzle out.

Is it a good idea? Definitely NO. SS depends on synchronous writes to keep its Metadata stable. If you lose power to you ramdisk log/cache the you lose..lose big.
 

Hank C

Active Member
Jun 16, 2014
644
66
28
In a lab environment, would it be good?
Does the 2012 R2 support ISCSI and NFS support?
 

PigLover

Moderator
Jan 26, 2011
3,194
1,553
113
If you search the Microsoft blogs you can find step-by-step examples of lab configurations using virtual hard disks (.vhdx files) for almost all Storage Spaces use cases. No reason the vhdx files can't live on ramdisk. So yes, possible.

Note that most of these examples are intended for education labs - teaching how it works - not really running anything of any value, lab or otherwise

You can do it. But if you care at all about the data being stored it is a very bad idea.
 

Dk3

Member
Jan 10, 2014
67
21
8
SG
I did test on ramdisk as virtual disk in vm as ssd tiering for SS.
Since my data may not be so crucial as realtime, i use replication to clone it intervally to another hyper-v which is only sas/sata drive.

So if in any mishap to the SS, i simply recover from the replication. This allow me having certain data integrity and ram speed at the same time.

But i still strongly encourage real ssd tiering for reliablity.
 

Darkytoo

Member
Jan 2, 2014
106
4
18
In a lab environment, would it be good?
Does the 2012 R2 support ISCSI and NFS support?
Depends...In my experience:
iSCSI: Yes, but depending on who you believe, iSCSI from Microsoft is horribly slow compared to starwind or even linux iSCSI targets, or Microsoft iSCSI is the best you can get on Microsoft platform. In my experience, from trying both, the Microsoft iSCSI is really good and really dependable, and the speed while not great is quite satisfactory. Now the starwind implementation is very flashy with a whole lot of caching built in, but from using it, i've experienced lost data and server performance issues, so i wouldn't use it.

NFS: Deceptively easy to configure, impossible to managed for actual usage. The performance is mediocre, and I just ended up removing it and switching to a shareware NFS server called "hanewind" that works really well so far. What you'll find is an amazing lack of documentation, and apparent support abandonment from Microsoft. I had it running great for about 2-3 weeks, and then when I started to copy more files into shared NFS/SMB shares, I had a really cool permission inheritance issue that wouldn't allow me to access new files via NFS that I spent about 3 days trying to troubleshoot and I ultimately decided to cut my losses and use the hanewin NFS server. Don't bother with any other NFS server, they're either very $$$ or only support NFSv2.
 
  • Like
Reactions: Marsh

Marsh

Moderator
May 12, 2013
2,654
1,502
113
I agree with Darkytoo.
Microsoft iSCSI on SS as boot iSCSI server for 3 Dell C6100, nice and easy. Only way to snapshoot the iscsi disk is by using powershell.

Xpenology for ESXi nfs store, nice and easy, saturating the 1gb network barrier with 5 min setup. almost impossible to screw up. Xpenology as Hyper V vm on Windows 2012r2 server.
 

Hank C

Active Member
Jun 16, 2014
644
66
28
I just tried this but not able to create
New-VirtualDisk -StoragePoolFriendlyName TieredPool -FriendlyName HDD_Parity -UseMaximumSize -ResiliencySettingName Parity -ProvisioningType Fixed -NumberOfColumns 4

got this error
New-VirtualDisk : No MSFT_StoragePool objects found with property 'FriendlyName' equal to 'TieredPool'. Verify the
value of the property and retry.
At line:1 char:1
+ New-VirtualDisk -StoragePoolFriendlyName TieredPool -FriendlyName HDD_Parity -Us ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (TieredPool:String) [New-VirtualDisk], CimJobException
+ FullyQualifiedErrorId : CmdletizationQuery_NotFound_FriendlyName,New-VirtualDisk

I am using this on Windows 8.1 Pro
 

Darkytoo

Member
Jan 2, 2014
106
4
18
run that command in an admin powershell window and it will give the correct friendlynames. that gets all the storagepools, and gives just the friendly names of what is returned.
 

Chuntzu

Active Member
Jun 30, 2013
383
98
28
You need to great a storage pool with name tiered pool from you disks. So before you fun that command to create a new virtual disk you need to created a storage pool. Easiest way is to use server manager to create the pool then use the command line to create the new virtual disk. Or look up the commands to create a new storage pool. Either way works.
 
  • Like
Reactions: Jeggs101

Chuntzu

Active Member
Jun 30, 2013
383
98
28
Here would be the commands you need to add before the new virtual disk command.

$PhysicalDisks = (Get-PhysicalDisk -CanPool $True)

New-StoragePool -FriendlyName TieredPool -StorageSubsystemFriendlyName "Storage Spaces" -PhysicalDisks $PhysicalDisks
 

Hank C

Active Member
Jun 16, 2014
644
66
28
sorry for the late reply.

I got this result from the previous command:

New-StoragePool : No MSFT_StorageSubSystem objects found with property 'FriendlyName' equal to 'Storage Spaces'.
Verify the value of the property and retry.
At line:1 char:1
+ New-StoragePool -FriendlyName TieredPool -StorageSubsystemFriendlyName "Storage ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Storage Spaces:String) [New-StoragePool], CimJobException
+ FullyQualifiedErrorId : CmdletizationQuery_NotFound_FriendlyName,New-StoragePool
 

cesmith9999

Well-Known Member
Mar 26, 2013
1,423
479
83
that means that you do not have a storagepool and Spaces is not running.

either run chentzu's commands or go into the server manager and create a storagepool.
 

Jason Miller

New Member
Jan 22, 2015
1
0
1
49
One last test before I move on to the next phase: Test a 12-drive Dual Parity (Raid-6/RaidZ2 equiv.) with SSD journal and large Write Cache.

Build the pool in the wizard with 12 HDDs and 3 SSDs (the 4th SSD wouldn't help and I don't have 6). Powershell to build the disk:

Get-StoragePool -FriendlyName TieredPool | Get-PhysicalDisk | ? MediaType -eq SSD | Set-PhysicalDisk –Usage Journal
New-StorageTier -StoragePoolFriendlyName TieredPool -FriendlyName SSD_Tier -MediaType SSD
New-StorageTier -StoragePoolFriendlyName TieredPool -FriendlyName HDD_Tier -MediaType HDD
New-VirtualDisk -StoragePoolFriendlyName TieredPool -FriendlyName HDD_Parity -UseMaximumSize -ResiliencySettingName Parity -ProvisioningType Fixed -PhysicalDiskRedundancy 2 -WriteCacheSize 100GB


Note that when building the virtual disk I didn't specify "dual parity" anywhere. Apparently you specify dual parity with the "-PhysicalDiskRedundancy 2" option. Also note that I removed specification of the number of columns.

Interesting note: the disk seems to be short 1 disk worth of capacity. I expected ~18GB but it configured ~16GB (same as the prior test with single parity but 4 columns). Odd. I'll look into that later.
Hey PigLover,
Were you ever able to determine what was causing the lost drive capacity of the Raid 6 array you built? I'm having the exact same issue on the server I'm building. I've got 8 4TB drives in a Raid6 array setup w/8 columns. The Pool shows the right amount of raw space (29.4TB), but when I configure the Raid6 virtual disk I only get 18.2TB and not the 21TB one would expect.

The drives are all the same make and capacity and all have no SMART errors. They're also connected to the same 8 port controller on the MOBO.

The server is running just fine and shows all 8 physical discs online, but where did that almost 4TB go!? It's driving me crazy.

P.S. Realized my bad manners so added this via edit: thanks for starting this fantastic thread and documenting your hard work- it was instrumental in getting me up and running with Storage Spaces!
 
Last edited: