Cluster

集群不感知應用程序的集群/負載平衡

  • October 1, 2012

如果我錯誤地使用了這些術語,請原諒我。

我想知道是否有任何類型的軟體可以讓我的兩台“加入”兩台電腦在一起,以便集群不知道的應用程序可以利用它們組合的計算資源?我所說的“不知道集群”是指一個並非旨在跨多個服務共享工作的應用程序。我的理解是集群是由特定應用程序通過其架構啟用的,這樣與應用程序的多個實例的消息傳遞協調工作共享。相反,我正在尋找能夠在作業系統或虛擬化級別啟用集群的東西,以便任何應用程序基本上都可以集群。

如果做不到這一點,我還想知道以下場景:我們有 3 個不同的應用程序,我們將稱為 A、B 和 C。我們有 2 台單核電腦。在任何給定時間,可以說這些應用程序的任何組合都是 CPU 密集型的。如果其中只有 2 個應用程序非常活躍,請將其中一個移至另一台伺服器。簡而言之,應用程序負載的某種動態自動改組。

我聽說過可以在執行時跨物理機遷移的虛擬機,但我想知道這是否可以自動完成以響應應用程序或 VM 的 CPU 活動?

您可以虛擬化整個作業系統映像並在這些不同的虛擬化作業系統中執行您的應用程序,並移動這些作業系統以適應您的負載。這是 ESX / 虛擬化模型。它可能可以追溯到 IBM 大型機作業系統,他們在其中虛擬化了機器,而不是製作一個可以同時執行多個程序的作業系統。

硬體到硬體的遷移並不是非常快,並且您將在每個虛擬實例上的作業系統記憶體等方面消耗大量成本。

另一種選擇是使用向客戶端程序提供單個作業系統映像但實際上同時在許多電腦上執行的東西。這個模型的一個例子是moix。Mosix 對 linux 進行了擴展,使得在某些情況下正在執行的程序可以從一個硬體移動到另一個硬體。程序本身並沒有意識到這一點(就像它通常不關心它是否在具有 2 個 CPU 的普通電腦中從一個 CPU 移動到另一個 CPU 一樣)。這會有一些成本,但可能值得研究。

引用自:https://serverfault.com/questions/50869