【硬件相关】SMART硬盘健康状态监测

文章目录

    • 一、前言
      • 1、SMART技术介绍
      • 2、SMART功能作用
      • 3、SMART运行原理
    • 二、部署实践
      • 1、SMART软件安装
      • 2、SMART操作命令
        • 2.1、状态查询
        • 2.2、健康测试
      • 3、SMART信息解读
    • 三、异常预测

一、前言

Wikipedia: Self-Monitoring,_Analysis_and_Reporting_Technology

1、SMART技术介绍

S.M.A.R.T,即Self-Monitoring Analysis and Report Technology(自我检测、分析及报告技术),是一种自动的硬盘状态检测与预警系统规范。
通过在硬盘硬件内的检测指令对硬盘部件(如磁头、盘片、马达、电路等)运行情况进行监控,记录并于硬盘厂商设定预期安全值进行比对,若监控情况将要或已超过预设安全值的范围,则通过主机的监控硬件或软件自动向用户作出警告,并进行轻微的自动修复,以保障硬盘数据安全,目前大部分硬盘均配备该项技术。

在这里插入图片描述

2、SMART功能作用

该项技术可以让硬盘更稳定运行,主要表现在以下几个方面:

  • 当硬盘的损坏程度还在软件的可修复的范围(通常由厂商决定),软件就会自动修复,防止数据的进一步损坏,同时报告异常值,异常程度为警告
  • 当硬盘的损坏程度已经超出软件的可修复的范围(通常由厂商决定),软件则会尽最大能力防止再次写入数据的丢失(如避开已损坏扇区),同时会报告异常值,异常程度为危险
  • BIOS自检时,主板会检测硬盘的S.M.A.R.T.信息,如果硬盘的异常程度为危险时,会提醒用户及时备份数据(如嗡鸣声或上报告警信息)

3、SMART运行原理

该技术所需数据被存放在硬盘物理盘面最前面的磁道中,由硬盘厂商将相关管理程序和数据写入该磁道中,包括加解密程序,自监控程序,自修复程序等,主机的监控软件可以通过“SMART RETURN STATUS”的命令读取S.M.A.R.T.信息,且这些信息不允许被用户直接修改。

二、部署实践

官网地址:smartmontools

1、SMART软件安装

下载页面:Download

Smartmontools(S.M.A.R.T. Monitoring Tools)是一组实用程序,包括smartctl和smartd两部分,用于控制和监控S.M.A.R.T信息,适用于大部分ATA、SCSI和NVMe硬盘
Smartmontools可以显示由S.M.A.R.T监测到的硬盘问题,通知即将可能会发生的故障,提示用户及时备份数据

  • Windows系统
    官网下载已编译好的exe程序,直接执行安装即可

  • Linux系统
    使用在线源直接安装即可

# CentOS
yum install smartmontools -y
# Ubuntu
apt-get install smartmontools -y

2、SMART操作命令

2.1、状态查询
  • smartctl -a <device-path>:获取硬盘所有SMART信息
  • smartctl -i <device-path>:获取硬盘标识信息
  • smartctl -x <device-path>:获取硬盘所有信息
  • smartctl -A <device-path>:获取硬盘SMART厂家预设属性及数值
  • smartctl -H <device-path>:获取硬盘健康状态
    注:PASSED表示硬盘健康状态良好
2.2、健康测试
  • smartctl -t short <device-path>:后台检测硬盘,消耗时间短
  • smartctl -t long <device-path>:后台检测硬盘,消耗时间长
  • smartctl -C -t short <device-path>:前台检测硬盘,消耗时间短
  • smartctl -C -t long <device-path>:前台检测硬盘,消耗时间长

3、SMART信息解读

Known ATA S.M.A.R.T. attributes
硬盘SMART检测参数详解[转]

