语境:
我有一个在 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 留出了空间。
我的问题是: