dmesg
下面是来自重要生产服务器(RHEL 7.2 - DELL 机器硬件)的输出示例,我们可以看到sde
服务器中的磁盘正在损坏
[Wed Jun 30 11:24:58 2021] sd 0:2:4:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[Wed Jun 30 11:26:18 2021] sd 0:2:4:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[Wed Jun 30 11:26:18 2021] sd 0:2:4:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[Wed Jun 30 11:27:28 2021] sd 0:2:4:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[Wed Jun 30 11:27:46 2021] sd 0:2:4:0: [sde] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
有趣的是,这些消息是旧的2021
,我们没有看到这些消息2022/2023
基于这些事实,我想问是否应该根据以下磁盘故障消息考虑更换磁盘2021
第二个重要问题是如何通过dmesg
是否可以重新创建新的内核消息?
据我所知,重启机器也许可以解决这个问题,但我想避免机器重启
答案1
dmesg
默认情况下打印来自内核环形缓冲区的消息。
环形缓冲区是一种特殊的缓冲区,其大小始终为常数,当收到新消息时,它会删除最旧的消息,它会在系统启动时重新实例化,因此您看到的已经是最新的内核消息。
今天,当你看到近两年前的消息,再加上遗留问题RHEL 版本 7.2首先想到的是:您已经近两年没有执行任何重启了,而且似乎更长时间没有对该服务器进行任何维护!
如果您的服务器确实是从 2015 年末到 2026 年初(RHEL 版本建议的)开始的,那么首先我会检查您的备份的完整性、恢复过程和灾难恢复计划,并可能开始计划更换和升级。
如果你想在实时系统中检查磁盘健康状况:你可以尝试读取 SMART 数据和/或启动智能自检smartctl
sudo smartctl -i /dev/sde
要查看各种支持的自我检测需要多长时间的估计值:
sudo smartctl -c /dev/sde
例如开始一个简短的测试:
sudo smartctl -t short /dev/sde