2

我正在研究使用虚拟机来托管多个操作系统,并且正在研究有很多免费解决方案。我对管理程序是什么以及为什么它们与“标准”虚拟机不同或更好感到困惑。当我的意思是标准时,我将使用基准虚拟机 VMWare Server 2.0。

对于具有 4 GB 内存的双核系统,最多可以运行 3 个虚拟机。哪个是最好的选择?管理程序或非管理程序,为什么?我已经阅读了 Wikipedia 文章,但技术细节超出了我的想象。我需要一个关于这些不同 VM 风格能为我做什么的基本答案。

我的主要问题与我将如何在多个环境中进行测试有关。我担心操作系统的隔离,因此我可以同时在多个操作系统上测试应用程序。此外,哪种风味可以更近距离地体验真实机器的运行方式?

我正在考虑以下几点:

(管理程序)

  • 超V

(非管理程序)

  • 虚拟盒子
  • VMWare 服务器 2.0
  • 虚拟电脑 2007

*我列出的虚拟机分类可能不正确。

4

2 回答 2

5

主要区别在于 Hyper-V 不运行在操作系统之上,而是与系统一起运行在称为管理程序的薄层之上。Hypervisor 是一种计算机硬件平台虚拟化软件,它允许多个操作系统同时在主机上运行。

许多其他虚拟化解决方案使用其他技术,如仿真。有关更多详细信息,请参阅维基百科

于 2009-03-07T08:13:49.323 回答
5

免责声明,以下所有内容(广泛)都是我的意见。

将虚拟机监视器(管理程序)视为一个非常小的微内核很有帮助。除了访问底层硬件之外,它几乎没有什么工作,例如监控事件通道和授予来宾域访问特定资源..同时执行某种调度程序。

所有来宾机器都完全不理会其他机器,隔离是真的。客人不与特权客人(或彼此)共享记忆。因此,在这种情况下,就 VMM 而言,您可以(大致)将每个客人(甚至是特权客人)视为一个进程。通常,第一个客人获得额外的特权,以便它可以管理其余的。这是虚拟机投入生产并向世界公开时使用的理想技术。

此外,可以对一些客户机进行修补以了解虚拟机管理程序,从而显着提高其性能。

另一方面,我们有诸如 VMWare 和 QEMU 之类的东西,它们依赖于主机内核来使其能够访问裸机和足够的内存来存在。他们假设所有客人都需要提供一台完整的机器,对呈现这些(或多或少)过程的限制成为虚拟机的限制。我说或多或少是因为设备映射器 QoS 并不常见。这是在其他操作系统或其他架构中尝试代码的理想解决方案。很多人将 QEMU、Simics 甚至有时 VMWare(取决于产品)称为“模拟器”。

对于生产推出,我使用 Xen,对于测试我刚刚交叉编译的东西,我使用 QEMU、Simics 或 VirtualBox。

如果您只是在各种操作系统和架构上测试/滚动新代码,我强烈推荐#2。如果您的需要是自省(即,当坏程序在客户机中运行时观察客户机内存变化)......在回答之前我需要更多解释。

于 2009-03-07T08:43:06.680 回答