我正在寻找configuration我的服务器在一个奇怪的方式创build一个私有云设置。
我必须把我的存储磁盘绑定的HBA传递给一个虚拟机(可能是xen),以便创build一个vSANtypes的设置。 我想这样做,所以我可以在单个服务器中实施SANtypes设置。
当我问到人们在告诉我时,IOPS不会像裸机一样好。 我把这个考虑到了我的设置中,但是让我想知道这会伤害系统多less?
也有人提到,在裸机上运行的虚拟机,但有一个存储控制器通过创build一个奇怪的依赖性循环,因为虚拟机仍然依赖主机的内存。 除了排除故障之外,是否真的会导致性能显着下降?
噢,顺便说一下,这里主要讨论的文件系统是ZFS。 可能运行在FreeBSD上(包括FreeNAS和NexantaStor)或OpenIndiana。
谢谢!
一个真实的答案,但。
是的,在VT-d直通中运行存储可能会导致延迟或性能下降。
但是想想实际的方面。 你的系统首先不会被IOPS绑定。 在这个存储中有几个抽象层次,事实上你使用的是虚拟机,这说明你和裸机相比可以做得更好。
您应该真正关心的是解决scheme是否可以工作! VT-d可能是脾气暴躁的,并不适用于每个适配器。
因此,请testing您的工作量!
我不推荐这种types的传递设置了。 在大多数情况下,这是一个双赢,特别是在可靠性和性能方面。
这当然可以完成,但最安全的解决scheme(尤其是像ESXi这样的pipe理程序)只是使用受支持的RAID控制器和本地存储。 如果您需要ZFS存储,请构build独立的ZFS存储系统。
免责声明:我没有Xen的经验,所以我写了关于ESXi,但概念是相似的。
至于你最初的问题: “如何testing裸机和虚拟机之间的性能差异? :
你的设置如下:
首先,将您的虚拟机pipe理程序安装到USB存储棒上进行configuration。 将您的SSD分区为2片。 重新启动并安装您的裸机操作系统,就像您通常在第一片上执行操作一样。 将HBA与其他磁盘配合使用,并为性能testingconfiguration一个或多个池。 做这些testing并写下结果。 您至less应该使用所需的协议(iSCSI,NFS,SMB)从命令行和networking性能testing本地性能。 如果可能的话,也testingSSD(不是绝对必要的)。 如果完成,导出您的池。
然后,重新启动(我假设你有远程控制台,所以你可以远程做到这一点),从你的USB棒,而不是本地SSD启动。 现在使用SSD的第二片来创build跨越整个切片的虚拟文件系统2.在这个VFS上,使用与以前相同的ISO来安装您的系统,但现在是虚拟机。 在虚拟机pipe理程序中设置passthrough,并将一个物理网卡和HBA分配给这个新虚拟机。 还要为此虚拟机分配至less一个虚拟网卡(如果要testing不同的types,则分配至less一个虚拟网卡)。 将尽可能多的RAM分配给虚拟机以使条件类似。
然后启动VM,configuration并从VM(通过VNC或SSH)再次导入您的池。 您现在可以对物理适配器和虚拟适配器执行与以前(本地和远程)相同的testing,并记下任何差异。 另外,您可以创build第二个VM,但现在位于从池中提供的共享NFS或iSCSI卷上。 在这个虚拟机上的testing告诉你很多关于你以后的用例作为VM主机。
除了性能指标外的一些想法 我有点像这样的设置有几个原因:
当然,这有缺点。 ewwhite提到了一个,硬件需要匹配。 另外: