You dont have javascript enabled! Please enable it!

Modify Storage Tiers Optimization with #PowerShell #StorageSpaces

2 Min. Read

In this article, I will show you how to modify storage tiers optimization with PowerShell.


The killer feature in Windows Server is Storage Tiered Spaces.

What are Storage Tiered Spaces?

Storage Tiers automatically moves frequently accessed data to faster (solid-state drive) storage and infrequently accessed data to slower (hard disk) storage, by having the file system actively measure the activity of the workload in the background and then automatically and transparently move data to the appropriate tier (SSD or HDD) depending on how hot or cold the data is determined to be.

Storage Spaces in Windows Server 2012 R2 can thus ensure that the workload’s hot data is always stored on the SSD tier to take advantage of the high performance of this tier, and its cold data on the HDD tier to make use of the high capacity of this tier. If a portion of the data for a particular file becomes hotter (is accessed more frequently), then it gets moved from the HDD tier to the SSD tier. And if the portion of data becomes cooler (is accessed less frequently), then it gets moved from the SSD tier to the HDD tier as shown in figure 1.

Storage Spaces in Windows Server
Figure 1

For more information on What’s New in Storage Spaces in Windows Server 2012 R2, check here.

Ok, so having this explained, the placement of data in storage tiers on all tiered storage spaces in the system is a daily task that runs every day at 1.00 AM.



Modify Storage Tiers Optimization

The trigger can be customized to run more than once per day.

As I am running heavy SQL Virtual Machines workloads on my storage spaces, I need the system to determine more frequently the cold and hot data chunks and move them accordingly between the two tiers.

How can we accomplish this? Easy enough by creating a new Trigger in Task Scheduler UI.

How about if you want to add 4 or 5 Triggers, how many clicks do you want to click?

The cutting edge time is PowerShell Smile

Here is an easy way to do it:

$Time1 = New-ScheduledTaskTrigger -Daily -At 7am

$Time2 = New-ScheduledTaskTrigger -Daily -At 12pm

$Time3 = New-ScheduledTaskTrigger -Daily -At 7pm

$Time4 = New-ScheduledTaskTrigger -Daily -At 1am

Set-ScheduledTask -TaskPath "\Microsoft\Windows\Storage Tiers Management" -TaskName "Storage Tiers Optimization" -Trigger $Time1, $Time2, $Time3, $Time4

Get-ScheduledTask -TaskName "Storage Tiers Optimization" | fl Triggers

Triggers : {MSFT_TaskDailyTrigger, MSFT_TaskDailyTrigger, MSFT_TaskDailyTrigger, MSFT_TaskDailyTrigger}



Photo of author
About the Author
Charbel Nemnom
Charbel Nemnom is a Senior Cloud Architect, Swiss Certified ICT Security Expert, Certified Cloud Security Professional (CCSP), Certified Information Security Manager (CISM), Microsoft Most Valuable Professional (MVP), and Microsoft Certified Trainer (MCT). He has over 20 years of broad IT experience serving on and guiding technical teams to optimize the performance of mission-critical enterprise systems with extensive practical knowledge of complex systems build, network design, business continuity, and cloud security.

Related Posts


Demo: Hyper-V Virtual Switch Extended Port ACL’s

Migrate VMware VMs to Hyper-V using MVMC 2.0


Let me know what you think, or ask a question...

error: Alert: The content of this website is copyrighted from being plagiarized! You can copy from the \'Code Blocks\' in \'Black\' by selecting the Code. Thank You!