![队列已满时对磁盘冻结进行故障排除](https://linux22.com/image/756322/%E9%98%9F%E5%88%97%E5%B7%B2%E6%BB%A1%E6%97%B6%E5%AF%B9%E7%A3%81%E7%9B%98%E5%86%BB%E7%BB%93%E8%BF%9B%E8%A1%8C%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4.png)
我有一个系统(centos 7.8),上面安装了 k8s。
正常运行几天后(系统负载约为 30%,磁盘活动约为 60 iops,未饱和),系统进入不稳定状态,不再将任何内容提交到磁盘。从中可以看出iostat -x 5
,avgqu-sz 冻结,不再接受读写操作。
问题是我下一步应该去哪里寻找根本原因。
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 169,00 0,00 0,00 0,00 0,00 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 186,00 0,00 0,00 0,00 0,00 100,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 0,00 0,00 100,00
avg-cpu: %user %nice %system %iowait %steal %idle
11,36 0,00 1,71 86,94 0,00 0,00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 169,00 0,00 0,00 0,00 0,00 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 186,00 0,00 0,00 0,00 0,00 100,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 0,00 0,00 100,00
avg-cpu: %user %nice %system %iowait %steal %idle
11,41 0,00 1,58 87,01 0,00 0,00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 169,00 0,00 0,00 0,00 0,00 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 186,00 0,00 0,00 0,00 0,00 100,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 0,00 0,00 100,00
强制系统重置之前 /var/log/messages 中的最后日志行是:
kernel: ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20130517/exfield-389)
kernel: ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff99c2ba2513c0), AE_AML_BUFFER_LIMIT (20130517/psparse-536)
kernel: ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20130517/power_meter-339)
不过,根据这个 RedHat 帖子,这应该不是一个问题https://access.redhat.com/discussions/3871951
LE 1:偶尔我会在短时间内(不到一分钟)遇到类似的冻结,然后恢复。在 dmesg 输出中,我有:
[Lu aug 17 21:04:07 2020] hpsa 0000:06:00.0: scsi 0:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-1(+0) SSDSmartPathCap+ En+ Exp=1
[Lu aug 17 21:04:15 2020] hpsa 0000:06:00.0: device is ready.
[Lu aug 17 21:04:15 2020] hpsa 0000:06:00.0: scsi 0:1:0:0: reset logical completed successfully Direct-Access HP LOGICAL VOLUME RAID-1(+0) SSDSmartPathCap+ En+ Exp=1
LE 2:当磁盘无法再恢复并且需要重置时,设法保存 dmesg 输出。
[Lu aug 24 13:00:18 2020] hpsa 0000:06:00.0: scsi 0:1:0:0: resetting logical Direct-Access HP LOGICAL VOLUME RAID-1(+0) SSDSmartPathCap+ En+ Exp=1
[Lu aug 24 13:03:20 2020] INFO: task scsi_eh_0:332 blocked for more than 120 seconds.
[Lu aug 24 13:03:20 2020] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Lu aug 24 13:03:20 2020] scsi_eh_0 D ffff8c603fc9acc0 0 332 2 0x00000000
[Lu aug 24 13:03:20 2020] Call Trace:
因此 hpsa 进入这个永远不会完成的重置逻辑磁盘访问过程。
答案1
上次我看到磁盘 IO 停止/暂停的这种症状时,是磁盘出了问题。磁盘控制器可能开始出现故障,但盘片没有问题。
我会检查以确保您有良好的备份,并且因为它是 raid 中的系统,所以检查 scsi 控制器是否是最新的,因为它尚未将磁盘标记为坏的。