[root@node152 ~]# smartctl -a /dev/sdp
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE1 Raw_Read_Error_Rate     0x000f   077   064   044    Pre-fail  Always       -       510016003 Spin_Up_Time            0x0003   092   091   000    Pre-fail  Always       -       04 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       4085 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       07 Seek_Error_Rate         0x000f   093   060   045    Pre-fail  Always       -       19093628589 Power_On_Hours          0x0032   051   051   000    Old_age   Always       -       4322210 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       012 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       404
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   098   000    Old_age   Always       -       13 13 13
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   061   047   040    Old_age   Always       -       39 (Min/Max 35/42)
191 G-Sense_Error_Rate      0x0032   066   066   000    Old_age   Always       -       68816
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       1429
193 Load_Cycle_Count        0x0032   083   083   000    Old_age   Always       -       35840
194 Temperature_Celsius     0x0022   039   053   000    Old_age   Always       -       39 (0 19 0 0 0)
195 Hardware_ECC_Recovered  0x001a   077   001   000    Old_age   Always       -       51001600
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       10
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       39924h+21m+27.906s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       586625564824
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       251070645683
  • 1 Raw_Read_Error_Rate
    该值为厂商指定的原始值,从硬盘读取数据时发生的硬件读取错误率相关的数据,原始值对于不同厂商有不同的结构,且通常没有十进制数的意义;对于某些驱动器,这个数字可能会在正常操作期间增加,而不一定意味着错误;

  • 3 Spin_Up_Time
    该值表示为主轴平均旋转时间(从0转速到完全运转耗费时长,单位为毫秒)

  • 4 Start_Stop_Count
    该值表示为主轴启动/停止的次数(启停计数),即硬盘主轴电机启动/停止次数累计,系统一些功能如硬盘休眠功能等会使得硬盘启动/停止次数大大增加

  • ※ 5 Reallocated_Sector_Ct
    参数值通常应为0
    该值表示为重映射扇区的次数,原始值表示已经找到并重新映射的坏扇区的计数,因此,属性值越高,驱动器必须重新分配的扇区就越多。这个值主要用来衡量驱动器的预期寿命; 如果一个驱动器有任何重新分配,那么它在最近几个月内失败的可能性就会大大增加

  • 7 Seek_Error_Rate
    该值为厂商指定的原始值,表示为磁头寻道误差率。如果机械定位系统出现部分故障,就会产生寻找误差。这种故障可能是由于许多因素造成的,如伺服系统的损坏,或硬盘的热扩展。原始值对于不同的供应商具有不同的结构,并且通常没有十进制数的意义。对于某些驱动器,这个数字可能会在正常操作期间增加,而不一定意味着错误

  • 9 Power_On_Hours
    该值表示为开机状态下的小时数,默认情况下,通常硬盘总预期寿命为5年(7x24小时不间断运行,即运行总小时数可达43800 h)

  • 10 Spin_Retry_Count
    该值表示为旋转尝试启动的重试次数,记录了主轴电机启动后在规定时间内未达到额定转速而再次启动的次数,该属性值的增加是硬盘机械子系统出现问题的标志

  • 12 Power_Cycle_Count
    该值表示为通电周期次数,即硬盘电源开关次数累计,通常硬盘通电/断电只会在主机开机/关机时才会发生,主机经历一次开关机次数才会加1

  • ※ 187 Reported_Uncorrect
    参数值通常应为0,当出现不为0数值时,则需要考虑备份硬盘数据
    该值表示为无法使用硬件ECC恢复的错误次数

  • ※ 188 Command_Timeout
    参数值通常应为0
    该值表示为因硬盘超时而终止的操作次数

  • 189 High_Fly_Writes
    该值表示为因磁头写入高度出现偏差的次数,硬盘厂商实现了一个磁头写入高度传感器,通过检测磁头何时飞出其工作范围,来为写操作提供额外的保护;如果磁头的写入高度出现偏差,则停止写入进程,并将信息
    重新写入或换一个位置写入

  • 190 Airflow_Temperature_Cel
    该值表示为硬盘内部盘片表面的气流温度

  • 191 G-Sense_Error_Rate
    该值表示为硬盘受到外部冲击、振动导致出错的频度

  • 192 Power-Off_Retract_Count
    该值表示为硬盘意外断电的次数,通常主机正常关机时会给硬盘一个通知,当出现意外断电时,硬盘在未收到关机通知突然失电,此时磁头自动复位,迅速离开盘片

  • 193 Load_Cycle_Count
    该值表示为硬盘磁头加载/卸载次数

  • 194 Temperature_Celsius
    该值表示为硬盘当前温度,通常建议运行温度不要超过45°(最高温度不超过60°),避免温度过高引起机械变形,导致寻道及读写错误率上升,降低硬盘性能

  • 195 Hardware_ECC_Recovered
    不同厂商具有特定的数据架构,该数据量大小不能直接说明问题
    该值表示为硬盘通过ECC技术校正错误的次数,ECC(即Error Correcting Code)技术可以容忍错误,将错误自动修正,使得读写操作持续进行,不因错误而中断

  • ※ 197 Current_Pending_Sector
    参考:How to Fix Current Pending Sector Count Warning
    参数值通常应为0,当出现非0情况且参数值在不断增加时,需考虑及时备份数据,避免文件系统损坏,硬盘变为RAW格式
    该值表示为硬盘当前尚未重映射的不稳定扇区数量,当不能从扇区写入或读取数据时,这些扇区会被标记为坏扇区,并重新映射分配写入到硬盘备用扇区
    当坏扇区被重映射时,5 Reallocated_Sector_Ct(重映射扇区次数)参数值也会增加,当硬盘没有空闲扇区可以重映射时,197 Current_Pending_Sector(当前尚未重映射的不稳定扇区数量)参数值也会增加

  • ※ 198 Offline_Uncorrectable
    参考: What Does Uncorrectable Sector Count Mean & How to Fix It
    参数值通常应为0,当出现非0情况且参数值在不断增加时,表明读写硬盘扇区时存在许多不可纠正的错误,该错误可能损坏或造成硬盘永久性故障,导致数据丢失
    该值表示为读写扇区发生不可纠正错误的总数

  • 199 UDMA_CRC_Error_Count
    参考:How to Fix UDMA CRC Error Count? Here Are 5 Solutions!
    当参数值不为0且在不断增加时,表明硬盘控制器->数据线->硬盘接口链路存在问题,数据线损坏或者接口接触不良都可能会导致出现此问题(数值不再继续增加表示问题已解决)
    该值表示为硬盘Ultra DMA CRC错误次数,表明主机和硬盘之间数据传输存在问题,UDMA (Ultra DMA)是超直接存储器访问(Ultra Direct Memory Access)的缩写,它是一种硬盘驱动器技术,允许硬盘驱动器直接与内存通信,而不依赖于CPU;CRC代表循环内存校验(Cyclic Memory Check),这是一个校验和,可以检测数据是否损坏

  • 240 Head_Flying_Hours
    该参数值表示为硬盘定位磁头期间所花费的时间

  • 241 Total_LBAs_Written
    该参数值表示为硬盘LBA写入总数

  • 242 Total_LBAs_Read
    该参数值表示为硬盘LBA读取总数

三、异常预测

基于随机森林算法进行硬盘故障预测
Making Sense of SSD SMART Stats

backblaze是一家领先的云存储服务提供商,为企业、开发人员、IT专业人员和个人构建应用程序、托管内容、管理媒体、备份和存档数据提供了基础
自2013年以来,backblaze每季度会发布其数据中心硬盘的统计数据和相关分析(具体可参考Hard Drive Data and Stats)

backblaze根据其数据中心硬盘监控数据,分析HDD故障和SMART属性之间的关联性(具体可参考What SMART Stats Tell Us About Hard Drives),
发现SMART 5、187、188、197、198与HDD故障的相关率最高,SMART属性相关说明如下

SMART编号SMART名称相关说明
SMART 5Reallocated Sectors Count重映射扇区次数(当出现坏扇区时,会触发重新映射分配写入备用扇区)
SMART 187Reported Uncorrectable Errors无法使用硬件ECC恢复的错误次数
SMART 188Command Timeout因硬盘超时而终止的操作次数
SMART 197Current Pending Sector Count当前尚未重映射的不稳定扇区数量
SMART 198Uncorrectable Sector Count读写扇区发生不可纠正错误的总数

正常情况下,这5个SMART属性值应为0,当出现全部非0情况,对应硬盘出现故障的概率会很大

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G网络架构与组网部署01--5G网络架构的演进趋势

