FreeBSD VMware 和 CAM 状态:SCSI 状态错误

FreeBSD VMware 和 CAM 状态:SCSI 状态错误

我在 VPS(VMware)上运行 FreeBSD 10.1-RELEASE-p19。

我的 ISP 正在经历快速的数据增长,这些消息在一周前开始自发出现在我们的日志中。

Sep 25 09:00:50 srv03 kernel: (da0:mpt0:0:0:0): SCSI status: Busy
Sep 25 09:00:50 srv03 kernel: (da0:mpt0:0:0:0): Retrying command
Sep 25 09:00:50 srv03 kernel: (da0:mpt0:0:0:0): WRITE(10). CDB: 2a 00 03 f9 6c 22 00 00 40 00
Sep 25 09:00:50 srv03 kernel: (da0:mpt0:0:0:0): CAM status: SCSI Status Error

有时服务器会完全失去与存储的连接,然后崩溃并重新启动。这种情况通常每隔一小时就会发生一次,可能是由于例行工作(迁移/备份)造成的。

直到我的 ISP 添加了更多的存储系统,这将降低存储的负载,我真的想尝试做些事情。

我发现了这一点,但不确定如何修补/使用这些信息: https://svnweb.freebsd.org/base?view=revision&revision=278111

我也发现了这个(vfs.unmapped_buf_allowed=0),但我不确定这是否相关? https://www.freebsd.org/releases/10.1R/errata.html#open-issues

camcontrol tags da0 -v

(pass1:mpt0:0:0:0): dev_openings  127
(pass1:mpt0:0:0:0): dev_active    0
(pass1:mpt0:0:0:0): devq_openings 127
(pass1:mpt0:0:0:0): devq_queued   0
(pass1:mpt0:0:0:0): held          -1
(pass1:mpt0:0:0:0): mintags       2
(pass1:mpt0:0:0:0): maxtags       255

gstat发生错误时的信息: 在此处输入图片描述

如有任何想法、提示或意见,我将非常非常感激。

谢谢!

答案1

如果您使用的是 VMWare,因此 mpt(4) 是纯虚拟的,我建议将其更改为更简单的版本,例如 ICH10。

否则,我建议您尝试camcontrol tags增加或减少队列长度。

如果您选择使用其他驱动程序重新配置磁盘,请注意 SAS -> SATA 控制器更改可能会导致设备命名更改,可能/dev/daX会变成/dev/adaX,因此除非您使用 zfs 或通过磁盘标签安装磁盘,否则您必须编辑/etc/fstab

至于您的gstat输出 - 显然存在问题,可能是 FreeBSD 中虚拟环境支持的性质造成的。600% 的负载是无稽之谈。我建议您将此问题报告给 FreeBSD Bugzilla。

PS 更改磁盘配置控制器类型的建议仍然有效。 PPS 或者。或者我会尝试将 mpt(4) 的队列长度设置为 128 甚至 64。

相关内容