一个集群多台机器如何作为一台机器在这台看似单一的机器上运行多个虚拟机?

use*_*387 14 cluster

如何使用多台计算机并使它们成为一体,以便现在将它们的所有处理器和内存组合在一起,并且您正在运行任何应用程序,以便您在一台非常快的计算机上运行它们。这样它就可以用于运行虚拟机(在 vmware 等软件上)。

这可以用什么操作系统来完成?或者需要什么软件?

sys*_*138 15

作为具有大量内存、多个 CPU 的单个操作系统并且可以运行通常在该操作系统的非集群版本上运行的任何内容的集群类型称为单系统映像。这需要多个集群节点并按照您所说的进行,将它们合并到一个操作系统实例中。

这并不常见,因为这样的系统极难正确设计,并且在应用程序级别集群的系统而不是操作系统级别更容易设置并且通常性能更好。

性能差异的原因与假设有关。在操作系统上运行的进程假定其所有可用资源都是本地的。集群就绪进程(例如渲染农场)假定某些资源是本地的,而某些资源是远程的。由于假设的差异,资源如何分配是非常不同的。

采用像 Linux 这样的通用单节点操作系统并将其转换为 SSI 风格的集群需要对内核内部进行大量改造。内存局部性等概念(另见:)之类的在这样的系统中极其重要,并且将进程切换到不同 CPU 的成本可能要高得多。其次,Linux 中并不存在的一个概念,CPU 的本地性,也很重要;如果您有一个多线程进程,在一个节点上运行两个进程,在另一个节点上运行两个进程,其执行速度会比在同一节点上运行的所有四个进程慢得多。对于可能对这种区别视而不见的进程,由操作系统来选择本地还是远程。

但是,如果您有一个集群就绪的应用程序(例如 Chopper 列出的应用程序),该应用程序本身将做出本地/远程决策。该应用程序完全了解操作的本地与远程影响,并将采取相应的行动。


Cho*_*er3 2

没有一种超级常见的“集群”方式,它是一个术语,用于使多个服务器执行一项功能,但您可能想要执行数千种不同的功能。

例如,有一些数据库集群(比如 Oracle RAC 或 MSSQL 集群)可以配置为仅用于数据库负载的集群 - 通常是出于性能和/或弹性的目的。

其他类型的集群也是如此,比如 CGI 渲染农场,它们一起工作来渲染下一个皮克斯大片或其他什么的帧。对于用于科学计算(基因研究、粒子物理学,甚至核衰变)的集群来说也是如此。

因此,当我们谈论“集群”时,我们真正的意思是“一个执行 xxxxx 操作的集群”。

因此,如果您有一个功能想要分布在一堆服务器上,请告诉我们,我们将尝试为该用例建议一些选项。