Home » 博客 » S.M.A.R.T. - 硬盘健康监控分步指南
博客

S.M.A.R.T. - 硬盘健康监控分步指南

S.M.A.R.T. How to – Step by step guide for the disks health monitoring

如果您正在运行服务器,存储基础设施的健康和可靠性是您最关心的问题之一。硬盘故障可能导致昂贵的停机时间、数据丢失以及性能下降,尤其是在正常运行时间至关重要的环境中。S.M.A.R.T.(自监控、分析与报告技术)是一项先进技术,旨在主动监控硬盘的健康状况,帮助您在问题变得严重之前及早检测潜在问题。

在本文中,我们将探讨如何实施和利用 S.M.A.R.T. 监控技术,以确保硬盘的可靠性和使用寿命,无论您的底层环境如何。

步骤一:了解 S.M.A.R.T.监控

S.M.A.R.T. 是几乎所有现代硬盘和固态硬盘(SSD)都具备的一项自监控功能。它可以监控与硬盘性能和可靠性相关的各种属性。通过跟踪诸如重映射扇区数、通电时间以及温度等属性,该技术能够为即将发生的硬盘故障提供早期预警。

在存储可靠性直接影响托管服务的可用性和数据完整性的设置中,监控这些属性至关重要。

步骤二:设置 S.M.A.R.T.在 Windows 上

如果您在 Windows 上运行,可以通过几种不同的方法实现 S.M.A.R.T. 监控,这取决于您的硬盘是通过硬件 RAID 控制器/伪 RAID(芯片上的 RAID)连接,还是作为独立硬盘连接。

RAID 配置

MegaRAID Storage Manager (MSM) 是由 Broadcom(前身为 LSI)开发的,专门用于管理和监控基于其芯片组的 RAID 控制器。对于来自其他制造商的 RAID 控制器的监控,您需要使用专门为这些特定卡开发的软件。

值得注意的是,99% 的 IPTP 控制器是 Broadcom(LSI)控制器。然而,也有其他制造商,如 Adaptec,使用完全不同的系统。我们的基础设施中也有一些这种控制器。

虽然 MSM 提供了基于图形用户界面的 RAID 阵列磁盘监控方法,但对于更深入的分析,我们仍然使用 smartctl(smartmontools 的一部分)来监控控制器后面的磁盘。以下是如何在 RAID 设置中使用 smartctl 的方法:

独立磁盘

您可以通过命令行使用 smartmontools 访问 S.M.A.R.T. 信息。安装完成后,运行以下命令以获取所选硬盘的完整健康报告:

smartctl -A /dev/sda

此命令将列出关键的 S.M.A.R.T. 属性,例如重映射扇区数、温度和通电时间。

在 Windows 上使用自动化进行调度

对于偏好自动化的 Windows 用户,您可以使用 PowerShell 脚本或批处理文件来调度任务,执行 S.M.A.R.T. 检查、创建日志或在必要时生成警报。

Step 3: 设置 S.M.A.R.T.在 Linux 上

对于在无头模式下运行的 Linux 系统,过程稍有不同。大多数 Linux 发行版默认不包含 smartmontools,即使已安装,S.M.A.R.T.服务(smartd)也可能没有开箱即用地启用。

安装 smartmontools:

使用发行版的包管理器安装 smartmontools:

  • 对于 Ubuntu/Debian:
    sudo apt install smartmontools
  • 对于 RedHat/CentOS:
    sudo yum install smartmontools

启用 smartd 守护进程持续监控:

sudo systemctl enable smartd
sudo systemctl start smartd

更改其配置文件 –

sudo nano /etc/smartd.conf

配置示例 –