目录 1. 5G网络架构的演进趋势 1.1 5G移动通信系统整体架构 1.2 4G移动通信系统整体架构 1.3 4G与5G移动通信系统整体架构对比 1.4 核心网架构演进 1.5 无线接入网演进 1. 整体架构组成&#xff1a;接入网&#xff0c;核心网 2. 5G网络接入网和核心网对应的网元&#xff…

es集群的详细搭建过程

目录 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安装 VMware Workstation 15 Pro的安装与破解 VM新建虚拟机 VM新建虚拟机 二、集群搭建 打开新建好的服务器&#xff0c;node1&#xff0c;使用xshell远程连接 下载es&#xff1a;https://www.elastic.co/cn/down…

内网穿透的应用-如何修改Nginx服务location代理转发规则结合cpolar实现无公网ip环境访问内网站点

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载好后解压进入nginx目…

【S32DS报错】-5-提示Secure Debug might be enabled on this device错误

【S32K3_MCAL从入门到精通】合集&#xff1a; S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 问题背景&#xff1a; 在S32DS IDE中使用PEmicro&#xff08;Multilink ACP&#xff0c;Multilink Universal&#xff0c;Multilink FX&#xff09…

自适应控制算法讲解-案例(附C代码)

目录 一、自适应控制算法的基本原理 二、自适应控制算法分类 三、案例 3.1自适应PID控制 1&#xff09; 模型识别 2&#xff09;动态调整PID参数逻辑 3&#xff09;PID控制器 自适应控制算法是一种高级控制算法&#xff0c;用于处理那些参数不确定或者动态变化的系统。这类…

SwiftUI 在 App 中弹出全局消息横幅(下)

功能需求 在 SwiftUI 开发的 App 界面中,有时我们需要在全局层面向用户展示一些消息: 如上图所示:我们弹出的全局消息横幅位于所有视图之上,这意味这它不会被任何东西所遮挡;而且用户可以点击该横幅关闭它。这是怎么做到的呢? 在本篇博文中,您将学到以下内容 功能需求…

iOS-设置指定边圆角(左上、左下等)

以UILabel举例&#xff0c;效果图如下&#xff1a; 方法一仅支持iOS11以上 方法一&#xff1a; [_sleepStateLabel.layer setMasksToBounds:YES]; [_sleepStateLabel.layer setCornerRadius:12]; [_sleepStateLabel.layer setMaskedCorners:kCALayerMinXMinYCorner | kCALaye…

个人项目介绍3:火车站篇

项目需求&#xff1a; 一比一精确显示火车站主建筑和站台模型。实时响应车辆信息&#xff08;上水&#xff0c;吸污&#xff0c;换乘&#xff09;并同步显示&#xff0c;实时响应车辆进出站信息&#xff0c;并以动画形式模拟。实时响应报警信息&#xff0c;并能在三位中显示&a…

#WEB前端(CCS选择器)

1.实验&#xff1a;CCS选择器 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; 子代选择器、后代选择器、相邻兄弟选择器、类选择器、伪元素选择器&#xff08;鼠标悬停&#xff09;、ID选择器、调用选择器&#xff08;全选&#xff09; 4.代码&#xff1a; <!DOCTYPE html…

