1、第,2,章,主流虚拟化技术,(课时数,:,6,课时,),云计算虚拟化技术与应用,主 要 内 容,1,服务器虚拟化,2,存储虚拟化,3,网络虚拟化,4,主流虚拟化技术,一、服务器虚拟化,(一)服务器,虚拟化,基本概念,1.,基本概念,服务器虚拟化(,Server Virtualization,)就是将虚拟化技术应用于服务器,将一台服务器虚拟成若干虚拟服务器,在该服务器上可以支持多个操作系统同时运行。可以简单地理解为将物理机、操作系统及其应用程序,“,打包,”,成一个文件,称之为虚拟机。,服务器虚拟技术为虚拟化了的服务器提供能够支持其运行的软硬件资源抽象,包括虚拟,BIOS,、虚拟处理器、虚拟
2、内存、虚拟设备与,I/O,,并可为虚拟机提供良好的隔离性和安全性。,一、服务器虚拟化,(一)服务器,虚拟化,基本概念,2.,举例,如图所示,在采用服务器虚拟化之前,三种不同的操作系统及应用分别运行在三台独立的物理服务器上。在采用服务器虚拟化之后,这三种操作系统及应用运行在三个独立的虚拟服务器上,而这三个虚拟服务器可以被一台物理服务器托管,服务器虚拟化实现了在单一物理服务器上运行多个虚拟服务器。,一、服务器虚拟化,(一)服务器,虚拟化,基本概念,3.,主流,服务器虚拟化产品,(,1,),VMware,公司的,VMware Server,、,VMware ESX/ESXi Server,、,VMw
3、are Workstation,和,VMware Player,。,(,2,),Microsoft,公司的,Hyper-V,、,Virtual PC,和,Virtual Server,。,(,3,),IBM,公司的,PowerVM,、,zVM,。,(,4,),Citrix,公司的,XenServer,。,(,5,)华为公司的,FusionSphere,。,(,6,)开源虚拟化软件,Docker,、,KVM,、,Xen,等。,一、服务器虚拟化,(二)体系架构,1.,宿主模型(,OS-Hosted VMM,),在宿主模型中,物理资源由宿主机操作系统管理。宿主机操作系统是传统的操作系统,如,Wind
4、ows,、,Linux,等,这些传统操作系统并不是为虚拟化而设计的,因此本身并不具备虚拟化功能,所有的虚拟化功能都由,VMM,来提供。,VMM,通常是宿主机操作系统独立的内核模块,有些实现中还包括用户态进程,如负责,I/O,虚拟化的用户态设备模型。,VMM,通过调用宿主机操作系统的服务来获得资源,实现处理器、内存和,I/O,设备的虚拟化。,VMM,创建出虚拟机之后,通常将虚拟机作为宿主机操作系统的一个进程参与调度,。,一、服务器虚拟化,(二)体系架构,宿主模型,架构示意图,一、服务器虚拟化,(二)体系架构,1.,宿主模型(,OS-Hosted VMM,),宿主模型,优点:,宿主模型优点是可以充
5、分利用现有操作系统的设备驱动程序,,VMM,无须为各类,I/O,设备重新实现驱动程序,可以专注于物理资源的虚拟化。考虑到,I/O,设备种类繁多、千变万化,,I/O,设备驱动程序开发的工作量很大,因此,这个功能意义重大。此外,宿主模型也可以利用宿主机操作系统的其他功能,例如调度和电源管理等,这些都不需要,VMM,重新实现就可以直接使用。,一、服务器虚拟化,(二)体系架构,1.,宿主模型(,OS-Hosted VMM,),宿主模型,缺点:,由于物理资源由宿主机操作系统控制,,VMM,需要调用宿主机操作系统的服务来获取资源进行虚拟化,而那些系统服务在设计开发之初并没有考虑虚拟化的支持,因此,,VMM
6、虚拟化的效率和功能会受到一定的影响。此外,在安全方面,由于,VMM,是宿主机操作系统内核的一部分,因此,如果宿主机操作系统内核是不安全的,那么,VMM,也是不安全的,相应的运行在虚拟机之上的客户操作系统也是不安全的,相对较容易攻破。换言之,虚拟机的安全不仅依赖,VMM,的安全,也依赖宿主机操作系统的安全,与现有的操作系统架构相比,宿主模型在架构上并没有提高安全性。,一、服务器虚拟化,(二)体系架构,2.,原生架构模型(,Hypervisor VMM,),在原生架构模型(,Hypervisor VMM,)中,,VMM,首先可以被看作是一个完备的操作系统,与传统操作系统不同的是,,VMM,是为虚
7、拟化而设计的,因此其本身就具备虚拟化功能。从架构上来看,首先所有的物理资源如处理器、内存和,I/O,设备等都归于,VMM,所有,因此,,VMM,承担着管理物理资源的责任;其次,,VMM,需要向上提供虚拟机用于运行客户机操作系统,因此,,VMM,还负责虚拟环境的创建和管理。,一、服务器虚拟化,(二)体系架构,原生架构模型,示意图,一、服务器虚拟化,(二)体系架构,2.,原生架构模型,原生架构,模型,优点:,在,Hypervisor,模型中,由于,VMM,同时具备物理资源的管理功能和虚拟化功能,因此,物理资源虚拟化的效率会更高一些。在安全方面,虚拟机的安全只依赖于,VMM,的安全,不像宿主模型,需
8、要同时依赖于,VMM,和宿主机操作系统的安全。,一、服务器虚拟化,(二)体系架构,2.,原生架构模型,原生架构,模型,缺点:,由于,VMM,完全拥有物理资源,因此,,VMM,需要进行物理资源的管理,包括设备的驱动。而设备驱动的开发工作量是巨大的,因此,这对于,Hypervisor,模型来说是个很大的挑战。,一、服务器虚拟化,(二)体系架构,3.,混合模型(,Hybrid VMM,),混合模型(,Hybrid VMM,)是上述两种模式的混合体。,VMM,依然位于最底层,拥有所有的物理资源,包括处理器、内存和,I/O,设备等。与,Hypervisor,模型不同的是,,VMM,会腾让出大部分,I/O
9、设备的控制权,将它们交由一个运行在特权虚拟机中的特权操作系统来控制,相应的,,VMM,虚拟化的职责也会被分担。处理器、内存虚拟化依然由,VMM,来完成,,I/O,设备虚拟化则由,VMM,和特权操作系统共同来完成。,一、服务器虚拟化,(二)体系架构,混合模型,架构示意图,一、服务器虚拟化,(二)体系架构,3.,混合模型(,Hybrid VMM,),混合模型优点:,混合模型集中了上述两种模型的优点,,VMM,可以利用现有操作系统的,I/O,设备驱动程序,不需要另外开发。,VMM,直接控制处理器、内存等物理资源。虚拟化的效率也比较高。在安全方面,如果对特权操作系统的权限控制得当,虚拟机的安全性只依
10、赖于,VMM,。,一、服务器虚拟化,(二)体系架构,3.,混合模型(,Hybrid VMM,),混合模型缺点:,由于特权操作系统运行在虚拟机上,当特权操作系统提供服务时,,VMM,需要切换到特权操作系统,这就造成切换的开销。当切换比较频繁时,切换的开销将使得系统性能明显下降。处于性能方面的考虑,很多功能还是要在,VMM,中实现,无法借助特权操作系统,如调度程序和电源管理等。,一、服务器虚拟化,(三)关键特性,1.,多实例,通过服务器虚拟化,在一台物理服务器上运行多个虚拟服务器,即可以支持多个客户操作系统。服务器虚拟化将服务器的逻辑整合到虚拟机中,而物理系统的资源,如处理器、内存、硬盘和网络等,
11、是以可控方式分配给虚拟机的。,一、服务器虚拟化,(三)关键特性,2.,隔离性,虽然虚拟机可以共享一台物理服务器的物理资源,但它们彼此之间仍然是完全隔离的,就像它们是不同的物理服务器一样。例如,在一台物理服务器上有四个虚拟机,如果其中一个虚拟机宕机,不会影响到其他三个虚拟机,其余虚拟机仍然正常运行。正是由于这种隔离性,虚拟环境中运行的应用程序的可用性和安全性远优于在传统的非虚拟化系统中运行的应用程序。,一、服务器虚拟化,(三)关键特性,3.,封装性,虚拟机实质上是一个软件容器,它将一整套虚拟硬件资源与操作系统及其所有应用程序捆绑或,“,封装,”,在一个软件包内。这样的软件包非常便于在不同的硬件间
12、备份、移动和复制等,就像移动和复制任何其他软件文件一样。同时,服务器虚拟化将物理机的硬件封装为标准的虚拟硬件设备,提供给虚拟机内的操作系统和应用程序,保证了虚拟机的兼容性。,一、服务器虚拟化,(三)关键特性,4.,高性能,与直接在物理机上运行的系统比,虚拟机与硬件之间多了一层虚拟化抽象层。虚拟化抽象层通过虚拟机监视器或者虚拟化平台来实现,就会产生一定的开销,这些开销即为服务器性能开销。服务器虚拟化的高性能是指虚拟机监视器的开销要被控制在可承受的范围之内。,一、服务器虚拟化,(三)关键特性,5.,独立于硬件,虚拟机完全独立于其底层物理硬件。例如,用户可以为虚拟机配置与底层存在的物理硬件完全不同的
13、虚拟组件(例如,CPU,、网卡、,SCSI,控制器等)。同一物理服务器上的不同虚拟机可以运行不同类型的操作系统(例如,Windows,、,Linux,等)和应用程序。由于虚拟机独立于硬件,再加上它具备封装特性,因此可以在不同类型的,x86,计算机之间自由地移动它,而无需对设备驱动程序、操作系统或应用程序进行任何更改。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,CPU,虚拟化是指将单个物理,CPU,虚拟成多个虚拟,CPU,供虚拟机使用,由,VMM,为虚拟,CPU,分配时间片,并同时对虚拟,CPU,的状态进行管理。在,x86,体系,CPU,指令集中,,CPU,有,4,个特权级(,rin
14、g0,ring3,),。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,其中,第,0,级具有最高的特权,用于运行操作系统;第,3,级具有最低的特权,用于运行用户程序;第,1,级和第,2,级很少使用。在对,x86,服务器实施虚拟化时,,VMM,通常需要最高的特权级,从而占据第,0,级;而虚拟机中安装的客户操作系统(,Guest OS,)只能运行在更低的特权级中,因此不能执行那些只能在第,0,级执行的特权指令。,为了解决这一问题,在实施服务器虚拟化时,必须要对相关,CPU,特权指令的执行进行虚拟化处理,消除虚拟化对客户操作系统运行造成的影响。,一、服务器虚拟化,(四)核心技术,1.CPU,
15、虚拟化,CPU,特权指令的虚拟化有模拟执行和操作系统辅助两种方法,而随着,CPU,硬件对虚拟化技术的支持,基于硬件辅助的虚拟化技术已经成为当前,CPU,虚拟化技术的主流。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,基于模拟执行的,CPU,虚拟化技术,在客户操作系统的运行过程中,当它需要执行在第,0,级的特权指令时,会陷入运行在第,0,级的,VMM,钟。,VMM,捕捉到这一指令后,会将相应的指令的执行过程用本地物理,CPU,指令集中的指令进行模拟,并将执行结果返回给客户操作系统,从而实现客户操作系统在非第,0,级环境下对特权指令的执行,
16、一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,基于模拟执行的,CPU,指令集,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,CPU,特权执行的模拟执行方法有许多种,不同的方法具有不同的资源开销、实现性能及可移植性,典型的方法就是解释执行和二进制翻译。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,解释执行的过程,首先获得一条源指令,并对其所需的各个操作内容进行分析,然后执行相应的操作,待执行完成后,再取得下一条源指令,并按照
17、前面的过程执行,这些步骤完全由软件完成。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,二进制翻译执行,是将一段源指令直接翻译成被执行的目标指令并保存,供计算机重复使用,而不需要在执行过程中反复读取指令和分析指令等过程。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,1,),基于模拟执行的,CPU,虚拟化技术,解释执行与二进制翻译执行,两种方法比较,二进制翻译在初始指令翻译时需要较高的资源开销,但是在执行过程中开销较小。具体这两种方法哪种更好,则要根据实际指令的执行情况来分析,如果一个程序某一指令段被多次执行,那么二进制翻译将
18、具有更高的性能。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,2,),基于操作系统辅助的,CPU,虚拟化技术,基于操作系统辅助的,CPU,虚拟化,不需要在程序运行过程中陷入,VMM,进行相关的处理和操作,它直接对客户操作系统进行修改,将其与特权指令执行相关的操作调用以,Hypercall,(超级调用)的形式改写。,Hypercall,类似于系统调用,但它不是针对操作系统进行操作的,而是直接和,VMM,通信,并在管理下执行特权指令,。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,2,),基于操作系统辅助的,CPU,虚拟化技术,基于操作系统辅助的,CPU,指令集,一、服
19、务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,2,),基于操作系统辅助的,CPU,虚拟化技术,基于模拟执行的,CPU,虚拟化为客户操作系统的运行提供了与物理,CPU,完全一致的硬件环境,是完全虚拟化。而操作系统辅助的,CPU,虚拟化则不同,它提供了与真实的物理设备有一定差异的,CPU,指令集接口,然后通过改写客户操作系统调用该接口,使客户操作系统的相关操作都可以在底层硬件上直接实现,而无须额外的,VMM,模拟执行。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,2,),基于操作系统辅助的,CPU,虚拟化技术,基于操作系统辅助的,CPU,虚拟化技术,,,最大优势是能够有效地使客
20、户操作系统的运行获得与其在本地物理,CPU,上直接执行相近的性能。但是,基于操作系统辅助的,CPU,虚拟化存在的最大问题在于它需要对客户操作系统进行改动,这使它只能对开源的操作系统提供支持,而无法支持非开源的操作系统。另外,修改开源的客户操作系统,将是一项耗费人力、物力并且存在一定安全性和可靠性风险的事情,而且修改后的操作系统将只能与特定的,VMM,绑定,兼容性和可移植性差。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,3,),基于硬件辅助的,CPU,虚拟化技术,Intel/AMD,等硬件厂商通过对部分虚拟化使用到的软件技术进行硬件化来提高系统性能。第一代的虚拟化增强包括,Int
21、el Virtualization Technology(VT-x),和,AMD,的,AMD-V,,这两种技术都为,CPU,增加了一种新的执行模式:,root,模式,可以让,VMM,运行在,root,模式下,而,root,模式位于,Ring 0,的下面,。,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,3,),基于硬件辅助的,CPU,虚拟化技术,基于硬件辅助的,CPU,指令集,一、服务器虚拟化,(四)核心技术,1.CPU,虚拟化,(,3,),基于硬件辅助的,CPU,虚拟化技术,特权和敏感指令自动在,VMM,上执行,无须特权指令翻译或操作系统辅助技术。客户操作系统的状态保存在,VT-
22、x,(,Virtual Machine Control Structure,,虚拟机控制结构)中或,AMD-v(Virtual Machine Control Block,,虚拟机控制块,),中。支持,Intel VT,和,AMD-V,的,CPU,从,2006,年开始推向市场,因此只有新的系统包含了这些硬件辅助的虚拟化功能。,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,内存虚拟化技术把物理机的真实物理内存统一管理,包装成多个虚拟的物理内存分别供若干个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间。在服务器虚拟化技术中,因为内存是虚拟机最频繁访问的设备,因此内存虚拟化与,CPU,虚拟化
23、具有同等重要的地位。,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,内存虚拟化类似于操作系统提供的虚拟内存支持。在传统的执行环境中,操作系统使用页表维护从虚拟内存到机器内存的映射,这时,从虚拟内存到机器内存只需经过一次映射即可。所有现代,x86,处理器中都包括内存管理单元(,Memory Management Unit,,,MMU,)和转换后备缓冲器(,Translation Lookaside Buffer,,,TLB,)来优化虚拟内存系统的性能。然而,在虚拟执行环境中,虚拟内存的虚拟化包括共享,RAM,中的物理内存并需要给虚拟机动态分配内存。,一、服务器虚拟化,(四)核心技术,2.,
24、内存虚拟化,这意味着需要客户操作系统和,VMM,分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。客户操作系统负责从虚拟地址到虚拟机的物理内存地址的映射,但是客户操作系统并不能直接访问实际硬件内存,,VMM,负责将客户物理内存映射到实际的机器内存上。,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,两级内存映射机制,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,由于客户操作系统的每个页表在,VMM,中都有一个独立页表与之对应,其中,VMM,中的页表称为影子页表。嵌套的页表在虚拟内存系统中额外增加了一层映射。,MMU,负责由操作系统定义的从虚拟地址到物理地址的
25、转换。然后,使用由,VMM,定义的其他页表将物理内存地址转换为机器地址。由于现代操作系统会为每个进程维护一组页表,影子页表会极度膨胀。因此,性能开销和内存开销也会很高。,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,由于软件影子页表技术的效率太低,,Intel,开发了基于硬件的扩展页表(,Extended Page Table,,,EPT,)技术来对之加以改进。除此之外,,Intel,还提供了虚拟机,ID,(,Virtual Processor ID,,,VPID,)技术来改进,TLB,的性能。因此,内存虚拟化的性能得到了大幅改进,客户操作系统的页表和,EPT,都是四级,。,一、服务器虚
26、拟化,(四)核心技术,2.,内存虚拟化,基于硬件的扩展页表,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,当一个虚拟地址需要转换时,,CPU,会首先查找由客户,CR3,所指向的,L4,页表。由于客户,CR3,中的地址是客户操作系统的物理地址,,CPU,需要使用,EPT,将客户物理地址(,Guest Physical Address,,,GPA,)转换为主机物理地址(,Host Physical Address,,,HPA,),在这个过程中,,CPU,会检查,EPT,的,TLB,,来查看是否已有这种转换。如果,EPT,的,TLB,中没有所需的转换,则,CPU,将会在,EPT,中进行查找。如
27、果,CPU,在,EPT,中找不到相应的转换项,则会发生一个,EPT,违例。,一、服务器虚拟化,(四)核心技术,2.,内存虚拟化,获得,L4,页表的,GPA,后,,CPU,会使用客户虚拟地址(,Guest Virtual Address,,,GVA,)和,L4,页表的内容来计算,L3,页表的,GPA,。如果,L4,页表中对应的,GVA,项是缺页,则,CPU,会产生一个缺页中断并由客户操作系统来处理该中断。当获得,L3,页表的,PGA,后,,CPU,将会查找,EPT,来获得,L3,页表的,HPA,,如前所述,为了获得,GVA,对应的,HPA,,,CPU,需要,EPT 5,次,并且每次都需要,4,次
28、访问内存。因此,最坏情况下会有,20,次内存访问,速度仍旧很慢。为了克服该问题,,Intel,扩充了,EPT,的,TLB,容量来降低内存的访问次数。,一、服务器虚拟化,(四)核心技术,3.,设备与,I/O,虚拟化,除了处理器和内存外,服务器其他需要虚拟化的关键部件还包括设备与,I/O,。设备与,I/O,虚拟化技术把物理机的真实设备统一管理,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和,I/O,请求。,目前,主流的设备和,I/O,虚拟化实现方式有三种:全设备模拟、半虚拟化和直接,I/O,虚拟化。,一、服务器虚拟化,(四)核心技术,3.,设备与,I/O,虚拟化,(,1,),
29、全设备模拟,全设备模拟是实现,I/O,虚拟化的第一种方式,通常来讲,该方法可以模拟一些知名的真实设备。一个设备的所有功能或总线结构(如设备枚举、识别、中断和,DMA,)都可以在软件中复制。该软件作为虚拟设备处于,VMM,中,客户操作系统的,I/O,访问请求会陷入,VMM,中,与,I/O,设备交互,。,一、服务器虚拟化,(四)核心技术,3.,设备与,I/O,虚拟化,(,1,),全设备模拟,全设备模拟,一、服务器虚拟化,(四)核心技术,3.,设备与,I/O,虚拟化,(,2,),半虚拟化,单一的硬件设备可以由多个同时运行的虚拟机共享,然而,软件模拟的运行速度会显著慢于其所模拟的硬件。,I/O,虚拟化
30、的半虚拟化方法是,Xen,所采用的方法,它也就是广为熟知的分离式驱动模型,由前端驱动和后端驱动两部分构成。前端驱动运行在,Domain U,中,而后端驱动运行在,Domain 0,中,它们通过一块共享内存交互。前端驱动管理客户操作系统的,I/O,请求,后端驱动负责管理真实的,I/O,设备并复用不同虚拟机的,I/O,数据。尽管与全设备模拟相比,半,I/O,虚拟化的方法可以获得更好的设备性能,但其也会有更高的,CPU,开销。,一、服务器虚拟化,(四)核心技术,3.,设备与,I/O,虚拟化,(,3,),硬件辅助虚拟化,直接,I/O,虚拟化让虚拟机直接访问设备硬件,它能获得近乎本地的性能,并且,CPU
31、开销不高。然而,当前所实现的直接,I/O,虚拟化主要集中在大规模主机的网络方面,对商业硬件设备仍有许多挑战。例如,当一个物理设备被回收以备后续再用时,它可能被设置到了一个未知状态,可能会引起工作不正常,甚至让整个系统崩溃。由于基于软件的,I/O,虚拟化要求非常高的设备模拟开销,硬件辅助的,I/O,虚拟化很关键。,二、存储虚拟化,1.,存储虚拟化基本概念,所谓存储虚拟化是将实际物理存储实体与存储的逻辑表示分离开来,应用服务器只与分配给它们的逻辑卷打交道,而不关心数据是存储于哪个物理存储实体上。虚拟存储是介于物理存储与用户间的一个中间层,这个中间层屏蔽了实体物理存储设备的物理特性,呈现给用户的是
32、逻辑存储设备。用户所看到的和所管理的存储空间不是实体的物理存储设备,而是通过虚拟存储层映射来实现对实体物理存储设备进行管理和使用的。对用户来说,虚拟化的存储资源就像是一个巨大的,“,存储池,”,,用户不会看到具体的磁盘、磁带,也不必关心自己的数据经过哪一条路径通往哪一个具体的存储设备。,二、存储虚拟化,2.,存储虚拟化的特性,(,1,),异构存储设备整合,不同厂商、不同品牌及不同等级的存储设备整合,是存储虚拟化的重要特性。通过虚拟层介接不同厂商、不同品牌及不同等级的磁盘阵列,将这些异构存储设备整合在一个存储池内。存储虚拟化产品还可以有效解决不同存储协议的支持问题,使得所有存储资源都可以在虚拟层
33、介接下统一管理与运行,有效提高存储利用率、解决存储孤岛问题。,二、存储虚拟化,2.,存储虚拟化的特性,(,2,),简化存储管理,存储虚拟化构建了一体化的存储管理,减少了系统的复杂性,降低了管理成本,易于建立多层次的存储系统,统一规划存储需求,节省硬件投资。,二、存储虚拟化,2.,存储虚拟化的特性,(,3,),高可靠性,存储虚拟化整合了整个存储资源,所有的存储服务都经由虚拟层的介接,虚拟层就成为整个存储系统的核心,一旦虚拟层失效,整个存储服务也就中断。为避免这种情形发生,几乎所有存储虚拟化产品都附有高可用性机制,如以两台提供虚拟服务的服务器互为备援,确保虚拟服务的高可靠性与持续性。存储虚拟化高可
34、靠性还体现在在线数据迁移、数据镜像管理、异构平台数据复制等方面。,二、存储虚拟化,2.,存储虚拟化的特性,(,4,),提高资源利用率、绿色存储,由于将异构存储设备整合在一个存储池内,可以有效提高现有存储设备的使用生命周期及利用率,达到绿色存储的目的。,三、网络虚拟化,目前由于,IP,协议是网络规划和建设的事实标准,因此,目前网络虚拟化技术的研究与应用主要集中在,IP,网络虚拟化领域。,IP,网络虚拟化的范围从,VLAN,、,VPN,、虚拟路由器到逻辑路由器等。从技术角度,,IP,网络虚拟化可分为网元虚拟化、链路虚拟化和互联虚拟化等;从应用角度,,IP,网络虚拟化又可分为资源提供虚拟化、资源管理
35、虚拟化和运营维护虚拟化等。,三、网络虚拟化,尽管,IP,网络虚拟化的一个重要特征是软件相对于硬件的独立性,但该技术的迅速兴起仍旧得益于硬件技术的发展,尤其是,ASIC/FPGA/NP,等芯片的发展。目前,网络虚拟化技术已从物理隔离虚拟化方式逐步发展至共享式虚拟化,在提升网络弹性、管理性和资源利用率的同时,提供各种网络通道服务。,四、主流虚拟化技术,维基百科列举的虚拟化技术有超过,60,种,基于,x86(CISC),体系的有,50,余种,也有基于,RISC,体系的。下面简要介绍几种当前较为成熟而且应用较为广泛的,分别是:,VMware,的,vSphere,、,Citrix,的,XenServer
36、Microsoft,的,Hyper-V,、开源的,KVM,和,Docker,。,四、主流虚拟化技术,1.VMware vSphere,VMware,作为业内虚拟化领先的厂商,其产品以易用性和管理性得到了广泛认同。由于其架构的影响限制,,VMware,还主要是在,x86,平台服务器上有较大优势,而非真正的,IT,信息虚拟化。,vSphere,是,VMware,公司推出的一套服务器虚拟化解决方案,目前较新的版本为,6.0,,而其,5.5,版本是应用较为成熟的一个版本。,四、主流虚拟化技术,1.VMware vSphere,vSphere5.5,中的核心组件为,VMware ESXi 5.5,
37、取代原,ESX,),ESXi,与,Citrix,的,XenServer,相似,它是一款可以独立安装和运行在祼机上的系统,因此与其他以往见过的,VMware Workstation,软件不同的是它不再依存于宿主操作系统之上。在,ESXi,安装好以后,可以通过,vSphere Client,远程连接控制,在,ESXi,服务器上创建多个虚拟机(,VM,),再为这些虚拟机安装好,Linux/Windows Server,系统,使之成为能提供各种网络应用服务的虚拟服务器。,ESXi,可以从内核级支持硬件虚拟化,运行于其中的虚拟服务器在性能与稳定性上不亚于普通的硬件服务器,而且更易于管理与维护,。,四、
38、主流虚拟化技术,1.VMware vSphere,VMware ESXi,体系结构图,四、主流虚拟化技术,2.Citrix Xen,Xen,是一个开放源代码的虚拟机监视器,由剑桥大学开发。它可以在单台服务器上运行多达,100,个满特征的操作系统。操作系统必须进行显式地修改(,“,移植,”,)以在,Xen,上运行(但是提供对用户应用的兼容性)。这使得,Xen,无需特殊硬件支持,就能达到高性能的虚拟化。,四、主流虚拟化技术,2.Citrix Xen,Xen,通过一种叫作准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(例如,x86,),,Xen,也有上佳的表现。与那些通过软件模
39、拟实现硬件的传统虚拟机不同,在,Intel VT-X,支持下,3.0,版本之前的,Xen,需要系统的来宾权限,用来和,Xen API,进行连接。到目前为止,这种技术已经可以运用在,NetBSD,GNU/Linux,FreeBSD,和,Plan 9,系统上。,四、主流虚拟化技术,2.Citrix Xen,Xen,的体系结构图,四、主流虚拟化技术,3.Microsoft Hyper-V,Hyper-V,是微软的一款虚拟化产品,必须在,64,位硬件平台运行,同时要求处理器必须支持,Intel VT,技术或,AMD,虚拟化,(AMD-V),,即处理器必须具备硬件辅助虚拟化技术。,四、主流虚拟化技术,3
40、Microsoft Hyper-V,Hyper-V,体系结构图,四、主流虚拟化技术,3.Microsoft Hyper-V,Hyper-V,是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼顾了安全性和性能的要求。,Hyper-V,底层的,Hypervisor,运行在最高的特权级别下,微软将其称为,ring-1,(而,Intel,则将其称为,root mode,),而虚机的,OS,内核和驱动运行在,ring 0,,应用程序运行在,ring 3,下,这种架构就不需要采用复杂的,BT,(二进制特权指令翻译)技术,可以进一步提高安全性。从架构上讲,Hyper-V,只有,“,硬件,Hype
41、r-V,虚拟机,”,三层,本身非常小巧,代码简单,且不包含任何第三方驱动,所以安全可靠、执行效率高,能充分利用硬件资源,使虚拟机系统性能更接近真实系统性能。,四、主流虚拟化技术,4.KVM,KVM,全称是,Kernel-based Virtual Machine,,即基于内核的虚拟机。它是一个开源的系统虚拟化模块,自,Linux 2.6.20,之后集成在,Linux,的各个主要发行版本中。它使用,Linux,自身的调度器进行管理,所以相对于,Xen,,其核心源码很少。,KVM,目前已成为业界主流的,VMM,之一。,KVM,的虚拟化需要硬件支持(如,Intel VT,技术或者,AMD V,技术,
42、),,是基于硬件的完全,虚拟化,。,四、主流虚拟化技术,4.KVM,KVM,虚拟化平台架构,四、主流虚拟化技术,4.KVM,KVM,是一个独特的管理程序,通过将,KVM,作为一个内核模块实现,在虚拟环境下,Linux,内核集成管理程序将其作为一个可加载的模块用以简化管理和提升性能。在这种模式下,每个虚拟机都是一个常规的,Linux,进程,通过,Linux,调度程序进行调度。,四、主流虚拟化技术,5.Docker,Docker,是,PaaS,提供商,dotCloud,开源的一个基于,LXC,的高级容器引擎,源代码托管在,Github,上,基于,go语言,并遵从,Apache2.0,协议开源。,D
43、ocker,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的,Linux,机器上,也可以实现虚拟化。,容器是完全使用沙箱机制,相互之间不会有任何接口,(,类似,iPhone,的,App),。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,Docker,不依赖于任何语言、框架以及系统。,四、主流虚拟化技术,5.Docker,Docker,项目的目标是实现轻量级的操作系统虚拟化解决方案。,Docker,的基础是,Linux,容器,(LXC),等技术。,在,LXC,的基础上,Docker,进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简
44、便,用户操作,Docker,的容器就像操作一个快速轻量级的虚拟机一样简单。,下面对比给出,Docker,和传统虚拟化,(KVM,、,Xen,等,),方式的不同之处。容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件的基础上,虚拟出自己的系统,再在系统上部署相关的,APP,应用。,四、主流虚拟化技术,5.Docker,传统虚拟化方案:每个虚拟化应用不仅包含了应用程序和基本的二进制文件与库,还包含了操作系统。,四、主流虚拟化技术,5.Docker,相对于传统虚拟化方案,,Docker,引擎容器仅包含了这些应用程序和相关的依赖库,它作为一个隔离的进程运行在操作系统的用户空间上,与其他的容器共享内核。因此它具有如传统,VMs,方案一样资源隔离以及共享两方面的优势,但更加快捷高效,。,四、主流虚拟化技术,5.Docker,Docker,虚拟化与传统虚拟化(,VM,)比较具有如下优点:,(,1,),操作启动快,(,2,),轻量级虚拟化,(,3,),开源免费,本章结束,下次再见!,
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818