覆盖产品:工业级 203,303,503 CF卡,806/808 SD卡,300UFD与900S SATA产品。
1.简介
自我监测、分析与报告的技术(又名SMART),是美国国家技术标准ATA规范定义的一个特征集,这个特征集包含一套允许主机检索存储设备健康状况信息的命令。它可以让用户提前知道设备即将变坏,并在变坏前采取行动。SMART最早应用于硬盘驱动器,但是现在被基于ATA接口的存储设备的闪存采用。SMART对ATA规范来说是一个可选择的特征,但是对仙人掌科技的303,503,900S系列产品来说是标配。
(ATA:高级技术附件,一种基于行业标准的硬件驱动器接口。)
2. SMART的用法
SMART是一个使用B0h的ATA命令,在这个命令里面,有再定義子命令,而這些子命令都不是必要的。通过程序选择到的子命令会写入特征寄存器,仙人掌科技303系列产品支持如下的子命令:
值 | 命令 |
D0h | SMART Read Data |
D2h | SMART Enable/Disable Attribute Autosave |
D8h | SMART Enable Operations |
D9h | SMART Disable Operations |
DAh | SMART Return Status |
仙人掌科技503系列产品支持如下子命令:
值 | 命令 |
D0h | SMART read data |
D1h | SMART read attribute thresholds |
D2h | SMART enable/disable attribute autosave |
D5h | SMART read log |
D6h | SMART write log |
D8h | SMART enable operations |
D9h | SMART disable operations |
DAh | SMART return status |
仙人掌科技900S系列产品支持如下子命令:
值 | 命令 |
D0 | SMART Read Data |
D1 | SMART Read Attribute Thresholds |
D2 | SMART Enable/Disable Attribute Autosave |
D5 | SMART Read Log |
D6 | SMART Write Log |
D8 | SMART Enable Operations |
D9 | SMART Disable Operations |
DA | SMART Return Status |
E0 | Read Remap Data |
E1 | Read Wear Level Data |
SMART最常用的用法是用子命令DAh检查设备的状况,会返回"通过/失败"状况给主机,尽管如此,这个信息也不是特别有用,因为當回報失败状态时,设备已经坏了。
SMART更多的用法是用读取命令(D0h)来读取设备的属性,将返回设备属性的清单,这些信息可用来预测设备剩余的寿命。
3. SMART属性
SMART的读命令会检索设备的属性,ANSI ATA规范定义了SMART的命令与子命令与数据格式,但是它没有規範设备必需回報哪些属性。因此供应商之间的属性是多种多样的。自从90年代中期引进了SMART技术,硬盘驱动器厂商在他们的产品中或多或少会采用一些通用的属性。这些属性也被闪存供应商采用。然而这是一个业界制定标准而不是ANSI ATA标准。不保证相同ID的设备返回相同的属性。而且供应商在他们独有的产品中经常有额外的属性。
互聯網上有一些公用的SMART軟體读取和解讀属性信息。但是这些解讀方只法只是依靠業界标准或者逆向工程而获得。在我们的产品中,仙人掌科技不建议使用这些軟體来解析SMART属性,因为这些軟體不保證能正確返回数据。
仙人掌科技的SMART属性在产品之间会略有不同,在各产品手册中有详细的SMART属性文档。如果用户必须依靠第三方SMART軟體,最好的方法是先清空原始属性数据,然后用仙人掌的产品手册解析。
4. 仙人掌科技的SMART功能
由于没有标准的SMART軟體,有2种方法可以从仙人掌科技产品中精确的检索与解析SMART属性。第一种是用户基于产品手册编写他们自己的SAMRT軟體,这个方法应用于非Windows或者Linux的操作系统,并应用于现场监测的情况。第二种方法是使用仙人掌科技提供的SMART軟體,目前,这个功能仅仅适用于Win32应用,并运行Windows命令。对于Linux操作系统,我们提供了C的源代码,以便用户能编译一个专用的功能。可以联系仙人掌科技销售获得这些文件。仙人掌科技Windows SMART功能是独立的脱机的程序,因此,不适合那些SMART属性现场监测的应用。
4.1 Windows SMART功能
当用户运行我们的Windows SMART功能时,它将会自动检测到被加载到系统的任何支持的仙人掌科技产品。如下图显示:
这个截图显示了2个仙人掌科技产品被加载. 一般用户的系统只會使用一个人仙人掌產品,用户能从机型信息中很容易的识别,用户可以选择适当的设备与功能,并开始检索SMART属性,具体如下图:
用户可以通过按X退出
4.2 Linux SMART功能
由于Linux有很多不同的版本与很多内核版本,難以提供预编译的執行檔,仙人掌科技将提供C的源码,以便终端用户编译他们自己符合Linux实际需求的SMART。Linux代码使用SCSI ATA 轉換 (SAT) 给设备发布必要的ATA命令。Windows与标准Linux内核驱动与支持SAT特征的USB转SATA芯片均支持SAT。
下面的例子显示了Fedora Linux 900S SATA SSD SAMRT的编译情况,用户需要有 root 权限才能运行这个功能。首先识别SCSI设备分配给驱动器,在这个例子中是dev/sdc. 输入如下命令后启动这个功能:
>cactus-900S-smart-util /dev/sdc
下图显示了相关命令菜单:
选择c读取SMART属性,具体如下截图:
最后选择h退出
最有用的属性是备用块计数与擦除计数,這兩個属性皆可以用于预测存储设备的剩余寿命。另外一个有用的属性是ECC计数,如果用户已经启动了无法纠正的ECC计数(通过从全部ECC错误数量减去可纠正的ECC错误数量来获得),通常根据无法纠正的ECC错误数量,得知是否在产品寿命的末期而需要更换设备。
5. 203系列产品的 SMART
仙人掌科技的-203系列产品率先于2005年引进并一直使用至今,这个产品系列不支持ATA SMART特征设置。即使如此,我们也一直提供支持给用户预测他们的产品寿命,这个信息通过专用的命令从驱动程序里面检索,仙人掌科技为这个功能已经专门编写好程序,这仅仅在舊式DOS环境下运行而不是Windows DOS。如果我们任何客户需要植入这个功能,可以联系仙人掌科技销售团队来获取更多的信息。
6. SD卡产品的SMART
SD卡产品本来是针对消费类市场,它的长产品寿命与早期的失效预测不准确,因此,SD卡产品开始广泛的应用于工业级应用,俱備SMART功能亦變得重要。不幸的是,SD协会並沒有為SD命令集里面定加入SMART命令。
針對SD卡产品的缺乏 SMART,仙人掌科技在-806/808系列SD卡产品上与我们的供应商实现了一套SMART特征。这个特征通过在状态寄存器返回类似"Reserved for Vendor"SMART信息来工作,用ACMD13检索。基本上这些返回信息类似ATA SMART特征里的备用块数量属性。备用块数量信息允许用户计算产品剩余寿命的百分比。-806/808 SD卡产品手册里面有通过命令返回的详细数据。
下图针对ARM Cotex M3单片机,运行-808 SD SMART功能后输出信息的举例:
重申一次,备用块数量与ECC数量属性都能预测卡的剩余寿命。
7. USB产品的SMART
仙人掌科技的300系列USB产品支持SMART属性报告,这个过程通过使用USB标准的ATA特征实现,通过使用这个特征,标准ATA SMART命令(B0h)被发送给设备,支持300系列USB产品的子命令如下:
值 | 命令 |
D0h | SMART Read Data |
D1h | SMART Read Attribute Thresholds |
D8h | SMART Enable Operations |
D9h | SMART Disable Operations |
DAh | SMART Return Status |
属性报告请参考300系列USB产品手册。
目前,仙人掌科技正致力于300系列USB产品的SMART报告功能,感兴趣的用户,可以联系我们的销售团队咨询进一步的可利用性。暂时用户可以使用第三方软件,例如smartmontools;这个软件能清空原始属性数据,用户可以了解产品手册里面的信息。
下图说明了300系列USB驱动的smartctl输出:
用户可以忽略属性名,并根据-300 USB产品手册参照属性ID,以便正确理解原始数值报告里面的属性值。
注意使用了-d开关命令后,会通知USB控制器使用SCSI ATA直通特征,也需要注意不是所有的USB控制器支持ATA直通特征,這情況下便不能检索SMART属性。
8. 摘要
总結而言,SMART属性包含存储设备健康状况的有用信息。仙人掌科技的-303,503与900S系列产品完全支持ATA SMART 技术。即使如此,由于SMART属性並沒有一個標準規格,,精确检测SMART属性的方法要么自己编写软件,要么使用仙人掌科技提供的软件。另外仙人掌科技在-806/808系列SD卡产品与300系列USB产品实现了类似的SMART的性能。
9. 版本历史
版本 | 日期 | 变更 |
1.0 | 2014-3-24 | 初始版本 |
2.0 | 2017-6-14 | 增加基于Linux的功能描述与USB SMART信息 |
我们希望本白皮书能帮助我们的客户能更好的理解,读者有更深入的问题,随时欢迎联系我们的销售部门.
邮箱:daniel.zhao@cactus-tech.cn
文章原创:工业级闪存专家仙人掌科技
楼主最近还看过