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.
# See what disks you've got available so you can set the below variables
Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk `
| Where-Object CanPool -eq $True
# Tell Windows which disk is a traditional HDD and which is an SSD
$HDDs = "PhysicalDisk1", "PhysicalDisk2", "PhysicalDisk3"
$SSDs = "PhysicalDisk4", "PhysicalDisk5"
# Create a new storage pool (these are fairly default options)
New-StoragePool -FriendlyName "Your Storage Pool" `
-PhysicalDisks (Get-PhysicalDisk $HDDs) `
-StorageSubSystemFriendlyName "Storage Spaces*" `
# Add in your two (or more) Journal disks
Add-PhysicalDisk -StoragePoolFriendlyName "Your Storage Pool" `
-PhysicalDisks (Get-PhysicalDisk $SSDs) -Usage Journal
# Create the virtual disk and get it ready for use
New-VirtualDisk -FriendlyName "Parity Protected & Journaled Data" `
-StoragePoolFriendlyName "Your Storage Pool" -NumberOfColumns 3 `
-ProvisioningType Thin -ResiliencySettingName Parity -Size 2TB `
| Initialize-Disk -PassThru -PartitionStyle MBR `
| New-Partition -AssignDriveLetter -UseMaximumSize `
| Format-Volume -FileSystem NTFS `
-NewFileSystemLabel "Parity Protected & Journaled" -Confirm:$false
You can now check it all worked using a
FriendlyName CanPool OperationalStatus HealthStatus Usage Size
------------ ------- ----------------- ------------ ----- ----
PhysicalDisk1 False OK Healthy Auto-Select 10.25 GB
PhysicalDisk2 False OK Healthy Auto-Select 10.25 GB
PhysicalDisk3 False OK Healthy Auto-Select 10.25 GB
PhysicalDisk4 False OK Healthy Journal 10.25 GB
PhysicalDisk5 False OK Healthy Journal 10.25 GB