S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; written as SMART) SMART is a system for monitoring and early detection of errors of storage media such as hard disks or SSDs. All current hard drives and SSDs have SMART functionality. However, the data provided by SMART, (SMART attributes), are different from manufacturer to manufacturer. Only a few manufacturers document the importance of the individual SMART attributes in detail (eg. Intel, see SMART attributes of Intel SSDs). It is difficult for the user to interpret the SMART attributes without documentation.
SMART was originally developed in the mid 90s by the Small Form Factor (SFF) Committee,  in the meantime Technical Committee T13 are responsible for SMART. SMART has been standard since ATA-3 to ATA/ATAPI. However, it was removed shortly before the publication of the standard description of the SMART attributes. Therefore, the consequence is that a hard disk drive only provides a status of "OK" or "not OK" according to Standard. It does not specify how many or which sensors (attributes) a hard drive must have.
Over time, a relative standard equivalent has been formed to then remove it. However, the SMART attributes of hard drives can still be read and assigned, eg. with the help of tools smartctl. The exact meaning of a particular SMART attribute (eg. Raw Read Error Rate) is often specific according to the manufacturer. Since SSDs, many of the previous SMART attributes that were created no longer make sense and were given new meaning or removed entirely by the manufacturers.
The standardization of SMART was first seen with ATA-3. The 7b revision of the ATA-3 draft still contained descriptions of the SMART attributes, these were removed but before the adoption of standards. Since ATA-3 a standard chapter is found in (eg. Chapter 4.21 in ATA-8) to SMART, which does not, however, refer to the attributes, but rather treated only as general SMART functions. There was a proposal for the description of SMART attributes for ATA-8 (was subsequently split into three proposals) which were not included in the standard.
The following table shows which SMART functions were standardized:
- Have been standardized:
- SMART data format
- SMART data collection
- Response to exceeding of thresholds ("Dev OK"; "Dev fail")
- SMART commands
- SMART error logs
- SMART tests
- Not standardized, but handled (semi-standard based on the ATA-3 drafts):
- SMART attributes (it is not specified which attributes must be present and how these are to be stored)
- Interpretation of the SMART attributes (it is not specified whether an attribute eg. is a bit pattern or a number)
Since the SMART attributes are not standardized, each manufacturer can choose which SMART attributes it defines for each hard disk or SSD model.
A SMART attribute contains:
- Attribute name (e.g. Raw Read Error Rate)
- raw value (RAW_VALUE in the smartctl output): is individually defined by the manufacturer. Without specific documentation of the importance of this value an interpretation is not reliable. Often raw values are physical quantities (e.g. temperature, hours, ...).
- normalized value (VALUE in the smartctl output): Value between 1 (worst condition) and 253 (best condition), most manufacturers use 100 or 200 as a best value.
- of previously measured values the worst normalized values (WORST in the smartctl output)
- Limit for the normalized value (THRESH in the output of smartctl): when it falls below the normalized value of this limit, it is set to "Dev fail" SMART status.
Various attributes are only updated when you restart or during a self-test, this can be seen in smartctl output in the column on the entry UPDATED "offline". Values that are updated during operation are labeled "Always". There are also various types of attributes. Attributes of 'Pre-fail' may show an early failure of the disk in low values. Attributes of "Old-age" can be changed by the normal aging process of a hard disk.
Here is a sample smartctl tool output:
adminuser@ubuntu-12-04:~$ sudo smartctl -a /dev/sda smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-54-generic] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION === Model Family: Western Digital RE4 Device Model: WDC WD1003FBYX-01Y7B0 [...] Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 174 171 021 Pre-fail Always - 4291 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 126 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 9532 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 123 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 68 193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 57 194 Temperature_Celsius 0x0022 115 102 000 Old_age Always - 32 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
In the english Wikipedia article on SMART, a list of known attributes SMART Attributen incl. a short description is given.
Reading the SMART Attributes
You can find instructions in our smartctl article for the readout of SMART attributes on Linux.
There are several (GUI) tools in Windows that read and display SMART values. For an overview, see the following Wikipedia page: S.M.A.R.T.-Programme im Vergleich
Some smart attributes are only updated at the start of a hard drive or by conducting a so-called SMART test. Additional information about SMART tests and how they are performed can be found here in our article SMART Tests with smartctl.
- Links: The original SMART specification (smartmontools Wiki)
- Working Draft: Information Technology - AT Attachment-3 Interface (ATA-3) Revision 7b, 27.01.1997 (www.t13.org)
- Working Draft: Information technology - AT Attachment 8 - ATA/ATAPI Command Set (ATA8-ACS) Revision 6a, 06.09.2008 (www.t13.org)
- Proposal: ATA/ATAPI-8 SMART Attribute Annex 30.09.2005 (www.t13.org)
- Proposal: ATA/ATAPI-8 SMART Attribute Overview 18.10.2005 (www.t13.org)
- Proposal: ATA/ATAPI-8 Assignment of SMART Attributes 18.10.2005 (www.t13.org)
- Proposal: ATA/ATAPI-8 List of Public SMART Attributes 18.10.2005 (www.t13.org)
- Proposal: Hard Drive Self-tests 26.04.1999 (www.t10.org)
- SCSI Primary Commands - 4 (SPC-4) (www.t10.org)