我们的 FreeNAS 文件服务器/var/log/messages
和dmesg
日志充满了:
Nov 28 14:50:00 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:50:00 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
我的直觉是交换所在的 SATA 驱动器出现问题。但 SMART 没有显示任何错误,而且我没有看到任何有关 I/O 错误的日志消息/dev/ada2
...此外,交换所在的同一物理驱动器 ( /dev/ada2
) 有一个 ZFS 分区 ( /dev/ada2p2
),它没有报告 I/O 错误或校验和错误。我很想做一个,zpool scrub
但如果它真的出现故障,我不想杀死磁盘。
我用 Google 搜索了这个错误,但结果并不确定。
FreeBSD 内核消息是什么vnode_pager_putpages: I/O error 5
意思?
(这里有一个更大的日志样本)
Nov 28 14:50:00 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:50:00 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 14:51:38 chef afpd[69440]: sys_getextattr_size: error: Result too large
Nov 28 14:52:02 chef last message repeated 969 times
Nov 28 14:52:02 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:52:02 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 14:52:05 chef afpd[69440]: sys_getextattr_size: error: Result too large
Nov 28 14:52:36 chef last message repeated 1798 times
Nov 28 14:53:27 chef last message repeated 2952 times
Nov 28 14:54:46 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:54:46 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 14:55:01 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:55:01 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 14:57:00 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:57:00 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 14:58:32 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 14:58:32 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
Nov 28 15:00:00 chef kernel: vnode_pager_putpages: I/O error 5
Nov 28 15:00:01 chef kernel: vnode_pager_putpages: residual I/O 12288 at 1
答案1
错误代码 5 是EIO
(一般输入/输出错误)sys/errno.h
。
我认为这表明您的系统尝试访问的任何设备都存在问题(很可能如您所猜测的那样死机了)。
这可能与您的交换分区无关——您收到的与此消息相关的另一条消息sys_getextattr_size: error: Result too large
来自afpd
。
我的猜测是,无论碰到什么磁盘,afpd
都可能是出现问题的磁盘,而您看到的古怪的扩展属性数据和相关错误消息可能是令人不安的底层 I/O 错误的产物vnode_put_pages()
。VOP_WRITE()
答案2
尝试购买新的 SATA 电缆。或者清除日志,然后摇动电缆,看看是否会产生此错误