FreeBSD ZFS + HBA 卡的注意事项

FreeBSD ZFS + HBA 狂喷 SYNCHRONIZE CACHE 错误讯息
好不容易 FreeBSD 9.0 上 ZFS 的 filesystem 版本升级到 5, storage pool 的版本升级到 28, 总算有个较完整的功能可用, 兴沖沖的就给他上去.

刚上去时, 系统一直狂喷
Feb 23 12:21:59 mx kernel: (da2:isp0:0:0:0): SYNCHRONIZE CACHE(10). CDB: 35 0 0 0 0 0 0 0 0 0
Feb 23 12:21:59 mx kernel: (da2:isp0:0:0:0): CAM status: SCSI Status Error
Feb 23 12:21:59 mx kernel: (da2:isp0:0:0:0): SCSI status: Check Condition
Feb 23 12:21:59 mx kernel: (da2:isp0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
Feb 23 12:21:59 mx kernel: (da2:isp0:0:0:0): Command byte 0 bit 0 is invalid
整个效能变笑能.....哭
本以为是 driver 和 HBA 卡不相容或 FreeBSD 版本问题, 不信邪先把硬碟格式化成 UFS 反倒不会喷这个讯息出来, 这下确认了是 ZFS 在搞鬼.

因为 ZFS 在完成同步写入时, 会强制在 HBA 上执行 NVRAM 的清除作业, 这会影响效能!!

为避免此问题必须要在 /boot/loader.conf 内加入
vfs.zfs.cache_flush_disable=1
以阻止 ZFS 对 HBA 上的 NVRAM 执行 SYNCHRONIZE CACHE 指令.


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章