Virtualization

伺服器虛擬化共享記憶體

  • June 1, 2017

我和我的朋友有一個專用伺服器。我們想進行虛擬化,這樣他就有了自己的 linux 伺服器,我也有自己的。我想在這兩個虛擬機之間共享未使用的 RAM,以便在有可用 RAM 可用時執行 RAM exessive 任​​務。是否可以在兩台或多台機器之間共享未使用的 RAM?

提前致謝

如果我理解正確,您是在詢問同一主機上的兩個虛擬機是否可以“共享”RAM 資源,而不是為每個虛擬機分配大約一半的物理記憶體。

在大多數主要的虛擬機管理程序上都可以執行類似的操作,儘管它可能無法完全按照您的意願工作。該功能通常稱為“記憶體過度使用”或“記憶體膨脹”。它在後台工作的方式是,每個客戶 VM 都有一個特殊的“氣球”驅動程序,該驅動程序向客戶作業系統發出信號,表明它正在使用一塊記憶體。驅動程序使用對主機管理程序的特殊呼叫來通知它可以由管理程序回收記憶體以供其他來賓使用。

你可以想到兩個客人體內都有一個物理氣球的隱喻。當您在一位客人體內擠壓(放氣)氣球時,另一位客人體內的氣球會變大(膨脹)。客人可以決定如何為氣球充氣提供空間。

這個方案有幾個問題:

  1. 氣球驅動程序只能回收guest內部未使用的記憶體,因此共享是合作的。如果一個虛擬機的應用程序碰巧佔用了記憶體,那麼另一個虛擬機就不走運了。
  2. 並非所有虛擬機管理程序都可以自動膨脹和縮小記憶體氣球。對於那些這樣做的人,它可能並不總是在您期望或想要的時候膨脹/放氣。
  3. 當氣球無法提供幫助時,記憶體過度使用的回退通常是使用磁碟上的交換空間。如果您最終不得不使用交換,那麼您可能會遇到麻煩。性能會慢到爬行。

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