我希望以一种有点奇怪的方式配置我的服务器以创建私有云设置。
我必须使用我的存储磁盘所绑定的 HBA 并将其传递到 VM(可能是 xen),以允许创建 vSAN 类型的设置。我想这样做,以便可以在单个服务器中实现 SAN 类型设置。
当我四处询问时,人们告诉我 IOPS 不如裸机。我在我的设置中考虑到了这一点,但这让我想知道它会对系统造成多大的伤害?
也有人提到虚拟机在裸机上运行但传入了一个存储控制器会创建一个奇怪的依赖循环,因为虚拟机仍然依赖于主机的内存。除了进行故障排除之外,它真的会导致性能显着下降吗?
哦,是的,顺便说一下,这里主要讨论的文件系统是 ZFS。可能在 FreeBSD(包括 FreeNAS 和 NexantaStor 之类的东西)或 OpenIndiana 上运行。
谢谢!
我不再推荐这种类型的直通设置。在大多数情况下,这是双输,尤其是在可靠性和性能方面。
当然可以,但最安全的解决方案(尤其是使用像 ESXi 这样的虚拟机管理程序)是只使用受支持的 RAID 控制器和本地存储。如果您想要 ZFS 存储,请构建独立的 ZFS 存储系统。
不过,一个真正的答案。
是的,在 VT-d 直通中运行存储可能会导致延迟或性能下降。
但想想实际的方面。首先,您的系统不会受 IOPS 限制。此存储中有多个抽象级别,您使用虚拟机这一事实表明,与裸机相比,您可以权衡取舍。
您真正应该关心的是该解决方案是否有效!VT-d 可能是喜怒无常的,并不适用于每个适配器。
所以用你的工作量来测试你自己吧!
免责声明:我没有使用 Xen 的经验,所以我写的是关于 ESXi,但概念是相似的。
至于您最初的问题“如何通过直通测试裸机和 VM 之间的性能差异?” :
您的设置如下:
首先,将您的管理程序安装到 U 盘上并进行配置。将您的 SSD 分成 2 片。像往常一样在第一个切片上重新启动并安装您的裸机操作系统。将您的 HBA 与您的其他磁盘一起使用,并为您的性能测试配置一个或多个池。做这些测试并写下结果。您至少应该使用所需的协议(iSCSI、NFS、SMB)从命令行和网络性能测试本地性能。如果可能,还要测试 SSD(并非绝对必要)。如果完成,请导出您的池。
然后,重新启动(我假设您有远程控制台,因此您可以远程执行此操作),从您的 USB 记忆棒而不是本地 SSD 启动。现在使用 SSD 的第二个切片创建一个跨越整个切片 2 的虚拟文件系统。在此 VFS 上,从与以前相同的 ISO 安装您的系统,但现在作为虚拟机。在管理程序中设置直通并将一个物理 NIC 和您的 HBA 分配给这个新 VM。还要为这个虚拟机分配至少一个虚拟网卡(或者更多,如果你想测试不同的类型)。将尽可能多的 RAM 分配给 VM,以使条件相似。
然后启动 VM,配置并从 VM(通过 VNC 或 SSH)再次导入您的池。您现在可以对物理和虚拟适配器执行与以前相同的测试(本地和远程),并注意任何差异。此外,您可以创建第二个 VM,但现在位于从您的池提供的共享 NFS 或 iSCSI 卷上。在这个 VM 上的测试可以告诉你很多关于你以后作为 VM 主机的用例。
超出性能指标的一些想法。我有点喜欢这个设置有几个原因:
当然,也有缺点。ewwhite 提到了一个,硬件需要匹配。此外: