Determining disk health using Windows PowerShell on Windows Server 2012 and Windows 8

Last year, I had posted an article on how to view SMART data from a disk to determine the health of the disk on Windows 7 and Windows Server 2008 R2;

 

https://blogs.msdn.com/b/san/archive/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does.aspx

 

For Windows 8, we took this a step further with the addition of the Get-StorageReliabilityCounter cmdlet in the Storage module for Windows PowerShell. 

This information can be obtained by passing either a Disk or a PhysicalDisk object (when using Storage Spaces) to this cmdlet. For example,

Get-Disk 0 | Get-StorageReliabilityCounter

or

Get-PhysicalDisk –FriendlyName PhysicalDisk1 | Get-StorageReliabilityCounter

 

By reviewing this information is possible to make several types of determinations, such as:

 

  • What is the temperature of my Disk?
    • Is my disk hotter than the manufacturer recommended maximum?      

 

  • Has my disk experienced any sort of read or write failures?    

 

  • Is my SSD disk approaching the end of its use (Via the Wear property).

 

  • Has this disk experienced any long delays in reading or writing data

It is important to note that some values are only of interest when compared with drives of the same model, and I wanted to give a couple of concrete examples for how to use these counters effectively:

 

 

 

PropertyName

Suggested Use

Read or Write failures

This counter is of interest without comparing to other drives.  Any drive reporting read or write failures should be considered at risk.

Temperature

This counter is most useful when comparing with other drives of the same type and model. It may be normal to see notable differences in the normal operational temperature between dissimilar drive models.       

Read or Write Latency

This counter is most useful when comparing with drives of the same type and model, as it would be expected to see differences when comparing different models.  For example, a 15K RPM spinning disk would on average report lower latency then a disk spinning at 5400 RPM.

In several cases during the release preview, this information was critical in diagnosing issues with disks in a Storage Spaces pool performing abnormally.  These counters were used to easily identify drives which were experiencing long delays in read or write performance, which negatively impacted the performance of a Storage Space.

 

One note of caution: The display of this information is based the disk device correctly reporting these counters. Not all disks report these types of statistics. So the values reported per-disk may vary.

 

Example 1: Reliability Counter Information reported by a SAS disk which is part of a Storage Spaces pool.

image

 

 

Example 2: Reliability Counter Information reported by a USB disk

image

 

 

More Information:

Information provided by the Get-StorageReliabilityCounter cmdlet is obtained via log pages which are defined in the specification, SCSI Primary Commands 4 (SPC-4).  For devices that report this information, the counter information is displayed using this cmdlet.

 

Information for Drive Manufacturers:

For more information about the Windows logo requirements for providing this information, please refer to the following article on MSDN:

https://msdn.microsoft.com/en-us/library/windows/hardware/jj134356.aspx

In the section titled Device.Storage.Hd.Scsi.ReliabilityCounters

 

Thanks,

 

Bruce