解决 ESXi 6.7u3 + LSI SAS2308 使用 RDM 时的性能问题

解决 ESXi 6.7u3 + LSI SAS2308 使用 RDM 时的性能问题

目前我的服务器上用一块 LSI 9207-4i4e (SAS2308) 连接 16 盘位 SAS 背板。这些硬盘分别属于两个虚拟机。所以,无法将整个 LSI 9207-4i4e 直通给任何一个虚拟机使用。这个时候,硬盘直通(RDM,Raw Device Mapping)就是一个非常好的解决方案了。

但是,将硬盘直通给 Windows 10 虚拟机的时候,性能出现了问题。硬盘的读写速度降到了 20MB/s 以下!

经过几天的摸索,发现问题主要出在 SAS2308 的驱动上。另外,做硬盘直通时的设置可能也影响了读写性能(并不确定)。

首先解决驱动问题。

ESXi 6.7u3 默认使用 lsi_msgpt2 原生驱动,版本 20.00.06.00-2vmw.670.3.73.14320388。所以 reddit 老兄说要将 SAS 卡的固件回退到 20.00.06 版本(最新版本为 20.00.07)。但是刷固件太麻烦了。

于是又翻了一圈,发现可以禁用 lsi_msgpt2,让 ESXi 使用 mpt2sas 驱动。具体步骤如下:

  • 先去下载 mpt2sas version 20.00.00.00.1vmw
  • 然后安装 VIB 包
    # Enable SSH on ESXi and Upload driver VIB
    scp mpt2sas-20.00.00.00.1vmw-offline_bundle-2253936.zip root@esxi:/tmp/
    # Login to ESXi and install VIB
    esxcli software vib install -d /tmp/mpt2sas-20.00.00.00.1vmw-offline_bundle-2253936.zip
  • 最后禁用 lsi_msgpt2 驱动
    esxcli system module set --enabled=false --module=lsi_msgpt2
  • 重启服务器

至于为什么 mpt2sas 的性能比 lsi_msgpt2 要好,这就只能让 LSI 或者 VMware 的工程师来解答了。

驱动解决了之后,还要调整直通控制器的设置。

  • 去虚拟机设置里面,将 SCSI Controller 的虚拟硬件设置为 VMware Paravirtual。

重启虚拟机,硬盘性能问题解决。