是否有任何VM主机软件支持主机群集,将所有(物理)RAM汇总到一个大的(虚拟)RAM,并将许多主机CPU(在许多PC中)映射到某些(虚拟)多核心设置?
例:
如您所见,应该能够将虚拟硬件(所有主机的总和)分割到一个(或多个)VM guest虚拟机上。
然后,节点上的所有可用硬件都应该可以被虚拟机使用,所以,例如这些PC中有2台terminal(屏幕,键盘,鼠标,游戏杆,opengl卡……),那么它们可以分别login到一个虚拟机如果一台电脑有一个USB棒,可以连接一台虚拟机。
你认为这是可能的吗? 它存在吗? 如果没有,一个人组成的团队是否可以build造呢?
最好是有一个live磁盘,它只有这个系统,还有一些控制接口,然后启动它,然后通过PXE启动所有的节点,并且可以在可用的硬件上configuration虚拟机(也许保存设置和硬盘上的数据供以后使用)
简短的回答:不。
长答:这可能不会成为可能的方式,你想象的。 问题的核心在于现代计算机的速度很快,因为在靠近的组件之间高速传输数据。 一旦这些组件开始在很远的距离上扩展(比较CPU和RAM芯片之间的距离与一个服务器中的CPU与下一个房间中的服务器中的RAM芯片之间的距离),一切都变慢了。
所以梦想场景 – 在哪里可以让虚拟机在多个主机上运行,这些主机对聚合资源池有贡献 – 是不太可能发生的。 随着时间的推移,远程数据传输速度将会提高,近距离数据传输也将会改善,并且将(可能)始终保持领先。
这就是说,今天,对于你的想法,最接近的东西是:
分布式计算和Beowulf集群: http : //en.wikipedia.org/wiki/Distributed_Computing 。 这些可以将一个软件应用程序跨越多个服务器。 不利的一面是应用程序必须专门为此架构编写,只有某些types的应用程序才真正适合。
VMWare Fault Tolerance: http : //www.vmware.com/products/fault-tolerance/ 。 这允许虚拟机在多个主机服务器上同步运行。 虽然这不会使可用资源增加一倍,但这意味着其中一台主机的损失不会中断服务器的运行。
这些东西存在,但不是“魔法” – 你所build议的可能永远不会是可行的。你可以把多台机器变成一台逻辑计算机,用于一个特定的任务,在这种情况下,你将build立一个集群。 这主要涉及您的域的任务分区 – 有自动进程迁移技术 – 但这不是魔术。
在一般情况下,您可以通过查看beowulf集群进行计算来开始。 或者用于集群数据存储的Nosql集群 。
有“ NUMA ”式的超级计算机架构,但这些仍然不是魔术。 物理硬件和cpus知道它们在逻辑上存在于一台机器上。 这些机器不是由异构计算机构成的。
只是为了表明一些要求(这只是你可以开始Googleing):
你可能会问的最大的问题是什么? 一个标准的networking命令的命令比CPU和CPU内存之间的总线慢。
这不是真的可行。 以这种方式汇集的内存意味着内核将被存储在另一台机器上,这意味着将仅存在用于上下文切换的恒定的networkingstream量,这意味着不会有用户stream量能够通过。 更好地分开处理每台机器,只在绝对需要的地方共享数据。
你看看真正的应用程序集群(RAC)。 一个Oracle产品可以在数据库服务器上做二十年。 VMware正在尝试使用Microsoft Cluster Services来实现这一目标,但更像高可用性解决scheme而不是CPU /内存聚合。 这种types的集群需要密集的主机间通信来共享内存和locking/解锁共享资源,所以即使我们可以使用Oracle的现有的cluserware / services,您的应用程序也将无法共享内存跨物理服务器。 没有应用程序环境/开发人员足够写这样的应用程序。 英国图灵奖获得者之一,在20多年前为其开发了一种语言,但其实施在工业上从未成功。