计算机虚拟化技术的四种虚拟化技术 几种常见的计算机虚拟技术
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件。
而且支持在同一平台上运行各种不同内核,不同类型的操作系统,相当于一台真正的物理机器。其最大的缺点是由于要完全虚拟化硬件,执行效率偏低,实际应用中成本也比较昂贵。常见的技术平台有:Parallels Workstation,Parallels Desktop for Mac,VirtualBox,Virtual Iron,Oracle VM,Virtual PC,Virtual Server,Hyper-V,VMware Workstation,VMware Server (formerly GSX Server),QEMU,Adeos,Mac-on-Linux,Win4BSD,Win4Lin Pro,and Egenera vBlade technology。 半虚拟化技术(Paravirtualization) 半虚拟化技术可以选择性的对部分硬件进行一些必要的虚拟,是全虚拟和内核级虚拟的一种折中的方法,所以其的各方面的表现上基本也是介于两者之间。使用半虚拟化技术需要对Guest OS进行一些必要的修改,对能使其正常运行在虚拟平台上。常见的技术平台有:Xen,UML,TRANGO和KVM。 操作系统级虚拟化技术(Operating system-level virtualization) 这是一个基于操作系统级的虚拟技术,其Guest OS环境和物理机器的系统共享同一个系统内核,有点类似于将各个运行环境隔离。所以在上面只能运行相同内核的系统,并需要对Guest OS做一些必要的修改,被广泛应用于现在的VPS中。常见的技术平台有:Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers和 iCore Virtual Accounts。 硬件辅助虚拟化技术(Hardware-assisted virtualization) 这也是常说的HVM,使用这种虚拟技术可以不需要对 Guest OS进行修改。目前集成了虚拟技术支持的硬件平台有:x86 (and x86_64)—AMD-V,Intel VT-x ,IOMMU ,Power Architecture,Virtage (Hitachi),UltraSPARC T1, T2 and T2+(Sun)。
而支持这些硬件平台的虚拟技术软件有:Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac, VirtualBox and Parallels Workstation。
虚拟化技术(Virtualization)和分区(Partition)技术是紧密结合在
一起,从60年代Unix诞生起,虚拟化技术和分区技术就开始了发展,并且经历了从“硬件分区”->“虚拟机”->“准虚拟机”->“虚拟操作系统”的发展历程。最早的分区技术诞生自人们想提升大型主机利用率需求。比如在金融、科学等领域,大型Unix服务器通常价值数千万乃至上亿元,但是实际使用中多个部门却不能很好的共享其计算能力,常导致需要计算的部门无法获得计算能力,而不需要大量计算能力的部门占有了过多的资源。这个时候分区技术出现了,它可以将一台大型服务器分割成若干分区,分别提供给生产部门、测试部门、研发部门以及其他部门。 为了改善虚拟机技术(Virtual Machine Monitor)的性能,一种新的准虚拟化技术(Para-Virtualizion)技术诞生了。这种虚拟技术以Xen为代表,其特点是修改操作系统的内核,加入一个Xen Hypervisor层。它允许安装在同一硬件设备上的多个系统可以同时启动,由Xen Hypervisor来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且还需要修改操作系统的内核。Xen相对于传统的Virtual Machine Monitor,性能稍有提高,但并不十分显著。为了进一步提高性能,Intel和AMD分别开发了
VT和Pacifica虚拟技术,将虚拟指令加入到了CPU中。使用了CPU支持的硬件虚拟技术,将不再需要修改操作系统内核,而是由CPU特有的指令集进行相应的转换操作。 ——与个体物理资源单位相比,虚拟能够以更小的单位进行资源分配。与物理资源相比,虚拟资源因其不存在硬件和操作系统方面的问题而能够在出现崩溃后更快地恢复。