您的位置:首页 > 理论基础

虚拟化技术介绍

2015-06-01 16:25 387 查看

什么是虚拟化?

虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

为什么要用虚拟化?

1、基础架构的利用率,通过将基础架构资源池化并打破一个应用一台物理机的限制,虚拟化大幅提升了资源利用率。通过减少额外硬件的采购,企业可以节约大幅成本。;2、虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更灵活,比如动态分配CPU资源、内存、磁盘等;3、创建一个新的虚拟机不需要预先购买硬件,只需要在有资源空闲的设备上用简单的命令创建一台即可,大大简化了服务器的供应问题;4、同时,一个新的虚拟机可以容易地从一台计算机转移到另一台上,这点还可以被用于远距离灾难恢复方案。5、节约能耗、制冷和机房空间。通过减少数据中心里服务器和相关硬件的数量,企业可以从减少机房空间、能耗与制冷需求中获益,从而降低IT成本。

CPU指令的特权级

要彻底弄明白什么是虚拟化,我们得先讲讲CPU的特权级。 CPU的特权级(Ring)也叫hierarchical protection domains(等级保护域)。它是CPU设计的一种机制,用来保护数据和阻止恶意行为,确保计算机安全。特权级共分为4级:0、1、2、3。特权级是针对CPU指令的,并非操作系统,操作系统仅提供不同权限访问级别的资源。操作系统一般只使用特权级0和3。特权最高的是0,可以直接操作硬件,如CPU和内存。一般操作系统和驱动运行在此级别下。特权级3是给一般的程序使用的,可以调用基本的CPU指令。特权级3是无法调用特权级0的指令的,如果非要调用则会显示为非法指令。引用特权级的概念是为了保护计算机,一些危险指令只有操作系统可以执行,防止普通程序滥用其他程序的资源。如间谍软件要想开启摄像头就必须向特权级0的驱动程序请求开启,否则就不允许。

虚拟化基本类型

全虚拟化(FullVirtulization) 在Guest机器和Host机器中间加一层Hypervisor,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件。Host机器看它像跑在自己上面的程序,Guest机器看它像自己所运行的硬件。 主要是在Guest OS和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使Guest OS无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,知名的产品有VirtualBox,KVM,VMware Workstation和VMware vSphere。

优点:Guest OS无需修改,速度和功能都非常不错,更重要的是使用非常简单。 缺点:基于Hosted模式(和Hypervisor一样,是一种模拟硬件的程序)的全虚拟产品性能方面不是特别优异,特别是I/O方面。 前景:由于这种模式不仅使Guest OS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,在未来几年内全虚拟化应该还会是主流。 半虚拟化(Parairtulization): Hypervisor运行在Kernel Mode, Ring 0。Guest OS不能直接运行在Ring 0,而是需要对Kernel进行修改,将运行在Ring 0上的指令转为调用Hypervisor,Guest OS上的APP运行在Ring3。它与完全虚拟化有一些类似,它也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor 上面运行的Guest OS已经集成与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hyperivosr来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是Xen,而且因为微软的Hyper-V所采用技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。

优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。 缺点:需要对Guest OS进行修改,所以在用户体验方面比较麻烦。前景:我觉得其将来应该和现在的情况比较类似,在公有云(比如Amazon EC2)平台上应该继续占有一席之地,但是很难在其他方面和类似VMware vSphere这样的全虚拟化产品竞争,同时它也将会利用硬件辅助虚拟化技术来提高速度,并简化架构。硬件辅助全虚拟化(HardwareAssisted Virtualization)Intel VT和AMD-V创建一个新的Ring -1单独给Hypervisor使用,Guest OS可以直接使用Ring 0而无需修改。Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMware ESX和Xen。

优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。 缺点:现有的硬件实现不够优化,还有进一步提高的空间。前景:因为通过使用硬件技术不仅能提高速度,而且能简化虚拟化技术的架构,所以预见硬件技术将会被大多数虚拟化产品所采用。 操作系统级虚拟化(OperatingSystem Level Virtualization)介绍:这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于VPS。主要的技术有Parallels Virtuozzo Containers,Unix-like系统上的chroot和Solaris上的Zone等,当今炒的最火热的当属docker。

优点:因为它是对操作系统进行直接的修改,所以实现成本低而且性能不错。 缺点:在资源隔离方面表现不佳,而且对Guest OS的型号和版本有限定。 前景:docker的出现算是在操作系统级虚拟化的一个革命性技术,未来发展前景相当可观。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息