使用 smartctl 诊断磁盘健康状况

使用 smartctl 诊断磁盘健康状况

如何使用 smartctl 确定磁盘是否有问题?

我有一台使用软件 RAID1 的 Ubuntu 12.04 服务器,它完全没有响应。我重新启动了,它在启动时挂起并显示消息“/tmp 未就绪或不存在”,因此我跳过并启动了手动恢复终端。一切似乎都很好,只是我的 RAID 重新同步速度非常慢。但是,cat /proc/mdstat没有显示任何实际的 RAID 故障。

我提高了我的/proc/sys/dev/raid/speed_limit_min遵循说明这里,但这并没有太大帮助。我的 1TB 阵列已经重新同步了 30 分钟,但只完成了 0.3%。

因此我smartmontools使用以下命令安装并检查磁盘:

sudo smartctl --all /dev/sda
sudo smartctl --all /dev/sdb

两者都报告了“PASSED”运行状况,但 sdb 还显示了如下几行:

Error 83 occurred at disk power-on lifetime: 15147 hours
Error 82 occurred at disk power-on lifetime: 15147 hours
Error 81 occurred at disk power-on lifetime: 15147 hours
Error 80 occurred at disk power-on lifetime: 15147 hours

以及每种类型的十六进制转储。

这是什么意思?我是否应该将这些错误解释为我的 sdb 磁盘即将损坏?我该如何确认这一点?

编辑:同样相关的是,自从崩溃以来,我现在无法通过 SSH 进入服务器。我可以从物理终端正常访问它,而且似乎没有任何过载。我确保防火墙已禁用,我仍然可以 ping 服务器,但ssh myuser@myserver结果却是“连接超时”。

答案1

如果磁盘阵列中有一个磁盘掉出来了,那很可能是有原因的。我会替换故障磁盘(听起来像 sdb)并重建到该磁盘。转到智能数据。

输出中有很大一部分是smartctl -a关于智能数据结构的。这是一个由单词和数字组成的大矩阵,可以告诉您特定测试的当前阈值。您需要注意的一些重要内容包括:

  • Raw_Read_Error_Rate (ID 1)
  • Reallocated_Sector_Ct(ID 5)
  • Spin_Retry_Count (ID 10)
  • Reported_Uncorrect(ID 187)
  • Offline_Uncorrectable(ID 198)

这些都与磁盘表面的问题有关(除了 ID 10,它与主轴电机有关)。在驱动器的所有部件中,磁盘表面最容易发生故障。如果其中任何一个异常高(数百或数千),您肯定知道存在大问题。

底部的寄存器看起来像这样:

ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 00 ff ff ff 0f 错误:LBA 处的 UNC = 0x0fffffff = 268435455

在这种情况下,磁盘上出现 UNC 错误(无法纠正的读/写错误)。

我的意见是如果你看到类似这样的事情:

磁盘开机时发生错误518 寿命:16859小时

...当方便时应该更换磁盘。

SSH 问题可能与磁盘有关(可能是损坏的部分位于 SSH 二进制文件下),但这可能是您应该单独调查的其他问题。

答案2

首先确保你已经备份了。

关于 /tmp 错误,这是一个已知的错误:

https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/1091792

回复:SMART 错误:

进行长时间测试: smartctl -t long /dev/sdb

smartctl -l /dev/sdb您可以随时运行此操作。这将需要一些时间。完成后,使用 查看结果。

当然,首先要确保你已经备份了。

从您发布的内容来看,我最担心的是,您似乎突然出现了一系列错误(驱动器的活动时间不到 2 年)。但是,驱动器故障不应该导致系统崩溃(事实上,在驱动器冻结时,您应该会在日志中看到很多其他噪音)。偶尔出现错误很正常,但同时出现很多错误则需要担心。

SMART 有助于早期预警有时,你当然不能只依赖它。

所以再次备份不会有什么坏处。但我认为你没有理由恐慌。

答案3

SMART 属性表中的许多属性都是故障驱动器的有用指标。您能否使用“smartctl -data -A /dev/sdb”的输出更新您的帖子?属性表依赖于驱动器,因此除了“Reallocated_Sector_Ct”、“Offline_Uncorrectable”等相当通用的属性外,我无法列出相关的属性。维基百科页面聪明的包含大多数属性的描述。

四倍的 SMART 自检也很有用,但这些属性计数器可以立即告诉您驱动器是否出现故障。驱动器可能不会触发整体 SMART 健康警告,但显然仍处于故障状态

答案4

关于您的备份 - 等待 SMART 错误或警告进行备份为时已晚。最佳实践包括经过测试的备份计划,以及存储子系统中的足够冗余以处理预期的硬件故障。

相关内容