您好,欢迎访问三七文档
浅谈虚拟化技术制作人:冯浩日期:2016年5月虚拟化技术的定义虚拟化是一个广义的术语,简单来说,是指计算机相关模块在虚拟的基础上而不是真实的独立的物理硬件基础上运行,这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,从而实现简化管理,优化资源等目的的解决方案,就叫做虚拟化技术。虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术逐渐出现在基于行业标准的中低端服务器上。虚拟化技术的优势虚拟化技术可以大大提高资源的利用率为了达到资源的最大利用,虚拟化把一个硬件虚拟成多个硬件,这里的一个硬件指的不是一个个体,而是有多个个体组成的一组资源,例如可以将多个硬盘组成阵列,将多个硬盘视为计算机的硬盘部分。用户将许多资源组成一个庞大的、计算能力十分巨大的“巨型计算机”,再将这个巨型计算机虚拟成多个独立的系统,这些系统相互独立,但共享资源,这就是虚拟化的精髓。提供相互隔离、安全、高效的应用执行环境用户可以在一台计算机上模拟多个系统,多个不同的操作系统,虚拟系统下的各个子系统相互独立,即使一个子系统遭受攻击而崩溃,也不会对其他系统造成影响,而且,在使用备份机制后,子系统可以被快速的恢复。采用虚拟化技术后,虚拟化系统能够方便的管理和升级资源传统的IT服务器资源是硬件相对独立的个体,对每一个资源都要进行相应的维护和升级,会耗费企业大量的人力和物力,虚拟化系统将资源整合,在管理上十分方便,在升级时只需添加动作,避开传统企业进行容量规划、定制服务器、安装硬件等工作,提高了工作效率。虚拟化技术的发展趋势从技术角度来看虚拟化趋势:今天的虚拟化可以用来进行服务器、存储、网络、桌面应用程序的整合,提高系统资源利用率,提高管理灵活性,节省服务器控件和电耗成本,但下一步的发展趋势会使什么?答案是:云计算。云计算是一种新兴的共享基础架构的方法。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取。这种特性经常被比喻为像水电一样使用硬件资源,按需购买和使用。从业界趋势来看,虚拟化将从三个方面继续扩展:1.基础架构服务,可以将服务器、存储设备和网络无缝聚合为“按需使用”云资源池,并将其分配给最需要它们的应用程序。2.应用程序服务,可以充分确保所有应用程序的可用性、安全性和扩展性保持在合适的级别,无论这些应用程序是针对哪些操作系统、开发框架或架构所设计运行。3.云服务,可以混合多个内部云和外部云,形成统一的计算力资源池,实现基于计算力的按需使用,按需收费,最终实现云计算。现有虚拟化技术的分析与对比现有的较成熟的虚拟化技术主要分为服务器虚拟化(也称为操作系统虚拟化),存储虚拟化,网络虚拟化,应用虚拟化(也称为桌面虚拟化)四种。服务器虚拟化服务器虚拟化是虚拟化技术最早细分出来,最成熟的领域。由于服务器虚拟化发展时间长,应用广泛,所以很多时候人们几乎把服务器虚拟化等同于虚拟化。关于服务器虚拟化的概念,各个厂商有自己不同的定义,然而其核心思想是一致的,即它是一种方法,能够通过区分资源的优先次序并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。有了虚拟化技术,用户可以动态启用虚拟服务器(又叫虚拟机),每个服务器实际上可以让操作系统(以及在上面运行的任何应用程序)误以为虚拟机就是实际硬件。服务器虚拟化按实现原理来分,主要分为基于CPU的虚拟化,基于硬件的虚拟化,以及基于操作系统的虚拟化。服务器虚拟化—基于CPU的虚拟化CPU的虚拟化技术的最终目标是可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。在处理器硬件角度就实现了服务器(操作系统)级别虚拟化,而且效率更加高。CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM(VirtualMachineMonitor,也就是虚拟机软件)会很容易提高性能,相比纯软件的虚拟实现方式会很大程序上提高性能。Intel自2005年末开始便在其处理器产品线中推广应用IntelVirtualizationTechnology(IntelVT)虚拟化技术。而AMD方面也已经发布了支持AMDVirtualizationTechnology(AMDVT)虚拟化技术的一系列处理器产品。但虚拟化技术是一套解决方案,CPU层虚拟化技术不会自动发挥作用。为了专门支持它,必须开发虚拟化软件。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,包括虚拟化软件和某些操作系统本身。目前CPU虚拟化技术,暂时还停留在CPU对服务器(操作系统)级别虚拟化优化这个层面。不过,因为这种技术的优点非常诱人,预计各种类型的虚拟化软件会源源不断地开发出来。服务器虚拟化—基于CPU的虚拟化服务器虚拟化—基于硬件的虚拟化基于硬件的服务器虚拟化产品走得比较靠前的应该是IBM和HP等服务器硬件的厂商。IBM推出了由操作系统、系统技术和系统服务三部分组成的服务器虚拟引擎。其中,操作系统部分技术宗旨是单台服务器内运行多种操作系统、在异构IT基础架构中以统一的方式实现资源的共享和管理以及管理非IBM操作系统平台;系统技术包括微分区、vLan、虚拟I/O、Hypervisor等;系统服务则包括一个服务器系统服务套件和一个存储系统服务套件。除IBM外,HP的分区连续技术能够把服务器划分成物理或逻辑独立的分区。硬件分区根据服务器类型提供完全的硬件和软件隔离能力以及在一个服务器上运行多个OS实例。虚拟分区具有在一个系统或硬件分区内实现执行多个OS实例的独特特性。资源分区-进程资源管理软件能够动态地以多种方式把系统资源(CPU、内存和磁盘I/O)分配给客户的应用,分配的方式可以是根据份额、百分比和处理器组。虚拟化的技术核心—hypervisorHypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(VirtualMachineMonitor)。Hypervisor是所有虚拟化技术的核心,非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor给处理器带来开销。(在完全虚拟化的环境下,hypervisor运行在裸硬件上,充当主机操作系统;而由hypervisor管理各个虚拟服务器,并让彼此独立的虚拟服务器运行客户端操作系统(guestOS))Hypervisor的种类类型1:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”型。裸机型在虚拟化中Hypervisor直接管理调用硬件资源,不需要底层操作系统,也可以将Hypervisor看作一个很薄的操作系统。这种方案的性能处于主机虚拟化与操作系统虚拟化之间。类型2:虚拟机运行在传统操作系统上,同样创建的是硬件全仿真实例,被称为“托管/主机”型。托管型/主机型Hypervisor运行在基础操作系统上,构建出一整套虚拟硬件平台(CPU/Memory/Storage/Adapter),使用者根据需要安装新的操作系统和应用软件,底层和上层的操作系统可以完全无关化,如Windows运行Linux操作系统。主机虚拟化中VM的应用程序调用硬件资源时需要经过:VM内核-Hypervisor-主机内核,因此相对来说,性能是三种虚拟化技术中最差的。类型3:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例(容器),指向底层托管操作系统,被称为“操作系统虚拟化”。服务器虚拟化—基于操作系统的虚拟化基于操作系统的虚拟化可以视作在操作系统层面增添虚拟服务器功能,其允许多个虚拟机通过分用时间和资源带宽的方式,共享同一个底层物理服务器极其资源。操作系统虚拟化的关键点在于从应用与操作系统之间的层次横切一刀,将操作系统资源访问虚拟化。对上而言,让应用“相信”它是运行于它自己的独立的操作系统实例中;对下而言,翻译和转换上层应用的命名空间、资源进程需求,使之和谐共存于底层的一个操作系统内核和硬件资源之中—从而达到更细粒度的资源控制和更有效的可管理性。就操作系统层的虚拟化而言,没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)。服务器虚拟化—基于操作系统的虚拟化操作系统虚拟化强调的是在单一操作系统内核实例的基础上实现虚拟化,这一点是它与其他的软件虚拟实现方式的最本质的不同。虚拟化技术,无论是VMM,Hypervisor,还是ParaVirtualization并行(准)虚拟化,都是在多个虚拟的硬件层上安装多个Guest操作系统,然后再运行应用程序。比较两台分别采用操作系统虚拟化和采用其他软件虚拟实现方案的服务器,我们看到的最明显的差异就是操作系统实例数量的不同。这一点核心差异同时构成了操作系统虚拟化的最大优势和最大劣势。由于只有一个操作系统内核,少了虚拟机和Guest操作系统两个资源消耗层次,操作系统虚拟化的运行效率、理论最大密度和运行在虚拟环境中的应用性能都天生超过其他软件虚拟实现方案,减少了操作系统实例的数量也意味着在安装部署、补丁升级、备份迁移的数据量和效率等管理特性上的优势;同理,操作系统虚拟化只能是同一种操作系统的划分和衍生,无法支持异种操作系统并存于同一个物理服务器之上,同时由于虚拟环境不完全等同于一份完整的操作系统,某些需要直接访问硬件层(无论是虚拟的还是物理的)的应用无法在操作系统虚拟化环境中运行。网络虚拟化网络虚拟化是目前业界关于虚拟化细分领域界定最不明确,存在争议较多的一个概念。总的来说,分为纵向分割和横向分割两大类概念.网络虚拟化—纵向分割早期的”网络虚拟化”,是指虚拟专用网络(VPN).VPN对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样.随后的网络虚拟化技术随着数据中心业务要求发展为:多种应用承载在一张物理网络上,通过网络虚拟化分割(称为纵向分割)功能使得不同企业机构相互隔离,但可在同一网络上访问自身应用,从而实现了将物理网络进行逻辑纵向分割虚拟化为多个网络.网络虚拟化概念并不是什么新概念,因为多年来,虚拟局域网(VLAN)技术作为基本隔离技术已经广泛应用.当前在交换网络上通过VLAN来区分不同业务网段/配合防火墙等安全产品划分安全区域,是数据中心基本设计内容之一.网络虚拟化—横向分割从另外一个角度来看,多个网络节点承载上层应用,基于冗余的网络设计带来复杂性,而将多个网络节点进行整合(称为横向整合),虚拟化成一台逻辑设备,提升数据中心网络可用性,节点性能的同时将极大简化网络架构.使用网络虚拟化技术,用户可以将多台设备连接,”横向整合”起来组成一个”联合设备”,并将这些设备看作单一设备进行管理和使用.总的来说,目前网络虚拟化并无业界标准,成熟程度不如服务器虚拟化存储虚拟化,而且相当一部分技术已经在设备采购中包含(比如VPN,VLAN),无需单独统一部署.存储虚拟化所谓虚拟存储,就是把多个存储介质模块(如硬盘,RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池中的得到统
本文标题:浅谈虚拟化技术
链接地址:https://www.777doc.com/doc-3876824 .html