我读到过,寻道错误是磁道寻道次数的递增计数,在执行固定数量的数千次寻道命令后,计数将重置为零。这在某些 BackBlaze 硬盘中很明显(见下图 1)。
在图 1 中,硬盘的寻道率一直增加到第 234 天。然后计数在第 235 天重置。
这个增量计数只是驱动器定位特定存储数据所花费的总时间吗?
有人知道为什么要重置这个计数以及这是否意味着什么?即重置是否只是重置计数,还是可能意味着磁盘寻道率在第 235 天恢复到与新盘一样好?
我想知道我是否可以将寻道错误率可视化为图 2 中所示的结果。图 2(如果我的理解正确的话)是驱动器在第 235 天没有计数重置的情况下定位特定存储数据所花费的总时间。如果计数重置不会改善磁盘的运行状况,或者如果它在计数重置后不影响寻道率,那么我想这没问题。
答案1
计数器会像里程表在用完整数后翻转一样重置。许多设备控制器会有不同的阈值,但计数为 0 并不意味着驱动器没有错误,就像里程表上显示 1,000,010 公里的车辆不是“刚下线”的一样。
如果您想构建如图 2 所示的图表,您可以编写一个小型数据收集实用程序,从存储设备读取 SMART 信息并将其记录在数据库中(或您认为合适的任何地方)。智能工具我通常使用该包来显示存储设备信息。
您可以像这样安装:
打开终端(如果尚未打开)
安装
smartmontools
软件包:sudo apt install smartmontools
查询存储介质,例如NVMe设备:
sudo smartctl --all /dev/nvme0n1
这将给你很多信息:
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.11.0-17-generic] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Number: SAMSUNG MZVLW512HMJP-000L7 Serial Number: S359NX0K103156 Firmware Version: 7L7QCXY7 PCI Vendor/Subsystem ID: 0x144d IEEE OUI Identifier: 0x002538 Total NVM Capacity: 512,110,190,592 [512 GB] Unallocated NVM Capacity: 0 Controller ID: 2 NVMe Version: 1.2 Number of Namespaces: 1 Namespace 1 Size/Capacity: 512,110,190,592 [512 GB] Namespace 1 Utilization: 81,254,830,080 [81.2 GB] Namespace 1 Formatted LBA Size: 512 Namespace 1 IEEE EUI-64: 002538 b181b5c4a3 Local Time is: Thu May 27 21:57:29 2021 JST Firmware Updates (0x16): 3 Slots, no Reset required Optional Admin Commands (0x0017): Security Format Frmw_DL Self_Test Optional NVM Commands (0x001f): Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Log Page Attributes (0x03): S/H_per_NS Cmd_Eff_Lg Warning Comp. Temp. Threshold: 69 Celsius Critical Comp. Temp. Threshold: 72 Celsius Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 7.60W - - 0 0 0 0 0 0 1 + 6.00W - - 1 1 1 1 0 0 2 + 5.10W - - 2 2 2 2 0 0 3 - 0.0400W - - 3 3 3 3 210 1500 4 - 0.0050W - - 4 4 4 4 2200 6000 Supported LBA Sizes (NSID 0x1) Id Fmt Data Metadt Rel_Perf 0 + 512 0 0 === START OF SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED SMART/Health Information (NVMe Log 0x02) Critical Warning: 0x00 Temperature: 33 Celsius Available Spare: 100% Available Spare Threshold: 10% Percentage Used: 1% Data Units Read: 20,937,566 [10.7 TB] Data Units Written: 26,780,407 [13.7 TB] Host Read Commands: 359,002,242 Host Write Commands: 683,010,154 Controller Busy Time: 5,130 Power Cycles: 1,027 Power On Hours: 3,812 Unsafe Shutdowns: 85 Media and Data Integrity Errors: 0 Error Information Log Entries: 719 Warning Comp. Temperature Time: 0 Critical Comp. Temperature Time: 0 Temperature Sensor 1: 33 Celsius Temperature Sensor 2: 39 Celsius Error Information (NVMe Log 0x01, 16 of 64 entries) Num ErrCount SQId CmdId Status PELoc LBA NSID VS 0 719 0 0x0008 0x4004 - 0 0 - 1 718 0 0x0008 0x4004 - 0 0 - 2 717 0 0x0008 0x4004 - 0 0 - 3 716 0 0x0008 0x4004 - 0 0 - 4 715 0 0x0008 0x4004 - 0 0 - 5 714 0 0x0008 0x4004 - 0 0 - 6 713 0 0x0008 0x4004 - 0 0 - 7 712 0 0x0008 0x4004 - 0 0 - 8 711 0 0x0008 0x4004 - 0 0 - 9 710 0 0x0008 0x4004 - 0 0 - 10 709 0 0x0008 0x4004 - 0 0 - 11 708 0 0x0008 0x4004 - 0 0 - 12 707 0 0x0008 0x4004 - 0 0 - 13 706 0 0x0008 0x4004 - 0 0 - 14 705 0 0x0008 0x4004 - 0 0 - 15 704 0 0x0008 0x4004 - 0 0 - ... (48 entries not read)
这些信息可能有点太多了,所以你可以只是错误计数如下:
sudo smartctl -l error /dev/nvme0n1
上述命令返回的输出与上一个命令的“错误信息”部分中显示的输出相同。请注意,默认情况下,NVMe 设备最多返回 16 个条目。如果您查询的 NVMe 设备有更多条目,则可以指定要返回的条目数,如下所示:
sudo smartctl -l error,64 /dev/nvme0n1
对于我的设备,总共有 64 个闪存芯片,因此我会
,64
在上面的命令中添加。您最多可以显示 256 个条目的信息。
希望这能为您提供丰富的信息,供您使用和追踪。