我有一个 Linux md-raid raid1 阵列 (ext4 fs),带有 2 个 3TB 磁盘。在过去的几个月里,该阵列的访问和读取时间明显缓慢。ls
对记录少于 20 条的目录执行操作有时可能需要 2-3 分钟才能返回。
它似乎花费了大量时间处于“检查”状态,但即使状态为“干净”,访问和读取时间也非常慢。我没有发现系统日志中报告任何错误。唯一值得注意的是,FS 已经接近满状态有一段时间了。的输出mdadm -D /dev/md127
显示:
/dev/md127:
Version : 1.2
Creation Time : Thu Jun 20 11:34:21 2019
Raid Level : raid1
Array Size : 2930132992 (2794.39 GiB 3000.46 GB)
Used Dev Size : 2930132992 (2794.39 GiB 3000.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Sep 26 13:58:50 2021
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : giles:meta (local to host giles)
UUID : 638efea5:1e7b07d2:78fec1dc:d919dccf
Events : 8359
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
关于可能导致此问题的原因或调试建议有什么想法吗?我正在将数据复制到一组新的较大驱动器,但在 48 小时内仅复制了 301GB。
答案1
感谢您的回复。 syslog 确实显示 smartctl/smartd 报告了 sdb 上的一堆错误。我使驱动器 ( mdadm --manage /dev/md127 --fail /dev/sdb1
) 出现故障,并将其从阵列 ( mdadm --manage /dev/md127 --remove /dev/sdb1
) 中删除,之后几个小时内就完成了将数据复制到新阵列的过程。
这里给我的教训是,设置 mdadm 发送有关 raid 问题的电子邮件通知是不够的(在我手动使驱动器失败后,它立即向我发送了有关 raid 状态的电子邮件)。我需要从 smartd 设置一些自动报告,因此我可以更早地收到警告,而不仅仅是想知道磁盘 io 性能发生了什么。