我正在研究使用虚拟机来托管多个操作系统,我正在寻找有很多这些操作系统的免费解决方案.我对管理程序是什么感到困惑,为什么它们与"标准"虚拟机不同或更好.当我的意思是标准时,我将使用基准虚拟机VMWare Server 2.0.
对于具有4 GB RAM的双核系统,该系统最多可运行3个VM.哪个是最好的选择?管理程序或非管理程序,为什么?我已经阅读过维基百科的文章,但技术细节已经超出我的想象.我需要一个基本答案,了解这些不同的VM口味对我有什么影响.
我的主要问题涉及如何在多种环境中进行测试.我担心操作系统的隔离,因此我可以同时测试多个操作系统上的应用程序.还有哪种味道可以更真实地体验真机的运行方式?
我正在考虑以下事项:
(管理程序)
Xen的
Hyper-V的
(非管理程序)
VirtualBox的
VMWare Server 2.0
Virtual PC 2007
*我列出的VM的分类可能不正确.
主要区别在于Hyper-V不是在操作系统之上运行,而是与系统一起运行在称为管理程序的薄层之上.Hypervisor是一种计算机硬件平台虚拟化软件,允许多个操作系统同时在主机上运行.
许多其他虚拟化解决方案使用其他技术,如仿真.有关详细信息,请参阅Wikipedia.
免责声明,以下所有内容(广义上)是我的意见.
将虚拟机监视器(虚拟机管理程序)视为一个非常小的微内核很有帮助.除了访问底层硬件之外,它只有很少的工作,例如监视事件通道和授予访客域访问特定资源的权限..同时强制执行某种调度程序.
所有客用机器都完全忘记了其他机器,隔离是真实的.客人不与特权客人(或彼此)共享记忆.因此,在这种情况下,就VMM而言,您可以(粗略地)将每个访客(甚至是特权访客)视为一个流程.通常,第一个客户获得额外的权限,以便它可以管理其余的.这是虚拟机投入生产并暴露于世界时使用的理想技术.
此外,可以修补一些客户以了解虚拟机管理程序,从而显着提高其性能.
另一方面,我们有像VMWare和QEMU这样的东西,它们依靠主机内核来访问裸机并且存在足够的内存.他们假设所有客人都需要提供一台完整的机器,对这些(或多或少)这些过程的限制成为虚拟机的限制.我或多或少地说,因为设备映射器QoS并不常见.这是在其他操作系统或其他架构中尝试代码的理想解决方案.很多人会将QEMU,Simics甚至有时VMWare(取决于产品)称为"模拟器".
对于生产推出,我使用Xen,测试我刚刚编译的东西,我使用QEMU,Simics或VirtualBox.
如果您只是在各种操作系统和体系结构上测试/滚动新代码,我强烈推荐#2.如果你需要内省(即观看客人记忆改变,因为客人的坏程序运行)......在回答之前我需要更多的解释.