我知道我们可以在一台服务器上安装 Hyper-V,并在其上运行多个虚拟机,直至达到该服务器的资源上限。我想知道是否可以在两台或多台服务器上集中安装 Hyper-V,以便虚拟机可以使用两台服务器的底层资源池?以及是否可以在“n”台服务器上(而不仅仅是 2 台服务器)实现同样的功能。
答案1
听起来你想要这个:
- Hyper-V 主机 A:4 个 CPU 插槽,64GB RAM,运行 Guest 1
- Hyper-V 主机 B:4 个 CPU 插槽,64GB RAM,运行 Guest 2
- 一些 Windows 应用程序有 8 个 CPU 插槽和 128GB RAM
这不是开箱即用的,但有些应用程序可以通过网络相互通信,并将工作分散到各个节点。例如,Memcached 和 Windows AppFabric Velocity 是缓存工具,它们可以通过相互通信随着您添加更多节点而扩展。
但这是一个应用程序问题,而不是 Hyper-V 问题。无论您使用的是物理服务器还是虚拟服务器,问题都是一样的。您要解决的业务问题是什么?我们可以谈谈进行这种扩展的应用程序吗?
答案2
啊。不。Hyper-V 就像披萨 - 你可以把一个披萨切成几片(VM#),但你不能用不同披萨的许多片来做一个披萨。
您可以集群最多 16 台服务器(需要共享 AN 存储)并在它们之间移动虚拟机 - 这对于维护等来说很有好处,但每个虚拟机都必须在一台机器上运行并从中获取所有资源。
话虽如此,你可以做类似的事情,但不能使用 Hyper-V。但你不会想要,因为这会花费你很多钱。有一家供应商拥有你所要求的技术,可以形成跨多台服务器的 VM。并不是说你能支付得起(它对硬件的要求非常高)。
答案3
您说(在评论中)“现在,问题是我不希望一台虚拟机跨越多台服务器。相反,我希望多台虚拟机跨越多台服务器,而不指定特定虚拟机应在特定主机上运行。 – user67905”
没问题,所以你实际上只是在谈论一个标准的 Hyper V 集群,这完全没有问题。要运行 Hyper V 集群,你要么需要免费的 Hyper V 服务器(尽管有些人认为它具有集群功能),要么需要企业版或数据中心版的 Windows 2008 (+-R2)。由于你正在运行虚拟机,所以你至少需要企业版,因为它额外许可了 4 个虚拟机。
安装时,只需在每个主机上激活“故障转移群集服务”功能(或者是角色,记不清了)。然后在 MMC 中打开同名群集控制台,并运行故障转移群集验证向导。这是一个非常有用的诊断程序,它将告诉您是否已正确设置了套件。通常导致错误的区域是存储。完成后,在每次调整后运行验证工具并获得健康证明后,就可以享受您的群集了。您将能够将虚拟机从一个移动到另一个,池化存储,并基本上执行您需要的操作。我不记得每个群集允许的最大主机数,但它是 12。顺便说一句,正如其他人所言,在主机之间池化内存可能毫无意义,这可能是一个昂贵的麻烦。这是一个应用程序的事情。除非你有超过 30 个虚拟机在超过 4 个主机上运行,否则我不会使用 SCVMM 或类似的东西。您将能够手动扩展虚拟机,并且利用 2008 R2 SP1 推出的新动态内存功能,您可能不会遇到任何内存限制,除非您计划让所有机器一直处于繁忙状态。