delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

18 Sep 2012

LSI SAS HBA固件

最近我厂对 LSI 6Gb/s SAS HBA 的驱动 (mps(4)) 进行了改进,令其可以在 FreeBSD 环境中进行固件刷写操作。目前最新的固件版本是 14,这个版本修正了目前已知的全部问题。

以前一直没有太注意,这类 HBA 卡上可以用两种固件。一种是 IT (initiator target) 固件,这类固件只提供HBA功能;另一种是 IR (integrated RAID) 固件,这类固件提供集成 RAID 功能。对于我们的应用来说,显然希望用 IT 固件,因为它的代码量要少得多,而由于减少了包含校验的冗余,卡本身的 RAID 功能在 ZFS 环境多数情况下都是有害的。

LSI 的 HBA 设计与 nanoBSD 类似,其运行环境和卡上的版本是分离的,也就是说可以进行热替,并以稍后重启的方式让固件生效,而不需要进入单用户模式或停止磁盘访问等等。

注意:在线将 IT 改换成 IR 固件,或将 IR 固件改换为 IT 固件的方法未经测试,最好是在 DOS 中进行。(其中 sas2flash -o -e 6 这部操作会对总线做一次复位,因此有相当的风险)。多数主板集成的 LSI 控制器是 IR 模式的固件,在升级时应特别注意。