Storage Tiers allow for use of SSD and hard drive storage within the same storage pool as a new feature in Windows Server 2012 R2. If you’ve not read Jose Barreto’s Step-by-step post on this subject already, it is a great source for links about Storage Tiers as well as a fantastic place to find examples of how to use PowerShell cmdlets to implement Storage Tiers with Storage Spaces. In this episode, I’m going to show you how to implement Storage Tiers using mostly the UI.
If you’re not familiar with Storage Tiers, the idea is to be able to mix Solid State Disk (SSD) storage with conventional disks (HDD). However, Storage Tiers provides the ability to store more frequently accessed data on SSD media…with both types of media used as block based storage for the same virtual disk: the best of both types of storage. That’s a pretty high level summary…and a pretty awesome concept. Previously, in my basement lab I had two different pools: one for each type of storage.
If implementing tiers using PowerShell, some calculations may be required…and it looks a bit complicated if you’re just attempting to try out. Granted, below are quite a few screen shots and this is a lengthy post. However, the process using the UI is fairly easy. I made one diversion into PowerShell to show how to define MediaTypes for storage devices if they’re not detected automatically. The technique I use for that is very similar to Jose’s example but is another variation to show that you’re not limited to just one technique.
If you’ve read my recent post about expanding a storage pool, you may have a better understanding of how Storage Spaces uses columns. Using the UI to configure Storage Tiers will attempt to use the defaults for the number of columns. Using some quick and easy PowerShell during the creation process, you may change the column defaults for a specific storage pool.
Remember: If you have difficulty reading any of the screenshots below, you can obtain a full size image by clicking on them.
Creating Tiered Storage
1. The first step involves attaching the devices you intend to use. You must have at least one SSD and one physical drive attached. For this example, I chose 4 SSD devices, and 9 1 TB drives. This is indeed an odd arrangement but I’ve chosen it with a purpose: to show the layout of a defined virtual disk, and to show that Storage Spaces will use what it can from this arrangement and leave remaining space for other uses. In this example, I’ve connected the devices and can see them within Server Manager.
Figure1: Server Manager view of attached disks
2. Next, drop into Storage Pools within Server Manager to see the Primordial pool of available disks.
Figure 2: The Primordial Pool
3. Right-click the Primordial pool, and create a new pool.
Figure 3: Create a new pool
4. Give the new pool a name.
Figure 4: Naming the pool
5. In my example, I’m choosing 2 of the disks to be hot spares. The only reason I chose the specific devices below is because they’re the top drives in each external eSATA cabinet and are easy for me to keep track of this way. 😉 In this section of the wizard, you will also choose the devices to include in the pool. You may click the checkbox on the line with column labels to select all available devices should you so choose.
Figure 5: Assign device uses
Figure 6: Manually setting MediaType with PowerShell
Notice that the SSD devices were detected as SSD media. However, in this case the physical drives show as unknown. If yours are not detected like in this example, they should be set correctly which can be done using PowerShell. We will proceed for now but will need to correct this later. Leaving the majority of the devices as Unknown will result in error in a later step. Next, confirm choices and proceed.
Figure 7: Confirm Selections
Figure 8: Successful Pool Creation
6. If you proceed forward from here and attempt to create a virtual disk, you may receive the following status message. Also note that the new option to create tiered storage is grayed out. This is because the devices in the pool currently don’t meet the minimum requirements due to the Unknown MediaType of my physical disk storage.
Figure 9: Can’t proceed if storage type needs to be defined
7. The above problem is an easy fix. If your storage was properly detected as HDD, then you can skip this step. Otherwise, open a PowerShell prompt and use commands like in the example below:
Figure 10: Assigning MediaType to Unknown disks.
In PowerShell, the disks show as Unspecified. Since all my physical disks show as Unspecified that are part of the pool, I’m simply using the PowerShell WHERE command (can be abbreviated with a question mark) to filter results and only act on those devices that need definition…setting them to HDD.
8. This is also a good time to override the defaults on number of columns to be used within this particular storage pool. By default, as you’ll note from the first command below, the pool is defined to use automatic selection. I am planning to use a mirroring on the virtual disk to be created and want to use two columns. If I were going to create a simple volume, I would want 4 columns as I have 4 SSD drives. You may also be thinking that I’m crazy for mirroring SSD drives. SSD drives are not exempt from failure.
Figure 11: Changing resiliency defaults for a storage pool
9. Getting back to the UI…now is a good time to refresh Server Manager. The UI needs to be refreshed to be aware of the changes just made or subsequent steps may yield errors.
Figure 12: Refresh Server Manager
10. Next, we will create the virtual disk. You don’t have to create the tiers first in PowerShell because the UI will do this for you by using the available checkbox to enable tiering.
Figure 13: Create the virtual disk
Figure 14: Use the checkbox to enable Storage Tiers
11. Select the layout for the storage. In my example, I want to use mirroring.
Figure 15: Choose resiliency level
12. Select two-way mirror.
Figure 16: Two-way mirror
13. When using tiers, you must use fixed provisioning.
Figure 17: Fixed Provisioning
14. Here you get to view the size of the tiers for the virtual disk. Both tiers will be put together to make the resulting virtual disk. In this example, I’m going with the maximum for each.
Figure 18: Selecting SSD and HDD tier size
15. Reviewing the selections below, you see that out of 9TB of available data, the resulting virtual disk is only 3.6TB. Remember that we used all the available SSD space (which was smaller than available HDD space to begin with), and that by choosing mirroring that we’re really using 7.2TB for a 3.6TB volume. Any space not used will remain available in the pool. The maximum size of 3.6TB for this virtual disk is due to the overall disk layout.
Figure 19: Confirm selections
Figure 20: Completion of virtual disk creation
16. Next step is to create a volume on the virtual disk. Note that because of using tiers, you must use all available space on the virtual disk just created.
Figure 21: Create a volume
Figure 22: Choosing max size in New Volume Wizard
17. Assign a drive letter for the volume.
Figure 23: Assign drive letter.
18. Specify a volume label if you choose.
Figure 24: Volume Label
19. Confirm choices.
Figure 25: Final Confirmation
Figure 26: Last step may take a while to complete
20. Once everything has completed, if you look at the storage pool again, you will see that space remains available in the pool — even though we chose the maximum size for the virtual disk and volume. This is due to the storage configuration I chose for this example. Based on the configuration options I chose for the virtual disk, Storage Spaces chose the largest virtual disk it could create based on the available disk layout and columns needed. Therefore, essentially the space on two remaining 1TB drives remains for whatever I might want to use it for.
Figure 27: Remaining Space
21. After the wizard completes, the volume may be used for data. You may or may not know that there are scheduled tasks associated with Storage Tiers. Initially they are not enabled, but after establishing the first tiered storage, they will be enabled automatically. After successful completion, those tasks should appear enabled as follows.
Figure 28: Task Scheduler jobs.
I hope this helps to illustrate how to create tiered storage with Storage Spaces using Windows Server 2012 R2. Having the option to use different classes of storage within the same virtual disk is a great feature to have as an option for your storage needs.
For More Information about Storage Spaces:
Prior Posts about Storage Spaces
http://blogs.technet.com/b/askpfeplat/archive/2013/09/25/storage-spaces-understanding-expansion.aspx
Jose Barreto’s Storage Tiering Step-By-Step with PowerShell
TechNet Reference for Get-VirtualDisk
http://technet.microsoft.com/en-us/library/hh848644.aspx
TechNet Reference for Get-StoragePool
http://technet.microsoft.com/en-us/library/hh848654.aspx
Until next time!
Martin




























