查看原文
其他

为何需要裸机型虚拟机管理程序?该怎么选?

2015-10-15 云头条

目前有两种虚拟机管理程序,可是对服务器、数据中心和云来说,只有一种是重要的:那就是裸机型虚拟机管理程序(Bare metal hypervisor)。



很久以前,就只有一种原生或裸机型的虚拟机管理程序(又叫虚拟机管理器)。上世纪80年代,本人初次接触运行虚拟机/会话式监控系统(VM/CMS)的IBM System/370大型机,但是裸机的历史却完全可以追溯到60年代。就裸机型虚拟机管理程序而言,虚拟机管理程序直接在硬件上运行。根本不需要操作系统干预。


裸机型虚拟机管理程序的正式定义可以追溯到Gerald Popek和Robert Goldberg撰写的开创性论文:《可虚拟第三代架构的规范化条件》,裸机型虚拟机管理程序在早期叫作类型1虚拟机管理程序(Type 1 hypervisor)。他们俩还定义了裸机型虚拟机管理程序的竞争对手:类型2或托管型虚拟机管理程序(Type 2, or hosted hypervisor)。


如今,裸机型虚拟机仍与我们同在。VM/CMS进化成了IBM的z/VM。还有另外许多的裸机系统。即便现在,你和你的工作人员也很可能在使用一种裸机系统。


思杰的开源XenServer驱动亚马逊网络服务公司(AWS)的服务。SPARC版Oracle VM和x86版Oracle VM都基于Xen。还有VMware的ESX和ESXi、微软Hyper-V以及惠普的Integrity VM。


虽然每家厂商的实施方法大不一样,但是本质上一样:提供一个极简的操作系统,只提供运行虚拟机所需的那部分资源。不多也不少。


另一方面,托管型虚拟机管理程序需要操作系统才能运行,在你的虚拟机与硬件之间添加了另一层。


有许多流行的托管型虚拟机管理程序。比如说,本人时常使用甲骨文VirtualBox来测试操作系统。其他流行的托管型虚拟机管理程序还有Parallels和VMware Workstation。



此外,还有基于操作系统的虚拟机管理程序,比如Linux的KVM和BSD的 bhyve,它们模糊了裸机系统和托管系统之间的界线。有了这种虚拟机管理程序,可以去掉操作系统的不必要模块,充当裸机型虚拟机管理程序。比如说,红帽企业级虚拟化(RHEV)就依赖KVM,被许多人认为是一种裸机型虚拟机管理程序。


至此,你可能注意到了托管型虚拟机管理程序的一个共同点:它们都基于桌面。也有例外,不过在2015年,这些例外其实并不重要。


正如你所见,虚拟机管理程序方面最重要的是,你从虚拟机获得的速度有多快。如果你在虚拟机与硬件之间有一个额外层,比如操作系统,这就给性能、延迟、安全和虚拟机隔离等诸多问题留下了隐患。


当然,也存在极端情况。比如说,你如果你认为,KVM其实不是裸机型虚拟机管理程序,那么仍会在一些圈子里引起激烈的争论。


就你的服务器来说,无论它只是服务器机柜中的一台至强服务器,还是数据中心中的1000台服务器,或者是私有云中的10000台服务器,你其实需要的是裸机型虚拟机管理程序。



怎么选?


就主流操作系统而言,主要有四个选择:某一种形式的KVM、ESX/ESXi、Hyper-V和Xen。对于哪一种“更好”,你可能会争论得面红耳赤;但是一般而言,它们的表现都非常出色。各自都有独特的角色好扮演。至于扮演什么角色,主要取决于你在平台和操作系统方面的其他选择。


在我看来,下面是各自最适合部署的环境。


KVM



虽然KVM作为裸机型虚拟机管理程序因用于RHEV而众所周知,但你可以从任何Linux发行版创建裸机KVM虚拟机管理程序。比如说,Debian和Ubuntu都通常用作KVM虚拟机管理程序的基础。


与任何裸机型虚拟机管理程序一样,KVM也需要特定的硬件才能运行。以KVM为例,这种硬件就是x86架构以及支持英特尔VT或AMD-V的芯片。此外,IBM最近将KVM移植到了其Power架构。


