如何为 SATA & 实施 SMART Embeddedamp; PCIe NVMe 固态硬盘?
用户手册
本应用说明提供了使用 SP SMART Embedded 实用程序与客户程序集成以获取 SP Industrial SATA 和 PCIe NVMe SSD 的 SMART 信息的说明。
支持环境
- 操作系统:Windows 10 和 Linux
- SP SMART Embedded 实用程序:smartwatch 7.2
- 主机:Intel x 86 平台
SP 工业 SSD 支持列表
- SATA SSD & C 快速 (MLC):SSD700/500/300、MSA500/300、MDC500/300、CFX510/310
- SATA SSD & C Fast (3D TLC) : SSD550/350/3K0, MSA550/350/3K0, MDC550/350, MDB550/350, MDA550/350/3K0 系列, CFX550/350
- PCIe NVMe:MEC350、MEC3F0、MEC3K0 系列
智能属性
- SATA SSD & C 快速 (MLC)
SM2246EN | SM2246XT | |
属性 | SSD700/500/300R/S series MSA500/300S MDC500/300 R/S系列 |
CFX510/310 |
01 | 读取错误率 CRC 错误计数 | 读取错误率 CRC 错误计数 |
05 | 重新分配的扇区数 | 重新分配的扇区数 |
09 | 开机时间 | 预订的 |
0C | 电源循环计数 | 电源循环计数 |
A0 | 读/写时不可纠正的扇区计数 | 读/写时不可纠正的扇区计数 |
A1 | 有效备用块数 | 有效备用块数 |
A2 | 有效备用块数 | |
A3 | 初始无效块数 | 初始无效块数 |
A4 | 总擦除次数 | 总擦除次数 |
A5 | 最大擦除次数 | 最大擦除次数 |
A6 | 最小擦除次数 | 平均擦除次数 |
A7 | 规格的最大擦除次数 | |
A8 | 余生 |
SM2246EN | SM2246XT | |
属性 | SSD700/500/300R/S series MSA500/300S MDC500/300 R/S系列 |
CFX510/310 |
A9 | 余生 | |
AF | 最差管芯中的程序失败计数 | |
B0 | 擦除最差管芯中的失败计数 | |
B1 | 总磨损级别计数 | |
B2 | 运行时无效块计数 | |
B5 | 程序失败总数 | |
B6 | 总擦除失败次数 | |
BB | 不可纠正的错误计数 | |
C0 | 断电回缩计数 | 断电回缩计数 |
C2 | 控制温度 | 控制温度 |
C3 | 硬件 ECC 已恢复 | 硬件 ECC 已恢复 |
C4 | 重新分配的事件计数 | 重新分配的事件计数 |
C6 | 离线不可纠正的错误计数 | |
C7 | Ultra DMA CRC 错误计数 | Ultra DMA CRC 错误计数 |
E1 | 写入的 LBA 总数 | |
E8 | 可用预留空间 | |
F1 | 写入扇区计数 写入的 LBA 总数(每个写入单元 = 32MB) |
写入的 LBA 总数 |
F2 | 读取扇区计数 总 LBA 读取(每个读取单元 = 32MB) |
读取的 LBA 总数 |
SM2258H | SM2258XT | RL5735 | |
属性 | SSD550/350 R/S系列 MSA550/350 S系列 MDC550/350 R/S系列 MDB550/350 S系列 MDA550/350 S系列 CFX550/350 S系列 | CFX550/350系列 | SSD3K0E, MSA3K0E, MDA3K0E series |
01 | 胎面错误率(CRC错误计数) | 胎面错误率(CRC错误计数) | 胎面错误率(CRC错误计数) |
05 | 重新分配的扇区数 | 重新分配的扇区数 | 重新分配的扇区数 |
09 | 开机时间 | 开机小时数 | 开机小时数 |
0C | 电源循环计数 | 电源循环计数 | 电源循环计数 |
94 | 总擦除计数 (SLC)(pSLC 型号) | ||
95 | 最大擦除次数 (SLC)(pSLC 型号) | ||
96 | 最小擦除计数 (SLC)(pSLC 型号) | ||
97 | 平均擦除计数 (SLC)(pSLC 型号) | ||
A0 | Uncorrectable Sector Count On Line(读/写时不可纠正的扇区计数) | Online Uncorrected Sector Count(读/写时不可纠正的扇区计数) | |
A1 | Number of Pure Spare(有效备用块的数量) | 有效备用块数 | 增长缺陷数(后来的坏块) |
A2 | 总擦除次数 | ||
A3 | 初始无效块数 | 初始无效块数 | 最大 PE 循环规格 |
A4 | 总擦除次数 (TLC) | 总擦除计数 (TLC) | 平均擦除次数 |
A5 | 最大擦除次数 (TLC) | 最大擦除次数 (TLC) | |
A6 | 最小擦除次数 (TLC) | 最小擦除次数 (TLC) | 坏块总数 |
A7 | 平均擦除次数 (TLC) | 平均擦除次数 (TLC) | SSD保护模式 |
A8 | Max Erase Count in Spec(规格的最大擦除次数) | 规格中的最大擦除次数 | SATA Phy 错误计数 |
A9 | 剩余寿命百分比tage | 剩余寿命百分比tage | 剩余寿命百分比tage |
AB | 程序失败计数 | ||
AC | 擦除失败计数 | ||
AE | 意外断电计数 | ||
AF | ECC 失败计数(主机读取失败) |
SM2258H | SM2258XT | RL5735 | |
属性 | SSD550/350 R/S系列 MSA550/350 S系列 MDC550/350 R/S系列 MDB550/350 S系列 MDA550/350 S系列 CFX550/350 S系列 | CFX550/350系列 | SSD3K0E, MSA3K0E, MDA3K0E series |
B1 | 总磨损级别计数 | 磨损均衡计数 | |
B2 | Used Reserved Block Count(运行时无效块计数) | 增长的坏块数 | |
B5 | 程序失败总数 | 程序失败计数 | 未对齐的访问计数 |
B6 | 总擦除失败次数 | 擦除失败计数 | |
BB | 不可纠正的错误计数 | 报告了不可纠正的错误 | |
C0 | 断电回缩计数 | 突然断电计数(断电收回计数) | |
C2 | Temperature_Celsius(T 结) | 外壳温度(T 型接头) | 外壳温度(T 结) |
C3 | 硬件 ECC 已恢复 | 硬件 ECC 已恢复 | 累积校正 ecc |
C4 | 重新分配的事件计数 | 重新分配的事件计数 | 重新分配事件计数 |
C5 | 当前挂起的扇区数: | 当前待处理部门数量 | |
C6 | 离线不可纠正的错误计数 | 报告的无法纠正的错误 | |
C7 | UDMA CRC 错误 (Ultra DMA CRC 错误计数) |
CRC 错误计数 (Ultra DMA CRC 错误计数) |
Ultra DMA CRC 错误计数 |
CE | 分钟擦除计数 | ||
CF | 最大擦除次数 | ||
E1 | 主机写入 (写入的 LBA 总数) |
||
E8 | 可用预留空间 | 规格中的最大擦除次数 | 可用预留空间 |
E9 | 总写入闪存 | 备用块 | |
EA | 闪存总读取 | ||
F1 | 写入扇区计数 (总主机写入,每个单元 32MB) |
主机 32MB/单元写入 (TLC) | 书写人生时光 |
F2 | 读取扇区计数
(总主机读取,每个单元 32MB) |
主机 32MB/单位读取 (TLC) | 阅读生活时间 |
F5 | 闪存写入计数 | NAND 32MB/单元写入 (TLC) | 意外断电计数 |
F9 | 写入 NAND 的总 GB (TLC) | ||
FA | 写入 NAND (SLC) 的总 GB |
# 字节数 | 字节索引 | 属性 | 描述 |
1 | 0 | 严重警告: 位定义 00:如果设置为“1”,则可用备用空间已低于阈值。 01:如果设置为“1”,则温度高于过温阈值或低于过温阈值。 02:如果设置为“1”,则 NVM 子系统可靠性已因重大介质相关错误或任何降低 NVM 子系统可靠性的内部错误而降低。 03:如果设置为“1”,则媒体已置于只读模式。 04:如果设置为“1”,则易失性内存备份设备发生故障。 此字段仅在控制器具有易失性内存备份解决方案时才有效。 07:05:保留 |
该字段表示控制器状态的严重警告。 每个位对应一个严重警告类型; 可以设置多个位。 如果某个位被清除为“0”,则该严重警告不适用。 严重警告可能会导致向主机发出异步事件通知。 此字段中的位表示当前关联状态并且不是持久的 当可用备用低于此字段中指示的阈值时,可能会发生异步事件完成。 该值表示为归一化百分比tage(0 到 100%)。 |
2 | 2:1 | 复合温度: | 包含一个与以开尔文为单位的温度相对应的值,该值表示控制器和与该控制器关联的命名空间的当前复合温度。 计算此值的方式是特定于实现的,可能不代表 NVM 子系统中任何物理点的实际温度。 该字段的值可用于触发异步事件。 识别控制器数据结构中的 WCTEMP 和 CCTEMP 字段报告警告和临界过热复合温度阈值。 |
1 | 3 | 可用备用: | 包含归一化百分比tage(0 到 100%)剩余可用容量 |
1 | 4 | 可用备用阈值: | 当可用备用低于此字段中指示的阈值时,可能会发生异步事件完成。 该值表示为归一化百分比tage(0 到 100%)。 |
1 | 5 | 百分比tag已用: | 包含供应商特定的百分比估计值tage 的 NVM 子系统寿命基于实际使用情况和制造商对 NVM 寿命的预测。 值为 100 表示 NVM 子系统中 NVM 的估计耐久度已消耗,但可能不表示 NVM 子系统故障。 该值允许超过 100。百分比tag大于 254 的 es 应表示为 255。该值应在每个上电小时更新一次(当控制器未处于睡眠状态时)。 参考 JEDEC JESD218A 标准,了解 SSD 设备寿命和耐久性测量技术 |
31:6 | 写入的数据单元: | ||
16 | 47:32 | 数据单元读取: | 包含主机从控制器读取的 512 字节数据单元的数量; 此值不包括元数据。 该值以千为单位报告(即值 1 对应于 1000 个单位的 512 字节读取)并向上舍入。 当 LBA 大小为 512 字节以外的值时,控制器应将读取的数据量转换为 512 字节单位。 对于 NVM 命令集,作为比较和读取操作的一部分读取的逻辑块应包含在此值中。 |
# 字节数 | 字节索引 | 属性 | 描述 |
16 | 63:48 | 写入的数据单元: | 包含主机写入控制器的 512 字节数据单元的数量; 此值不包括元数据。 该值以千为单位报告(即值 1 对应于写入 1000 个 512 字节单元)并向上舍入。 当 LBA 大小不是 512 字节的值时,控制器应将写入的数据量转换为 512 字节单位。对于 NVM 命令集,作为 Write 操作的一部分写入的逻辑块应包含在此值中。 写入不可纠正的命令不应影响该值。 |
16 | 79:64 | 主机读取命令: | 包含控制器完成的读取命令数。 对于 NVM 命令集,这是比较和读取命令的数量。 |
16 | 95:80 | 主机写命令: | 包含控制器完成的写命令数。 对于 NVM 命令集,这是写入命令的数量。 |
16 | 111:96 | 控制器忙时间: | 包含控制器忙于 I/O 命令的时间量。 当 I/O 队列中有未完成的命令时,控制器处于忙碌状态(具体来说,命令是通过 I/O 提交队列尾部门铃写入发出的,并且相应的完成队列条目尚未发布到关联的 I/O完成队列)。 该值以分钟为单位报告。 |
16 | 127:112 | Power Cycles:包含电源循环次数。 | |
16 | 143:128 | 开机时间: | 包含开机小时数。 开机小时数始终记录,即使在低功耗模式下也是如此。 |
16 | 159:144 | 不安全停机: | 包含不安全关机的次数。 如果在断电之前未收到关机通知 (CC.SHN),则此计数会增加。 |
16 | 175:160 | 媒体和数据完整性错误: | 包含控制器检测到未恢复的数据完整性错误的发生次数。 不可纠正的 ECC、CRC 校验和失败或 LBA 等错误 tag 不匹配包括在该字段中。 |
16 | 191:176 | 错误信息日志条目数: | 包含控制器生命周期内的错误信息日志条目数。 |
4 | 195:192 | 警告复合温度时间: | 包含控制器可操作且复合温度大于或等于警告复合温度阈值 (WCTEMP) 字段且小于识别控制器数据结构中的临界复合温度阈值 (CCTEMP) 字段的时间量(以分钟为单位)。 如果 WCTEMP 或 CCTEMP 字段的值为 0h,则无论复合温度值如何,该字段始终被清除为 0h。 |
4 | 199:196 | 临界复合温度时间: | 包含控制器运行的时间量(以分钟为单位),并且复合温度大于识别控制器数据结构中的临界复合温度阈值 (CCTEMP) 字段。 如果 CCTEMP 字段的值为 0h,那么无论综合温度值如何,该字段总是被清除为 0h。 |
2 | 201:200 | 预订的 | |
2 | 203:202 | 预订的 | |
2 | 205:204 | 预订的 | |
2 | 207:206 | 预订的 | |
2 | 209:208 | 预订的 | |
2 | 211:210 | 预订的 | |
2 | 213:212 | 预订的 | |
2 | 215:214 | 预订的 | |
296 | 511:216 | 预订的 |
安装
- 请下载最新版本的 SMART Embedded 实用程序。 (按要求下载链接)
- 解压(本例解压到E:\smartmontools-7.2.win32文件夹)
- 运行命令提示符
- 以管理员身份运行
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartctl.exe -h
- 获取使用摘要
获取 SMART 信息的命令行工具(sdb:物理驱动器 1 上的磁盘)
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartct.exe -a /dev/sdb
- 检查附件 file SMART.TXT:https://www.silicon-power.com/support/lang/utf8/smart.txt
将 SMART 信息输出为 JSON 格式。 (sdb:物理驱动器 1 上的磁盘)
- C:\WINDOWS\system32> E:\smartmontools-7.2.win32\bin\smartctl.exe -a -j /dev/sdb
- 检查附件 file JSON.TXT: https://www.silicon-power.com/support/lang/utf8/json.txt
使用案例 1:通过 IBM Node-Red 远程监控 SMART Dashboard
- 安装IBM Node Red,Node Red是IBM开发的一款基于流程的编程工具。 我们使用 Node Red 集成 SP SMART Embedded 实用程序来开发远程监控工具“SP SMART Dashboard”。
- 为 Node Red 开发脚本并使用“smartctl.exe”
- 脚本 file 作为附件 SMARTDASHBOARD.TXT : https://www.silicon-power.com/support/lang/utf8/SMARTDASHBOARD.txt
- 打开浏览器,输入“ip:1880/ui”
- ip 是运行 Node Red 脚本的机器的 IP 地址。 本地机器默认为 127.0.0.1
图 1 SMART 仪表板
* 使用案例2:与谷歌云平台集成,管理现场连接设备的SMART信息
SP Industrial 利用 Google Cloud Platform 和 SP SMART Embedded 开发 SMART IoT Sphere 服务平台。 SP SMART IoT Sphere 是一种基于云的服务,带有警报和维护通知,可监控和分析运行 Windows 操作系统或 Linux Ubuntu 嵌入式操作系统的连接设备中 SP 工业 SSD 和闪存卡的健康状况和状态。
图 2 SMART IoT Sphere 架构
图 3 多设备管理
图 4 SP SMART Embedded 同时支持 Windows 10 和 Linux 操作系统
图 5 实时 SMART 信息显示
所有商标、品牌和名称均为其各自所有者的财产。
©2022 SILICON POWER Computer & Communications, Inc.,保留所有权利。
文件/资源
![]() |
Silicon Power 如何为 SATA & PCIe NVMe SSD 实现 SMART Embedded? [pdf] 用户手册 SM2246EN、SM2246XT,如何为 SATA PCIe NVMe SSD 实现 SMART Embedded |