通过 ESXi 的物理磁盘与通过 HBA 的性能如何?

Zac*_*c B 3 zfs storage-area-network ssd vmware-esxi nexenta

语境:

我有一个在 ESXi 上运行的 SAN 操作系统 (Nexenta)。它已经通过 VT-d 传递了几个 HBA。SAN 操作系统的所有 HBA 都已满(无空闲连接器)。我最近为 Nexenta 购买了一些 SATA SSD,并将它们直接连接到主板的板载 SATA 控制器。

我可以通过将“物理磁盘”添加到 vSphere 中的 VM 配置文件来将这些新 SSD 添加到 Nexenta VM。或者,我可以连接到其中一个 HBA,但我必须断开/移动现有磁盘,这会带来相当大的麻烦。

题:

我的问题是:假设我的 HBA 不做任何花哨的缓存等,并且具有与板载控制器(连接到新 SSD 的控制器)相同的可用总线带宽和 SATA 规格,连接通过 vSphere 磁盘将物理磁盘添加到 VM 添加功能,并将它们附加到通过 VT-d 传递到 VM 的 HBA?与本机速度相比,vSphere 磁盘添加方法是否强加了一些可能对磁盘性能产生负面影响的中继/请求转发行为?

答案的轶事很好,但统计数据更好:我知道我一开始可能不会注意到性能差异,因为 SSD 速度很快。但我已经在该领域工作了足够长的时间,我知道如果存在有问题的性能差异,它会在生产关键活动中表现出来,在最糟糕的时间:)

eww*_*ite 5

请参阅我的帖子中有关配置多合一 ZFS 设置的说明:将 ZFS 服务器作为虚拟来宾托管

如果您正在谈论创建 SSD 池或添加驱动器作为原始设备映射 (RDM),请忽略此答案的其余部分。与 RDM 相比,更倾向于运行 HBA。如果需要,请使用 SAS 扩展器。主要原因是易于移植、配置简单(您不想要thisthis)以及与您已经配置的内容保持一致。性能影响可以忽略不计。管理开销不是。


如果您考虑在提供给 ESXi 的磁盘上使用 VMDK 文件,一般的答案是您可以采用任何一种方式。性能差异可能无关紧要。这假设应用程序正在将ZIL日志或L2ARC缓存设备添加到您的虚拟化 ZFS 系统。在某些情况下,我会将 SSD 添加到物理系统并在顶部添加 VMDK 以呈现给 NexentaStor VM。在其他情况下,我可能会向实例展示整个原始驱动器。

我基于便利性与性能。如果性能绝对是最重要的,我们就不会虚拟化存储,对吗?便利部分具有灵活性,可以为现有系统提供合理的性能提升,而无需将整个100GB+ SSD专用于 ZIL(我只需要 4GB)。如果我在其他方面受到限制,这为 L2ARC 留下了空间。

所以我的问题是:

  • ESXi 是否支持/识别您主板的 SATA 控制器?是6G吗?
  • 你在干嘛?齐尔?L2ARC?两个都?这很重要,因为 L2ARC 不会大量写入,并且读取性能将取决于您的数据集和缓存命中率。如果是 ZIL,您需要低延迟写入,并且需要确保您选择的设备不会减慢您的速度
  • 你检查过你的读/写配置文件吗?arcstatarcsummaryzilstat会让你深入了解什么是可能的。这也是测试这一点的好方法。尝试使用 ESXi 提供的 VMDK 并确定代表性工作负载下的瓶颈。
  • 您将添加什么类型的 SSD?您在谈论 SATA,因此立即排除了可用的高端 SAS SSD。你会使用 6G SATA SSD 吗?