一个至关重要的问题是,KVM运行起来是不是比Xen更快。据最近的基准测试显示,答案就是,这两种Linux虚拟机管理程序几乎棋逢对手。据我所见,部署系统之间的实际区别在于各自是如何调优的。默认情况下,选择其中任何一个都关系不大。


话虽如此,如果你需要支持,RHEV可能还是最佳选择。


ESX/ESXi




与KVM一样,VMware ESX/ESXi最初是为英特尔架构设计的,时至今日仍然是这样。


我听到关于ESX和ESXi的一个最常见问题是“这两种技术之间有什么区别?”回答很简单。


VMware ESX依赖Linux作为本地服务控制台和外壳。ESXi没有这个服务控制台或Linux外壳,依赖远程管理工具。从理论上来说,这让ESXi来得更安全,因为它的攻击面比较小。


“VMware解决方案成本高昂。另一方面,如果你需要一种久经考验的虚拟化解决方案,那么很难对VMware表示异议。”


VMware还有这个优势:长期以来就是最主要的虚拟机管理程序。这意味着,许多企业级关键业务型应用系统已针对它进行了优化,比如甲骨文数据库、微软SQL Server和微软Exchange。


这种虚拟机管理程序还支持多个操作系统,包括Windows、Linux和Solaris,甚至支持历史久远的操作系统,比如NetWare。


缺点是,VMware解决方案成本高昂。另一方面,如果你需要一种久经考验的虚拟化解决方案,很难对VMware表示异议。


Hyper-V



从一些方面来看,这种虚拟机管理程序很简单。你在桌面上使用Windows吗?在服务器上使用Windows Server吗?使用活动目录来管理系统吗?那么,只要将Hyper-V添加到你的许可软件列表,就可以搞定了。


“如果贵公司已经以Windows为中心,Hyper-V给了你保持这种状态的充足理由。”


什么?你想运行Linux或BSD Unix?没问题。2015年的微软可不是Steve Ballmer掌舵下的微软。你可以在Hyper-V上运行CentOS、Debian、FreeBSD、Oracle、红帽企业级Linux和Ubuntu之类的各种虚拟机。


微软会声称,Hyper-V比VMware来得安全,因为它是一种“微内核化”的虚拟机管理程序。微内核化是指,它在虚拟机管理程序层面没有任何设备驱动程序。相反,这些驱动程序驻留在每个虚拟机的分区里面。这意味着,即便某个虚拟机受到攻击,攻击者还是无法钻设备驱动程序的空子,进入到系统的硬件或虚拟机管理程序这一层,感染其他虚拟机。


虽然这一说法颇有争议,但是据我所见,这一点倒是属实:不像微软的众多操作系统和应用程序,Hyper-V确实相当安全。


所以,如果贵公司已经以Windows为中心,Hyper-V给了你保持这种状态的充足理由。


Xen



Xen可以说,它根本就不使用设备驱动程序。相反,它会声称Hyper-V完全在仿效自己。不管怎样,Xen是一种非常薄的虚拟机管理程序。它占用极少的内存,与VMware一样,它也能运行几乎任何操作系统,实际上确实如此。


“如果你想要稳定的可靠性,可以为虚拟机选择操作系统,又由于极其小巧,想要在可扩展性和虚拟机密度方面有很大的余地,那么Xen是个出色的选择。”


开源Xen还得到大量支持,已取得了不俗的成绩。Xen不仅集成到甲骨文的虚拟化计划中,还集成到Linode和Rackspace的虚拟化计划中。另外,别忘了这一点:规模最大的公有云:AWS就运行在Xen上面。


所以,如果你想要稳定的可靠性,可以为虚拟机选择操作系统,又由于极其小巧,想要可扩展性和虚拟机密度方面留有很大的余地,那么Xen是个出色的选择。


最后补充一句:眼下,任何一个裸机型虚拟机管理程序都会非常适用于你的服务器或云。你选择哪一个取决于其他的IT需求。


新闻来源:《Network World》|云头条编译(未经授权谢绝转载)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存