目前在IT领域,虚拟化已经深入人心,在服务器和桌面计算机中都得到广泛应用,并逐步走向嵌入式终端和通信领域,已经公认为支撑云计算发展的关键技术,具有提升用户体验、简化管理、节约投资等诸多优点,当前“应用为王”的时代,是满足多样化用户需求,并挖掘计算机潜力和优化的首选途径,虚拟化的技术趋势己不可逆转。
本文首先对虚拟化技术进行辨析,对各种系统虚拟化技术进行分析。然后介绍虚拟化在信息技术、通信网络与安全领域的应用。最后分析虚拟化技术应用后,对传统的通信网络领域带来的挑战。
1、虚拟化技术辨析
1.1虚拟化定义
虚拟化,是一个带有哲学意味的词,意在提供真实的假象。在IT领域,“虚拟化”作为一个广义的概念,无处不在,目前业界有以下多种定义:
①“虚拟化是表示计算资源的抽象方法,通过虚拟化可以与访问抽象前资源一致的方法访问抽象后的资源。这种资源的抽象方法并不受实现、地理位置或底层资源物理配置的限制。”
②“虚拟化是为某些事物创造的虚拟(相对于真实)版本,比如操作系统、计算机系统、存储设备和网络资源等。”
③“虚拟化是为一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。”
尽管以上几种定义表述方式不尽相同,但通过仔细分析,不难发现这些定义都阐述了3层定义:
①虚拟化的对象是各种各样的资源;
②虚拟化后的逻辑资源对用户隐藏了不必要的细节;
③用户可以在虚拟环境中实现其在真实环境中的部分或者全部功能。
借用IBM对虚拟化的定义,“虚拟化是资源的逻辑表示,它不受物理限制的约束”。这里的资源包括计算机系统、进程、网络、存储、内存等,分别对应系统虚拟化、进程虚拟化、网络虚拟化、存储虚拟化、内存虚拟化…….。例如,就内存虚拟化而言,内存是真实资源,硬盘则是这种资源的替代品,经过虚拟化后,两者具有相同的逻辑表示。虚拟化层向应用程序隐藏了如何在硬盘上进行内存交换、文件读写,如何在内存与硬盘间实现统一寻址和换入换出等细节。对于使用虚拟内存的应用程序而言,它们仍然可以使用一致的分配、访问和释放的指令对虚拟内存进行操作,如同访问真实的物理内存。
1. 2系统虚拟化技术及分类
目前成熟的拟化技术主要是系统虚拟化技术。该技术通过系统虚拟机提供完整的系统环境,这个环境可以支持操作系统及其用户进程。系统虚拟机如图1所示,在该例子中,虚拟软件模拟(Emulation)硬件ISA(指令集体系结构),使应用软件看到一个与硬件支持ISA所不同的ISA,其中,关键的虚拟软件被称为虚拟机监视器(VMM,Virtual Machine Monitor或Hypervisor),负责在客户虚拟机之间调度和管理硬件资源的分配,并可能将一种ISA翻译成另一种ISA。除VMM外,与系统虚拟机密切相关的还有宿主机和客户机2个术语:
原生虚拟机:VMM直接安装在硬件之上,是运行在特权模式的唯一软件,Guest OS和应用程序运行在非特权模式。常用于服务器类的应用。
用户模式的寄宿虚拟机:VMM安装在Host OS内,运行在非特权的用户模式,这种方式易于用户操作的方便和虚拟机实现的简单。但VMM需要利用Host OS的可用操作来控制和管理虚拟机需要的硬件资源,在没有源代码和商业许可证的条件下,实现起来较为困难。常用于桌面类的应用。
双重模式的寄宿虚拟机:为了效率等原因,用户模式的寄宿虚拟机也希望能让部分VMM代码运行在特权模式,这通常需要修改宿主机操作系统来扩展其功能,比如通过内核扩展或者修改设备驱动等技术手段,这样就产生了双重模式的寄宿虚拟机。
根据VMM是否能对硬件进行完全模拟,系统虚拟化技术又可分为全虚拟化(FV, Full Viriualization)和半虚拟化(Para-virtualization)。
全虚拟化:要求VMM模拟硬件的所有关键特性,包括ISA、IO操作、终端、内存访问等,凡是能够直接在硬件上运行的软件功能,VMM之上的Guest OS都应该具备。如图3所示,在全虚拟化环境下,VMM在Guest OS和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使Guest OS无需修改就能运行。这种方式是业界现今最成熟和最常见的,这种方式下的VMM既有原生虚拟机,也有寄宿虚拟机,知名的产品有IBM CP/CMS, VirtualBox , KVM , VMware Workstation和VMware ESX ( 4.0版之后改名为VMware vSphere)等虚拟机软件。全虚拟化的优点在于无需对GuestOS进行修改,用户使用也非常方便,但在性能方面不是特别优异。
半虚拟化:如图4所示,VMM同样需要模拟硬件,主要的不同在于,VMM之上的Guest OS需要进行修改,集成虚拟化的代码,主动地配合VMM来实现虚拟化。通过这种方法无需重新编译或捕获特权指令,使其性能非常接近物理机,最经典的产品就是Xen软件,微软的Hyper-V所采用技术也和Xen类似,也可以归入半虚拟化。半虚拟化在性能上有优势,VMM的实现可以更为精简,但需要对Guest OS进行修改,用户体验不佳,一般需要专业人士进行安装和配置。而且在没有硬件辅助的情况下,难以适用于Windows这类闭源操作系统。
目前在PC市场上占绝对统治地位的X86架构CPU,其ISA中不能满足Popek和Goldberg在其虚拟化名篇中提出的虚拟化需求,对虚拟化支持不好。为了更好的支持虚拟化,INTEL和AMD分别提出了VT-x和AMD-V技术,在各自的CPU中增加了支持虚拟化的指令集和运行模式,可供全虚拟化和半虚拟化产品进行优化,使虚拟机的性能大大提升。此外,还可使Xen这类半虚拟化的VMM上运行不加修改的Windows操作系统。这种技术叫做硬件辅助虚拟化。
还有一种系统虚拟化叫做硬件仿真(Emulation),其系统虚拟机一般属于寄宿虚拟机,在物理机的操作系统上创建一个应用程序(Hardware VM)来模拟所想要的硬件,并在此程序上运行无需修改的客户操作系统,如图5所示。知名的产品有Bochs、QEMU、微软的Virtual PC和风河的Simics等虚拟机软件。
最后一种系统虚拟化叫做操作系统级虚拟化,如这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于虚拟专用服务器(VPS),通过修改Host OS内核实现。主要的技术有Parallels Virtuozzo Containers,Unix系统上的chroot和Solaris上的Zone等技术。其主要优点是具备与物理机相近的性能。缺点是在资源隔离方面表现不佳,而且对Guest OS的型号和版本有限定。
2、系统虚拟化的应用
系统虚拟化技术作为一种最流行的虚拟化技术,己经得到广泛的应用。在传统计算领域,主要的应用包括服务器整合、虚拟桌面、虚拟设计、软件测试、自动化管理和应用部署。而在通信网络与安全保密领域,可以预料到的应用包括:
①多级安全:在同一物理机上通过VMM之上运行、隔离多个不同安全等级的Guest OS,满足多级安全的需求,比如一个Guest OS用于普通办公、一个Guest OS用于家庭娱乐、一个Guest OS用于网上银行。从比多级安全更普适的角度来看,不同的Guest OS还可以是满足不同目的的OS,以解除物理硬件的约束,最大限度地满足多样化的应用需求。例如用于车载计算机的风河虚拟机上可以运行同时一个RTOS(实时操作系统)和一个通用OS,RTOS提供用于汽车ABS(自动防抱死系统)控制、而通用OS用于人机交互。
②移动用户体验提升:斯坦福大学的Openflow项目描述了这样一种应用,利用Openflow控制器控制服务器中虚拟机的迁移,使移动用户始终离服务器最近,时延最小,以提升移动用户的用户体验。
③蜜罐与蜜网:虚拟机连同虚拟机连成的网络作为蜜罐和蜜网可以用于研究黑客的行为,而不会给物理计算机和物理网络带来损坏。
④桌面虚拟化:将用户的桌面环境与其使用的终端设备解祸合。服务器上存放的是每个用户的完整桌面环境。用户可以使用不同的具有足够处理和显示功能的终端设备,如个人电脑或智能手机等,通过网络访问该桌面环境。桌面虚拟化的最大好处就是能够使用软件从集中点来配置PC及其他客户端设备,这样减少了现场支持工作,加强了对客户端设备的应用软件、补丁和安全保密策略的管理。这种方式可能也比较适合于企业内网个人计算机安全保密管理,可以极大地减少非专业用户的个人配置和误操作。
⑤嵌入式虚拟化:继传统的服务器和桌面计算机,嵌入式设备成为虚拟化技术应用的新兴领域。例如,Cisco在其CRS-1路由器中使用了2个Guest OS,用于控制平面功能的备份。而在嵌入式的手机、平板电脑终端,系统虚拟化技术也大有前景,OKLab公司与Citrix公司合作的Nirvana概念手机,利用虚拟化技术增强了手机的安全性,使手机能够应用多种操作系统,并通过类似于桌面虚拟化的技术,使手机终端作为移动用户在任何地点的工作环境。
3、结语
由于其诸多的优点,系统虚拟化技术已经在桌面、数据中心服务器得到广泛应用。然而,凡事有利必有弊,虚拟化的应用也给信息安全、通信网络和管理带来了不小的挑战。目前可以预料到的包括:
①对终端安全的挑战:由于系统虚拟化在个人电脑上的广泛应用,传统安装在操作系统中的杀毒、终端监控难以对整个物理计算机提供终端安全防护。这些软件需要与VMM配合,甚至做到VMM内部。
②对数据中心网络接入带来的挑战:由于数据中心开始广泛使用虚拟化,越来越多的服务器被改造成支持虚拟化,数据中心内部的物理网口越来越少,一台物理服务器中的多个虚拟机共享一条上联网线。这带来两方面的问题:首先,单个操作系统和网络端口之间不再是一一对应的关系,从网管人员的角度来看,原来针对端口的策略都无法部署,增加了管理的复杂程度。其次,目前主流的虚拟机产品都没有网管,一旦出现问题,网管人员和服务器维护人员可能出现扯皮,即责任限定不清。因此,对于应用虚拟化的数据中心网络接入,接入层的概念不再仅仅针对物理端口,而是延伸到服务器内部,为不同虚拟机之间的流量交换提供服务,将虚拟机同网络端口重新关联起来。文献对此问题进行了精彩分析,这是一个涉及系统虚拟机、服务器网卡和数据中心接入网络交换机的巨大蛋糕,HP, Cisco和Vmware等产业巨头混战其中,目的在于重整虚拟机服务器同数据网络之间那条薄弱的管道,将以往交换机上强大的功能延伸进虚拟化的世界,从而掌握下一代数据中心网络的话语权。
③对通信安全带来的挑战:既然交换机都需要将其强大的功能延伸进虚拟化的世界,那么8保密机、防火墙等信息安全设备是否也需要呢?随着虚拟机的广泛应用,端到端的IPSec通道可能位于两个虚拟机之间,IPSec加密卡能否支持这种功能?防火墙以往针对物理机的访问控制策略,现在是否要针对虚拟机?
④对网络管理带来的挑战:如挑战②所述,主流的虚拟机产品都没有网管,网管也需要延伸进虚拟机的世界,对物理机内部的虚拟机互连网络以及外部的通信进行统一的管理。
挑战,从另一个角度来看就是机遇,关键看如何应对。在虚拟化浩浩荡荡的技术大潮中,只要能够解决上述挑战,传统的通信网络与信息安全行业将迎来不小的发展机遇。
CIO之家 www.ciozj.com 公众号:imciow