有哪些适用于 Linux 的 VM 技术,它们的优缺点,以及推荐用于哪个应用程序?
由于此类问题可以针对“Linux VM 技术”以外的 X 提出,并且由于答案随着进度而变化,因此我建议为此类页面定义一个模板。这些页面将带有“stateoftheart”标签,每个月都会重新访问它们,每个月都会有最新的技术列表、最新的评论和最新的建议。
有哪些适用于 Linux 的 VM 技术,它们的优缺点,以及推荐用于哪个应用程序?
由于此类问题可以针对“Linux VM 技术”以外的 X 提出,并且由于答案随着进度而变化,因此我建议为此类页面定义一个模板。这些页面将带有“stateoftheart”标签,每个月都会重新访问它们,每个月都会有最新的技术列表、最新的评论和最新的建议。
这是……维基百科的工作!
现在明显的东西已经不碍事了......
Linux 在我使用过的每个 VM 主机上都可以作为来宾运行良好,所以我假设您将 Linux 称为主机操作系统。我还将假设 x86 或 amd64 硬件。
平台虚拟化分为两种主要形式:桌面虚拟化和服务器虚拟化。这两种类型都允许您作为来宾加载和运行多个操作系统实例,通过主机操作系统虚拟化其 I/O。桌面虚拟化专注于为每个来宾 VM 提供高度交互的控制台体验,而服务器虚拟化专注于最大化计算性能,通常同时牺牲控制台服务和更奇特的设备(声卡、USB 等)。服务器虚拟化实现通常包括RDP或VNC用于远程访问虚拟控制台。
在 Linux 上,您对桌面虚拟化的选择包括:
在 Linux 上,您对服务器虚拟化的选择包括:
对于我自己,我坚持使用 VMware Workstation(7 年以上)和 VMware Server 来满足我的 Linux 托管虚拟化需求。在工作中,它是 VMware Workstation(在 Windows 上)、VMware Server(在 Windows 上)和 VMware ESX(在裸机上)。我可能会在某个时候再看看 Xen、KVM 和 VirtualBox,但现在工作和家庭之间的兼容性是最重要的。
W Craig Trader 的回答很好,但要补充一点,还有用户模式 Linux (UML),它已经存在了一段时间——它从 2.6.0 开始就在主线内核树中。请注意,我自己没有使用它。
Ubuntu 更喜欢 KVM,我相信 Red Hat 现在也正在转向它而不是 Xen。KVM 和 Xen 都可以由libvirt管理,也可以通过虚拟机管理器GUI 进行管理。虚拟机管理器可以通过 ssh 连接管理远程实例。
此外,可以在这里找到一个很好的比较(pdf)。做了很多性能测试。简短的版本是 xen 和 linux-vserver 通常在性能方面是最好的。