AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 753981
Accepted
ianc1215
ianc1215
Asked: 2016-02-05 04:09:24 +0800 CST2016-02-05 04:09:24 +0800 CST 2016-02-05 04:09:24 +0800 CST

如何确定 VT-d 与裸机的性能损失?

  • 772

我希望以一种有点奇怪的方式配置我的服务器以创建私有云设置。

我必须使用我的存储磁盘所绑定的 HBA 并将其传递到 VM(可能是 xen),以允许创建 vSAN 类型的设置。我想这样做,以便可以在单个服务器中实现 SAN 类型设置。

当我四处询问时,人们告诉我 IOPS 不如裸机。我在我的设置中考虑到了这一点,但这让我想知道它会对系统造成多大的伤害?

也有人提到虚拟机在裸机上运行但传入了一个存储控制器会创建一个奇怪的依赖循环,因为虚拟机仍然依赖于主机的内存。除了进行故障排除之外,它真的会导致性能显着下降吗?

哦,是的,顺便说一下,这里主要讨论的文件系统是 ZFS。可能在 FreeBSD(包括 FreeNAS 和 NexantaStor 之类的东西)或 OpenIndiana 上运行。

谢谢!

virtualization
  • 3 3 个回答
  • 2032 Views

3 个回答

  • Voted
  1. ewwhite
    2016-02-05T05:06:54+08:002016-02-05T05:06:54+08:00

    我不再推荐这种类型的直通设置。在大多数情况下,这是双输,尤其是在可靠性和性能方面。

    当然可以,但最安全的解决方案(尤其是使用像 ESXi 这样的虚拟机管理程序)是只使用受支持的 RAID 控制器和本地存储。如果您想要 ZFS 存储,请构建独立的 ZFS 存储系统。

    • 1
  2. Best Answer
    ewwhite
    2016-02-06T05:31:49+08:002016-02-06T05:31:49+08:00

    不过,一个真正的答案。

    是的,在 VT-d 直通中运行存储可能会导致延迟或性能下降。

    但想想实际的方面。首先,您的系统不会受 IOPS 限制。此存储中有多个抽象级别,您使用虚拟机这一事实表明,与裸机相比,您可以权衡取舍。

    您真正应该关心的是该解决方案是否有效!VT-d 可能是喜怒无常的,并不适用于每个适配器。

    所以用你的工作量来测试你自己吧!

    • 1
  3. user121391
    2016-03-16T07:00:54+08:002016-03-16T07:00:54+08:00

    免责声明:我没有使用 Xen 的经验,所以我写的是关于 ESXi,但概念是相似的。


    至于您最初的问题“如何通过直通测试裸机和 VM 之间的性能差异?” :

    您的设置如下:

    • 带有支持 VT-d 的 Intel Xeon CPU 的服务器级主板(有替代方案,但我会保持简单)
    • 大约 20 到 30 GB 的单个 SATA SSD,具体取决于您的操作系统(也可以是 HDD,但速度会慢一些)
    • 带有支持磁盘的 LSI 芯片的 HBA
    • 两个 Intel NIC,可以在板载或 PCIe 上或两者兼有,但它们应该是相同的型号。大多数主板已经拥有它们,但只有一些拥有 10Gbit 的。如果您使用 1Gbit,通常会在大约 4 个磁盘或单个 SSD 的情况下最大限度地提高顺序读取和写入的性能,因此我会推荐 10Gbit(内部网络在大多数情况下也是 10GBit,所以这会更有趣)。
    • 用于管理程序的 U 盘

    首先,将您的管理程序安装到 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 主机的用例。


    超出性能指标的一些想法。我有点喜欢这个设置有几个原因:

    1. 它与本地设置非常相似:如果您的服务器死机,您可以移除所有磁盘并将它们插入任何其他主机 - 如果主机具有管理程序,您可以在启动小型存储 VM 后继续使用它们;即使没有,您也已经准备好所有数据和网络共享,因为一切都在池中。使用传统设置,您将不得不担心相同类型的 RAID 控制器、文件系统支持,并且需要管理程序(或从虚拟磁盘复制数据)。
    2. 如果组件配合得好,它会出奇的稳定:如果你买了好的硬件,你的问题就会少很多;即使出现问题,您的数据也会被保存(至少如果您不禁用同步写入,您永远不应该使用虚拟机!)。即使您因任何原因丢失数据,您也会比其他文件系统更早地知道它。
    3. 它更便宜/更高效:您实际上已经虚拟化了整个 SAN,但您不需要两个机箱、两个机架空间、两个冗余电源、两个 CPU 等等。另一方面,同样的预算可以让你走得更远——而不是两台普通的服务器,你可以得到一个强大的服务器,它具有所有不错的功能(冗余电源、HBA 多路径),并且你的资源(内存、电源等)可以根据需要使用。
    4. 它很灵活:您可以为每个任务使用最好的操作系统。例如,为您的存储 VM 使用 Oracle Solaris 和 OpenSolaris、OmniOS 或 Nexenta 等 illumos 发行版,以获得它们多年来提供的所有最新功能和稳定性。然后为 Active Directory 添加 Windows Server,为内部或外部路由和网络任务添加 FreeBSD 或 OpenBSD,为应用软件或数据库添加各种 linux 发行版等等(如果你不想要开销,但想要灵活性,你可以尝试 SmartOS on裸机,尽管您的管理程序选择仅限于 KVM)。

    当然,也有缺点。ewwhite 提到了一个,硬件需要匹配。此外:

    1. 性能很可能永远不会像传统设置那样好。您可以在这个问题上投入大量资金(更多 RAM、SSD 或 NVMe 上的 ZIL、更多磁盘、仅 SSD 磁盘),但如果性能是您的首要考虑,VM 不是最佳选择,ZFS 不是最佳选择,两者加在一起也不是最好的选择。这是您无法逃避的权衡,您拥有安全性和灵活性,但不是最高性能。
    2. 您需要为开机、关机和掉电做一些小准备。经验法则:您的存储 VM 必须最先完全启动,最后完全启动。测试和计时你的靴子,以了解在启动其他机器之前必须等待多长时间。关机并不那么重要,过早关机大致等于各个虚拟机的功率损耗(这是安全的,只要您的应用程序软件和操作系统以及管理程序和存储层同意仅对任何重要的事情使用同步写入)。
    3. 更新可能会更耗时。请记住,如果您更改存储 VM,则必须关闭所有其他 VM(或将强制关闭)。所以计划更多的停机时间(这当然与您的 SAN 因更新而停机的物理设置相同)。此外,您应该彻底测试对核心功能(管理程序、网络驱动程序、虚拟网络驱动程序、存储驱动程序、存储 VM)的任何更新,因为您不希望出现导致随机 NFS 行为不稳定的错误。
    4. 你还在做备份,对吧?;)
    • 1

相关问题

  • 哪些 939 插槽芯片支持 AMD-V?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve