I have a fresh copy of Windows 8 Pro installed. I want to use storage spaces with 4 internal HDD and 2 internal SSD's. Does Windows 8 utilize the SSD's in any special way (eg. caching) to enhance the speed of the storage pool?

Or will the SSD's just be part of the pool for data and no performance benefit given?

4 Answers
4

This somewhat extends TiernanO's answer - I've struggled to find good detailed background on all this, so I thought I'd write it up nicely for everyone:

SSDs can be used to speed up your pools, but it only works in certain situations and there's a number of conditions that must be adhered to.

Firstly, you can't simply just add SSDs to an existing pool and expect it to speed up your system. In fact, if you're mixing SSDs with HDDs in the same pool you're basically wasting the SSDs because each of your files is split up over the other disks, so half of your file might be on a SSD and the other half on the HDD -- so you're still going to need to wait for the HDD to spin up and seek the data before it can actually be used by your computer even though the SSD found the first half of the data long ago. [this is an oversimplification, in fact the data is split to different disks on a block level, not a file level]

So, you probably don't want to mix SSDs and HDDs in the same virtual disk -- have pools composed of only HDDs or only SSDs, not both. Incidentally, it's okay to have them in the same storage pool, just not working on the same virtual disk.

Now, getting back to your question -- yes, it's possible to use SSDs to speed things up by using Storage Space's 'journaling' feature -- but there's a few conditions:

You must be using a virtual disk with a resiliency setting of 'Parity', journal disks cannot be used with 'Simple' or 'Mirror' virtual disks

You must have at least two SSDs -- you can't override this (in the background, they're configured as a Mirror Space in itself in case one fails)

All space on the SSD must be dedicated to journaling, you'll not be able to use either of the SSDs to store data

None of this can be configured from Windows' UI in Windows 8 or Server 2012 -- you have to do it manually using PowerShell

If you've manually increased the number of parity spaces in your pool then you should equally increase the number of journal disks (e.g. if you're using the default 1 parity space, you need 2 SSDs. If you've got 2 parity spaces, you need 4 SSDs etc.).

It may be obvious, but adding Journal disks only increases the speeds of data writes to the virtual disk -- data read speeds will be unaffected

Assuming you're happy with those restrictions, here's what you'll need to do in an elevated PowerShell window:

For this example, I'm assuming you've not yet created your storage pool or virtual disks -- if you've got an existing set modify the instructions to suit.

Storage Spaces can use existing solid-state drives in the storage pool to create a write-back cache that is tolerant of power failures and that buffers small random writes to solid-state drives before later writing them to hard disk drives.

What value does this change add?

Small random writes often dominate common enterprise workloads, and they can impact the performance of other data transfers that are taking place. By using solid-state drives (which excel at random access) for a write-back cache, Storage Spaces can reduce the latency of the random writes and also greatly reduce any impact on the performance of other data transfers.

What works differently?

The write-back cache is transparent to administrators and users, and it is created on all new virtual disks if there are a sufficient number of solid-state drives in the storage pool, as determined by the following requirements for the associated storage space:

The write-back cache works with all types of storage spaces, including storage spaces with storage tiers.

Newly created storage spaces automatically use a 1 GB write-back cache by default when the storage pool contains enough physical disks with MediaType set to SSD or Usage set to Journal to support the specified resiliency setting. If there aren’t enough physical disks with these settings, the write-back cache size is set to 0, except for parity spaces, when it’s set to 32 MB.

Hello and welcome to superuser.com. Your example refers to Windows server, while the poster asked about Windows 8.1. Are you sure that what you are talking about also goes for Windows 8.1? If so, do you have references for that?
–
MoggetNov 8 '13 at 8:59

There is very little documentation on this, but i did read somewhere that Storage Spaces has the option to add a disk to a pool for Journaling. I cant find the original article, but if you look at the Add-PhysicalDisk cmdlet, under Usage, there is an option for Journal... When I read about it, the guy mentioned that he used an SSD as a journal disk, and added it to a pool of 8 2Tb drives, and read and write increased by 40+%... Your Mileage may Vary, but it might be worth a shot...

As a third party option, you may also want to have a look at FancyCache. You can use memory and SSDs as a cache for your slower Media. I used it before, and it worked well, just have not had a chance to re-install since moving to Server 2012...

Storage spaces does not use SSDs for caching, it treats them like regular spinning disks. Please check out the benchmarks here.

There is no option in storage spaces to automatically use an SSD as cache, but if you design your storage pools carefully, you can get the best performance out of those disks.

If you have a "Caching" SSD (one specifically designed for caching like the OCZ synapse) or are using Intel's smart response technology, then these can still be used to accelerate a volume or a single disk of a windows 8 storage space.

I don't have a specific SSD for caching. I have two 128GB Samsung 840 Pro Series. I know that the most I could use is 64GB, so I can either waste the other half or partition it for something else. Good to know that I can use SRT to cache an entire storage pool
–
MarkawayJan 4 '13 at 14:42