With Windows Server 2012 R2, Microsoft introduces support for tiered storage and write back caching. With only rudimentary details available, this blog examines some highlights and also asks a few questions that I hope to make the content of a future blog.
Tiered storage and write back caching with Windows Server 2012 R2 requires:
- A Storage Spaces capable set of rotating hard disks i.e. SAS, SATA, or USB hard disks. Obviously USB disks have their limitations in terms of IOPS.
- A Storage Spaces (set) of flash storage – the word “flash” is used to loosely include SLC, MLC, and other kinds of SSD; again these must be SAS, SATA, or USB
- Creation of a Storage Space that includes both rotating hard disk and flash disks
Tiered storage in Windows Server 2012 R2 provides just two levels. At any given time, a particular file may be
- Fully on SSD because that is how Windows decided the file should be
- Fully on HDD because that is how Windows decided the file should be
- Partly on SSD and partly on HDD because that is how Windows decided the file should be
- Pinned fully to either HDD or SSD by the administrator
With tiered storage, Windows tracks access to file ranges with a granularity of 1MB ranges. By default, a scheduled job runs at 1AM and moves the often accessed ranges of the file to SSD and the less often accessed parts of the file to HDD. The retiering can also be run on demand by the system administrator.
Windows Server 2012 R2 also introduces write back caching along with tiered storage. When writes happen, some (or all) of them end up with the new data on SSD tier. Presumably, at a later time when the scheduled optimization job runs, the data is moved to HDD.
The pros of the Windows Server 2012 tiered storage and write back caching:
- Built into the operating system and free
- If the understanding that write back caching simply places data on SSD and uses regular file structures is correct, the likelihood of data corruption due to cache coherency and cache corruption is minimized
The cons of Windows server 2012 tiered storage and write back caching:
- Only works with Storage spaces which requires SAS, SATA or USB, and in addition requires all storage to be non-RAID
- Does not work with dedicated SSD designated as cache or in other words, the likelihood of the SSD becoming full and then write back caching being turned off is higher
- Is not “real time” in the sense that potentially all writes go into the SSD. I could be wrong here since not enough details are available. But certainly, the process of moving often accessed file ranges to SSD, and less often accessed file ranges to HDD is not real time. It does allow the file to still be used during this retiering process, but it is still only periodic and by default only once per day.
- The retiering process and also the process of monitoring and logging statistics as to what file ranges are actively accessed and what file ranges are less actively accessed may be resource intensive.