DEVICESCAN -a -o on -S on -n standby,q -s (S//./02|L//6/03) -W 4,35,40 -m root

让我们分解一下这个配置:

  • DEVICESCAN: 告诉 smartd 扫描所有设备
  • -a: 监控所有属性
  • -o on: 启用自动离线测试
  • -S on: 启用属性自动保存
  • -n standby,q: 不检查磁盘是否处于待机状态,并且保持安静
  • -s (S//./02|L//6/03): 每天凌晨 2 点安排短时间自检,每周六凌晨 3 点安排长期自检
  • -W 4,35,40: 设置温度阈值(低温、高温、临界温度)
  • -m root: 将电子邮件警报发送给 root 用户

要对任何磁盘执行快速运行状况检查,请运行:

sudo smartctl -A /dev/sda

此命令将返回一个属性列表,包括当前待处理扇区计数、CRC 错误计数和温度,提供磁盘当前健康状况的总体情况。
要从磁盘收集所有可能的 S.M.A.R.T. 数据,包括健康状态,请使用以下命令:

smartctl -h # Prints the help menu
smartctl --scan # Scans for all disks
smartctl -i /dev/sda # Displays information about a disk
smartctl -H /dev/sda # Performs a fast health check
smartctl -A /dev/sda # Displays all available information for the disk

对于 RAID 配置,在 RAID 控制器可能隐藏实际物理磁盘信息的情况下,–scan 命令将显示每个磁盘的正确路径。以下是 RAID 环境中的示例输出:

smartctl --scan
/dev/bus/6 -d megaraid,12 # Disk 12 in the RAID array, SCSI device
/dev/bus/6 -d megaraid,13 # Disk 13 in the RAID array, SCSI device

一旦您知道正确的磁盘路径,请通过以下方式获取详细信息:

smartctl -A /dev/bus/6 -d megaraid,12

Linux 上的自动化

您可以设置一个 cron 任务来自动执行磁盘检查,并在发现任何令人担忧的属性时通过电子邮件通知您。

步骤四:RAID 系统中的 S.M.A.R.T. 监控

在 RAID 环境中监控单个磁盘的健康状况可能具有挑战性,因为 RAID 控制器通常会隐藏每个磁盘的详细信息。然而,Windows 和 Linux 都有相应的解决方案。

对于 Windows RAID 设置

MegaRAID 存储管理器是硬件 RAID 系统中进行 S.M.A.R.T. 监控的必备工具。它提供了深入的 RAID 阵列中每个磁盘健康状况的洞察,确保故障磁盘不会被忽视。

  • 打开 MegaRAID 存储管理器,输入 IP 地址进行登录,发现主机,选择服务器,并输入所需的用户名和密码以获得完全访问权限。

    MegaRAID Storage Manager

  • 导航到“逻辑”选项卡以查看和选择驱动器,并查看关键的驱动器信息,如产品 ID、厂商 ID,以及关键的 S.M.A.R.T. 指标,如介质错误计数和预测故障计数。

    MegaRAID Storage Manager2

对于 Linux RAID 设置

要管理和获取 RAID 阵列的 S.M.A.R.T. 信息,请使用 storcli:
sudo storcli /c0/e32/s0 show

此命令允许您提取与独立磁盘相同的 S.M.A.R.T. 指标,即使在复杂的 RAID 配置中,也能让您了解潜在的磁盘故障。

步骤五:S.M.A.R.T. 指标中需要关注的内容

并非所有 S.M.A.R.T. 属性都同样重要。以下是一些您应关注的关键指标:

  • 重新分配扇区计数: 重新分配扇区数量增加表明磁盘正在重新映射坏扇区,这可能表示磁盘即将故障。
  • 温度: 过高的温度可能导致磁盘提前故障。确保磁盘在安全的温度范围内运行。
  • 开机小时数: 该指标通过跟踪磁盘使用时间来帮助估算磁盘的使用寿命。
  • 命令超时和 CRC 错误: 这些错误可能表明磁盘与控制器之间的通信问题,通常是由于硬件故障或信号干扰。
  • 对于存储设备: 关注介质磨损指示器,以监控设备是否接近其最大读写周期。

对 SSDs 使用 hdparm:


sudo hdparm --security-erase 12345 /dev/sdX

您还可以使用 dd 命令来覆盖数据:

sudo dd if=/dev/zero of=/dev/sdX bs=4096 status=progress

此过程确保磁盘上不再残留任何私人数据,使其准备好重新使用或报废。

结论:存储设备的主动健康监控

S.M.A.R.T. 监控是确保存储设备长期健康和可靠性的高效工具。通过定期检查关键的 S.M.A.R.T. 指标、自动化检查并理解潜在故障的迹象,您可以避免意外的停机时间并延长硬件的使用寿命。

对于对正常运行时间至关重要的服务器环境,在这些环境中数据完整性最为重要,S.M.A.R.T. 监控确保您始终领先一步,避免硬件问题。无论您使用的是 Windows 还是 Linux,还是管理复杂的 RAID 阵列,本指南提供了确保基础设施保持健康和安全所需的步骤。

准备在您的服务器中实施 S.M.A.R.T. 监控了吗?通过合适的工具和自动化,您可以确保基础设施保持可靠和安全。

Request a quote

Ready to Get Started?

Request a quote