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

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

语境:

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

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

问题:

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

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

答案1

请参阅我的帖子中有关配置一体化 ZFS 设置的说明:将 ZFS 服务器作为虚拟客户机托管

如果如果您谈论的是创建 SSD 池或将驱动器添加为原始设备映射 (RDM),请忽略此答案的其余部分。首选是通过 HBA 而不是 RDM 运行。如果需要,请使用 SAS 扩展器。主要原因是易于移植、配置简单(您不需要或者) 并与已配置的内容保持一致。性能影响可以忽略不计。管理开销则不然。


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

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

我的问题是:

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

相关内容