我的一位朋友最近提出了一个让我很感兴趣的建议:在需要同时使用多个操作系统的情况下,可以使用一个低级主机来托管两个虚拟系统,而不是双启动或使用多台计算机,该主机实际上不消耗任何资源。这样,您就可以在系统之间均匀分配计算机资源,并且可以选择一次只使用一个系统。例如:
双重启动:
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 只是虚拟机管理程序的一个客户。
虚拟机管理程序仅在启用了虚拟化辅助的硬件上工作。尽管所有当前处理器(英特尔和 AMD)都支持硬件虚拟化,但一些低端笔记本电脑和台式机不启用此功能(作为市场细分的一种手段)。
据我所知,VMWare 虚拟机管理程序占用空间最小,但成本高于 Hyper-V,后者在你已经拥有 Windows 许可证的情况下是免费的。
另一种选择是使用 Virtual Box 或其他利用硬件虚拟化但仍在主机操作系统中运行的虚拟化系统。
答案3
虚拟化两个客户操作系统的问题在于,您仍然需要一个操作系统来托管虚拟化。如果使用特殊操作系统(例如 VMWare ESXi),则可能不需要操作系统,但连接到该计算机的组件将直接连接到主机操作系统,而不是您的虚拟机。因此,您会发现自己必须使用终端服务或 SSH 远程连接到客户操作系统,因为屏幕、键盘和鼠标都连接到主机操作系统。
这种虚拟化方式仅对不打算用作工作站的服务器才真正有用。
如果您担心双启动的限制,并且更常使用一个操作系统,那么主机应该是您最常使用的操作系统。例如,如果您更常使用 Windows,那么可以在 Windows 上安装虚拟化软件,并安装 Linux 作为客户操作系统。
编辑:我说您必须远程连接是错误的。Microsoft Hyper-V 是一个允许您从主机控制客户操作系统的解决方案示例,但我认为它对其他操作系统的支持有限,并且设置起来并不容易。