如何在 Linux 下监控 Segate HDD 健康状况?

如何在 Linux 下监控 Segate HDD 健康状况?

我需要监控运行 CentOS 7 的磁盘服务器中托管的几块 Seagate ST16000NM002G SAS HDD 的运行状况。据我所知,Seagate 磁盘不会公开 SMART 属性,这是由于精确的管理决策(请参阅这一页),该公司建议使用他们的 SeaTool 软件,据他们称,该软件比 SMART 更可靠。遗憾的是,似乎只有 SSD 版本的 SeaTool 可用于 Linux(请参阅这一页)。

由于我认为 Segate+Linux 在现代数据中心中应该是一个相当常见的情况,所以我很确定 Linux 上一定有一些可靠的 Seagate 磁盘监控工具。有人可以提供一些见解吗?

编辑:这是我使用 smartctl 对 Seagate 磁盘获得的结果:

$ sudo smartctl -A /dev/sda
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.53.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     33 C
Drive Trip Temperature:        60 C

Manufactured in week 42 of year 2020
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  20
Specified load-unload count over device lifetime:  600000
Accumulated load-unload cycles:  3324
Elements in grown defect list: 0

而对于另一台机器上的东芝硬盘:

$ sudo smartctl -A /dev/sdb
smartctl 7.1 2020-04-05 r5049 [x86_64-linux-4.18.0-348.12.2.el8_5.x86_64] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       7019
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       34
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   062   062   000    Old_age   Always       -       15428
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       34
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       32
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       39
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       31 (Min/Max 15/39)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   253   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       0
222 Loaded_Hours            0x0032   062   062   000    Old_age   Always       -       15427
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       648
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

我希望后者能够建立适当的(即使不准确或不可靠的)监控。

答案1

这篇文章说他们通常会公开 SMART 属性,但由于一些棘手的原因,只有 SeaTool 知道如何解释它们,而不仅仅是通过/失败。

在某种程度上,对于任何磁盘的 SMART 属性来说都是如此,因为只有计算值是机器可读的,而“原始”值的解释则有些不明确。Temperature_Celsius很明显,但各种“错误率”属性的集成时间取决于供应商,阈值也是如此。SeaTools 知道如何解释原始值,基本上就是这样。

如果 SMART 支持缺失或不准确,我怀疑他们是否会销售很多硬盘,绝大多数服务器磁盘都进入 RAID 阵列,而 SMART 是唯一可用的监控标准。

他们可能能够将自己的分析软件堆叠在 RAID 控制器之上,但如果它不能以最小的努力集成到为整个数据中心提供仪表板的现有监控解决方案中,那么它将成为业余爱好者市场的利基解决方案。

这是我称之为“食物链顶端”问题的一类问题的一个实例,其中多个软件组件被编写为主要用户界面,而用户要求将它们集成到更大的系统中。

相关内容