我的一位朋友最近提出了一些讓我感興趣的事情:在同時需要多個作業系統的情況下,可以使用一台低階主機來託管兩個虛擬系統,而不是雙啟動或使用多台計算機,該主機消耗的資源實際上為零。您將受益於在系統之間均勻分配電腦資源,並且可以選擇一次僅使用一個系統。舉個例子:
雙啟動:
Computer
|
--------
| |
Windows Linux
單虛擬化:
Computer
|
Linux
|
Windows
雙虛擬化:
Computer
|
Host
|
--------
| |
Windows Linux
雙啟動的問題是您一次只能使用一個作業系統,而單虛擬化的問題是除非 Linux 啟動,否則您無法使用 Windows。
這種雙虛擬化思想似乎解決問題,但我想知道為什麼我以前從未聽說過它。
這個想法有什麼嚴重的缺點嗎?優缺點都有什麼?
我能想到的唯一真正的缺點是性能,這有時可能很重要,但舉個例子:我的下一台筆記型電腦將支援16 GB RAM,因此每個系統可以獲得略低於8 GB 的RAM - 綽綽有餘。
答案1
問題是你的「主機」遠遠不是一個消耗零資源的主機,它本質上就是一個作業系統本身。您最好安裝一個小型 Linux 發行版,本質上充當“主機作業系統”,並同時運行您所需的兩個作業系統。
離散作業系統主機的問題是資源管理。
誰決定什麼作業系統在什麼時間獲得什麼硬體?誰管理作業系統優先權?誰管理誰獲得地址空間中的哪部分記憶體?誰負責管理作業系統之間的 CPU 使用情況?如何處理作業系統之間的儲存設備讀取/寫入同步?
唯一真正做到這一點的方法是做這樣的事情:
Computer
|
Linux/Windows
|
--------
| |
Windows Linux
不過,如果您走到這一步,最好簡單地使用主機作業系統,而不是虛擬化本身(即,如果您使用 Windows 主機,則虛擬化 Linux,反之亦然)。
答案2
你所描述的聽起來像是虛擬機器管理程序。 VMWare 和 Microsoft 都提供瘦虛擬機管理程序,其作用只不過是提供虛擬化服務。另外,當執行 Windows Server 2008(以及 08R2 和現在的 Windows 8 Server和客戶),您可以安裝 hyper-v,它仍然將虛擬機器管理程式置於「主機」作業系統之下。從管理的角度來看,您仍然必須執行 Windows,但從技術上講,Windows 只是虛擬機器管理程式的訪客。
虛擬機器管理程式僅適用於啟用了虛擬化輔助的硬體。儘管目前所有處理器(intel 和 amd)都支援硬體虛擬化,但一些低階筆記型電腦和桌上型電腦不支援此功能(作為市場細分的一種手段)。
據我了解,VMWare 虛擬機器管理程式佔用空間最小,但成本高於 Hyper-V,假設您已經擁有 Windows 許可證,Hyper-V 是免費的。
另一種選擇是使用 Virtual Box 或其他虛擬化系統,該系統利用硬體虛擬化但仍在主機作業系統中運行。
答案3
將兩個來賓作業系統虛擬化的問題是您仍然需要一個作業系統來託管虛擬化。對於特殊的作業系統(例如 VMWare ESXi)來說,這可能是沒有的,但連接到該電腦的元件將直接連接到主機作業系統,而不是您的虛擬機器。因此,您會發現自己必須使用終端服務或 SSH 遠端連線到來賓作業系統,因為螢幕、鍵盤和滑鼠都連接到主機作業系統。
這種方式的虛擬化僅對不打算用作工作站的伺服器真正有用。
如果您擔心雙啟動的限制並且使用一種作業系統多於另一種,那麼主機應該是您最常使用的作業系統。例如,如果您更多地使用 Windows,則在 Windows 上安裝虛擬化軟體並安裝 Linux 作為來賓作業系統。
編輯:我說你必須遠端連線是不正確的。 Microsoft Hyper-V 是允許您從主機控制來賓作業系統的解決方案的範例,但我認為它對其他作業系統的支援有限且不容易設定。