Great article.
How about the scheduled task in Storage Spaces called "Storage Tiers Optimization", which defragments the tiers based on "On-the-fly" analysis:
– Is there a way to stop (terminate) this task if it takes longer than xy time, without causing any problems?
– Does it show any reporting about the data which has been moved between tiers?
I couldn’t find any explication / information so far, so I hope someone here can help me out.
Regards,
Dardan
@Dardan,
The tiering optimization occurs as part of a scheduled task that lives under MicrosoftWindowsStorage Tiers Management in Task Scheduler.
The job itself runs at 1AM, daily and will self-terminate if it runs longer than 3 days, by default.
While there’s no reporting from the job itself, all the job is doing is running disk optimization, which is done via defrag, specifically with: Defrag.exe -c -h -g -#
Running that from a command line will allow you to manually optimize the tiers and will also output a report of how many blocks were moved between tiers as well as how much SSD capacity you’ll require to service various levels of IO.
Also, as far as I’m aware, terminating it early won’t cause any problems short of having un-optimized tiers. I’ll do more research on that and leave another comment when I’m certain.
Thank you dear Michael for your reply,
I am confused now.
I have some questions still not clear, here is my current environment and then based on this configuration, I will have a correct picture.
Server with 2 SAS HDD 300 GB as Hardware RAID 1 for OS 2012 R2.
Data = SAS 4 X HDD 1.2 TB and 2 X SSD 400GB as Mirrored using Storage Spaces.
The Server can go up to 25 bays, it’s occupied with 8 disks for now – 2 for the OS, the remaining are 6 disks for the storage spaces.
What is the optimal column configuration based on the above config and taking into consideration that I want to expand the Data storage in the future?
I started with the following based on Jose recommendation:
(If the tiers have different number of disks (4+2), always use the smaller number of the two tiers (SSD+HDD) for the NumberOfColumns).
Since I have 4 HDDs and 2 SSDs, I chose the NumberOfColums = 1.
Get-StoragePool TieredPool1 | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 1
Could you please clarify with more details?
How many disks can I add in the future based on the server specs above for Maximum performance?
Your help is highly appreciated.
Thank you and regards,
thanks
Thanks
Amazing Information to understand in steps.
Great article, thanks. There are a number of good examples of storage spaces, however, I'm finding information available on designing spaces to be lacking. What is the best way to determine the optimal number of columns in a tiered space? For example if I have a 24 disk JBOD with 16 HDDs and 8 SSDs does it make the most sense to have 8 columns? What is the effect of having 4 columns? How would that configuration limit the future expansion of the space? For example could I expand the space by adding 8 more disks?
@ Cory Tomlinson,
You are right, the available information on designing spaces still be lacking.
As per the Product Manager Mr. Jose Barreto,
The number of columns per space, for maximum performance, would be:
For a mirrored space, half the number of disks in the tier
If the tiers have different number of disks, use the smaller number of the two.
In the example in this post, I have 4 disks in the SSD tier and 8 disks in the HDD tier.
So, that means 4 columns (number of disks in the smaller tier) for the simple space and 2 columns (half the number of disks in the smaller tier) for the mirrored one.
But the question is:
If we added more disks in the JBOD for future to expansion.
Let's take the example described above, 4 disks in the SSD tier and 8 disks in the HDD tier for a mirrored space.
I will add 4 SSDs and 4 HDDs (Total= 8 disks in the SSD tier and 12 disks in the HDD tier).
How it will reflect the NumberOfColumns?
Do we need to run a new POS below?
Get-StoragePool Pool1 | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 4
Regards,
@CHAROX
You can't change the number of columns on an existing virtual disk. So you have to carefully design the layout regarding the resilience type and the number of disks you start with. I'd recommend to start with 4 or 8 columns when using a mirrored space. When adding disks to the pool it has then always to be double of the amount of columns. So for example if you start with 16 disks and 8 columns, you have to extend the pool by adding another 16 disks.
Another thing to know is, that after adding disks to the pool, there is no rebalancing mechanism. So the existing disks will be filled up first, before data is written to the added disks. That's why the amount of columns shouln't be too low from the beginning (if you are concerned about performance)
Cheers
Michael
@drmiru
http://www.miru.ch
Just looking for clarification on determining the number of columns. You said that since the smaller tier is the one with SSDs, you set the number of columns to 4 for simple and 2 for mirror. However, earlier in the pool creation you set one of the four SSD drives as a hot spare!! Doesn’t that take the drive out of the column calculation since you will not be writing to it? Or does Storage Spaces definition of hot spare is different?
Bleeeeeehhhhh, nevermind. I read the illustration wrong. nothing to see here.
Hello everyone, I am Palash Acharyya, Support Escalation Engineer with the Microsoft Platforms Core team
Hello everyone, I am Palash Acharyya, Support Escalation Engineer with the Microsoft Platforms Core team
@ charoit you will have to keep adding disks as 4 HDD and 2 SSD. With 17 slots left in your chassis, you could do that two more times, leaving 5 slots open afterwards. .
So any suggestions if you have a good Hardware RAID subsystem in your server, i.e. HP Proliant?
If it already does very good mirroring, not sure I would use software mirroring in its place..
I’m confused. I’ve read some articles that say in order to use Storage Tiers, the number of columns need to be the same, resulting in the same number of HD disks and SS disks. But I also see many examples where there are much fewer SSDs, a configuration much more within most people’s means. I really need to understand the limitations of HHDs to SSDs ratios.
The amount of hardrives you have tickles my funny bone…
大家好,我叫 Palash Acharyya,是微软平台核心团队的支持专家级工程师。在过去的十年中,我们的工作取得了长足的进展,从 Windows Server 2003 一直升级到 Windows Server
Pingback from Windows Storage Spaces DemonstrationGeeks Tube | Geeks Tube
Pingback from Windows Storage Spaces Demonstration | Free LessonsFree Lessons
Two questions. You decided to use hotspares in a 2012R2 Storage Spaces environment. Microsoft best practice for 2012R2 is to leave enough space available in the event of a disk failure rather than doing hot spares. So in that case would you still take
it to the maximum size as in figure 18 or reduce it by the amount of 1 disk per type SSD/HDD? Our configuration is 3JBOD enclosures 24Disks, 4SSD/20HDD per enclosure, 4-Column, 3-way mirror. Disk sizes are 400GB SSD and 1.2TB HDD. We have 3-volumes with SSD
tier on each with a larger than default writebackcache.
Using Powershell I was also looking for the cmdlet to see free space per disk in the enclosures. The best is to get the allocated space and subtract it from the full amount. Would anyone know a Powershell cmdlet that would get those sizes? Thanks in advance.
Dieser Gastbeitrag wurde uns von unserem Partner Rachfahl IT Solutions GmbH und Co. KG (Autor: Jan Kappen
In this post, I’m sharing my favorite links related to Storage Spaces in Windows Server 2012 R2.
Storage Spaces: How to configure Storage Tiers with Windows Server 2012 R2 – Ask Premier Field Engineering (PFE) Platforms – Site Home – TechNet Blogs
In this post, I’m sharing my favorite links related to Storage Spaces in Windows Server 2012 R2.
Storage Spaces: How to configure Storage Tiers with Windows Server 2012 R2 – Ask Premier Field Engineering (PFE) Platforms – Site Home – TechNet Blogs
In this post, I’m sharing my favorite links related to Storage Spaces in Windows Server 2012 R2.
In this post, I’m sharing my favorite links related to Storage Spaces in Windows Server 2012 R2.
When these drives are setup in tiered Drive space 201R2
For example in Emgerecy can this hard drive be disconnected in an emergency and connected to a Win 7 or 8 workstation and you can read the data files provided that the data is not encrypted
thanks
Fig:23 ‘Assign drive letter’ – Can it be changed later? If yes – how?
@SR try looking under Server Manager > File and Storage Services > Volumes. Right click on the specific volume and select ‘Manage drive letter and access paths’
Is it possible to setup a tiered storage space in Windows 10 Pro?