嵌入式学习 Day 29

函数: 1.函数的定义 2.函数的调用 3.函数的声明 1.函数传参: 1.赋值传递&#xff08;复制传递&#xff09; 函数体内部想要使用函数体外部变量值的时候使用复制传递 2.全局变量传递 3.地址传递 函数体内部想要修改函数体外部变量值的时候使用地址传递 函数…

W5300驱动说明

W5300是一款带有硬件协议栈的网络芯片&#xff0c;内部拥有128K的缓存&#xff0c;最大支持8路socket通信&#xff0c;与MCU之间通过16位数据总线通信&#xff0c;通信速度远超W5500之类以SPI作为通信接口的网络芯片&#xff0c;特别适合对高速网络传输有需求的应用。 本次使用…

使用 helm repo add istio添加了一个helm chart repo,如何查看istio的版本呢

1. 添加chart repo helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update2. 查看版本 helm search repo istio 3. 查看版本详细信息 helm show chart istio/cni 4. 查看某个chart的历史版本 helm search repo <chart-name> --…

【Linux】信号的保存

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 信号在Linux中的保存主要涉及方面 信号的类型&#xff1a; 信号处理程序&#xff1a; 信号的传递和处理&#xff1a; 信号的阻…

面试官:你用过Collections工具类吗?

Collections工具类 1. 常用的 Collections 方法2. 代码示例 Java中的 Collections 工具类提供了一系列静态方法&#xff0c;用于对集合进行各种操作&#xff0c;如排序、查找、替换等。下面我们来看一些 Collections 工具类中常用的API和使用示例。 1. 常用的 Collections 方…

回溯算法套路③排列型回溯+N皇后【基础算法精讲 16】

46 . 全排列 链接 : . - 力扣&#xff08;LeetCode&#xff09; 思路 : 那么怎么确定选了那个数呢? 这里设置一个used表示i选没选过 ; class Solution { public:vector<vector<int>> ans;vector<int> path;void backtrack(vector<int>nums,vect…

2024年【天津市安全员B证】考试内容及天津市安全员B证实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 天津市安全员B证考试内容根据新天津市安全员B证考试大纲要求&#xff0c;安全生产模拟考试一点通将天津市安全员B证模拟考试试题进行汇编&#xff0c;组成一套天津市安全员B证全真模拟考试试题&#xff0c;学员可通过…

《Improving Calibration for Long-Tailed Recognition》阅读笔记

论文标题 《Improving Calibration for Long-Tailed Recognition》 改进长尾识别的校准工作 作者 Zhisheng Zhong、 Jiequan Cui、Shu Liu 和 Jiaya Jia 香港中文大学和 SmartMore 初读 摘要 深度神经网络在训练数据集类别极度不平衡时可能会表现不佳。最近&#xff0c…

pydub、playsound播放声音;gradio、streamlit页面播放声音;gradio 页面图像、视频及调用摄像头

1、pydub from pydub import AudioSegment from pydub.playback import playsong AudioSegment.from_wav(r"C:\Users\loong\Downloads\zh.wav") play(song)2、playsound from playsound import playsoundplaysound(r"voice.wav")3、streamlit import s…

Linux学习:初识Linux

目录 1. 引子&#xff1a;1.1 简述&#xff1a;操作系统1.2 学习工具 2. Linux操作系统中的一些基础概念与指令2.1 简单指令2.2 ls指令与文件2.3 cd指令与目录2.4 文件目录的新建与删除指令2.5 补充指令1&#xff1a;2.6 文件编辑与拷贝剪切2.7 文件的查看2.8 时间相关指令2.9 …

22.基于springboot + vue实现的前后端分离-汽车票网上预定系统(项目 + 论文PPT)

项目介绍 系统是一个B/S模式系统&#xff0c;采用Spring Boot框架&#xff0c;MySQL 数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得汽车票网上预订系统管理工作系统化、规范化。本系统的使用使管理人…