我有一个为我自己和我的朋友运行的服务器。我们在主启动驱动器上使用 Ubuntu 18.04 LTS 服务器托管游戏,并使用 RAIDZ2 池来存储这些游戏、音乐、电影等的备份。
每周到两周我都会遇到一个有故障的池和很多读/写错误。
me@server:/$ zpool status NAS
pool: NAS
state: ONLINE
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool
clear'.
see: http://zfsonlinux.org/msg/ZFS-8000-HC
scan: scrub repaired 0B in 3h19m with 0 errors on Sun Aug 11 07:14:28 2019
config:
NAME STATE READ WRITE CKSUM
NAS ONLINE 0 511 0
raidz2-0 ONLINE 0 200 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 3 224 0
sdf ONLINE 12 225 0
sdg ONLINE 3 226 0
sdh ONLINE 3 227 0
spares
sdb AVAIL
这些错误永远不会导致任何数据丢失,并且清理永远不会导致池必须修复任何字节。我总是必须重新启动计算机才能将池再次安装到文件系统。几个月来我一直有同样的模式。看看这个,这对我来说要么是一个磁盘坏了(sdf),要么实际上所有磁盘都在发生故障并显示出故障前的迹象。使用 SMART 运行磁盘自检总是能正常返回,在我重置计算机并运行测试后,驱动器上没有显示任何问题。我分配了一个热备用,希望在发生故障时它可以派上用场。此时我想我应该用 sdb 替换驱动器 sdf 并看看这是否可以解决问题。
所以,我的问题本质上是,当我在多个驱动器上的池中看到这样的错误时,是否总是所有驱动器都处于故障前状态,或者冗余算法是否会导致一个坏磁盘“传播”错误其他驱动器?
编辑:添加在评论中,但也为了可见性而添加在这里。我买了所有这些用过的驱动器。所有这些都直接插入电路板。我不记得确切的设置,但我认为主板上有两个芯片处理 2/3 的端口,英特尔南桥处理其余的端口 - 我没有硬件 raid 控制器。我从来没有在 sd[cd] 上出现错误,只在其他四个上出现错误,而且总是在这种模式下,[f] 最多,[egh] 较少,而且几乎相同。
答案1
每当您在多个驱动器上同时出现错误时,尤其是当它们位于同一控制器上时,控制器或布线应该是您的首要嫌疑。即使是高质量的 SATA 电缆也相当便宜,因此一个简单的尝试就是更换一个或两个驱动器的电缆,看看是否有任何区别。确保它们的两端均已牢固插入。
假设您的磁盘正确且诚实地报告 SMART 数据(远非所有消费级磁盘都能做到),您可以通过查看 SMART 属性 199, 来确认数据布线问题UDMA_CRC_Error_Count
。如果该数字正在增长,特别是如果它与报告存储错误的操作系统同时增长,则很可能存在数据布线问题。属性184End-to-End_Error
也可以提供信息。
一般来说,只要Reallocated_Sector_Ct
、Reallocated_Event_Count
、Current_Pending_Sector
和Offline_Uncorrectable
保持不变,就可以大概不是磁盘本身有问题,这会导致布线或控制器失效。关于我能想象的唯一情况,那些会留在原处但磁盘会出现问题的情况是磁头对齐问题,但如果是这样的话,您将不会只遇到一些错误。
如果您还没有这样做,那么设置您的系统以某种方式允许您跟踪一段时间内的 SMART 数据趋势可能不是一个坏主意。我倾向于发现趋势比仅仅一个时间快照和“之前的价值不是更高/更低吗?”的感觉更能提供信息。