我需要监控运行 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 控制器之上,但如果它不能以最小的努力集成到为整个数据中心提供仪表板的现有监控解决方案中,那么它将成为业余爱好者市场的利基解决方案。
这是我称之为“食物链顶端”问题的一类问题的一个实例,其中多个软件组件被编写为主要用户界面,而用户要求将它们集成到更大的系统中。