|
|
将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,或者让几台服务器变成一台服务器来使用,我们“虚拟”构建的未来不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率、简化系统的管理、实现服务器的整合,并让IT对业务的变化更具适应力。可以说,虚拟化技术确实给我们描绘出了一幅美妙的画卷。
虚拟化(Virtualization)对于不同的人来说可能意味着不同的东西,这要取决与他们所从事的工作领域的环境。通用的解释是它包含许多使服务器得到加强的虚拟机。有经验的程序员可能还记得,曾有一段时间他们担心是否有可用内存来存放自己的程序指令和数据。现在最基本的操作系统提供了虚拟内存的功能,这样程序员就不用再考虑这个问题了。IBM对大型机使用的 VM 可以允许多个用户和应用程序共享同一台机器,相互之间不会产生任何干扰。我们发现在很多计算平台上都实现了这种概念,或者通过软件来提供这种概念。
从现在开始“务虚”
然而,虚拟化技术的内涵远远不止于虚拟内存和虚拟服务器。目前,我们已经有了网络虚拟化、微处理器虚拟化、文件虚拟化和存储虚拟化等技术。如果我们在一个更广泛的环境中或从更高级的抽象(如任务负载虚拟化和信息虚拟化)来思考虚拟化技术,虚拟化技术就变成了一个非常强大的概念,可以为最终用户、应用程序和企业提供很多优点。
“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。” —— Jonathan Eunice, Illuminata Inc.
“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” —— Wikipedia
“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。” —— Open Grid Services Architecture Glossary of Terms
“虚拟化是资源的逻辑表示,它不受物理限制的约束。” —— IBM
为什么要进行虚拟化?
虚拟化的主要目的是对 IT 基础设施进行简化。它可以简化对资源以及对资源管理的访问。
消费者可以是一名最终用户、应用程序、访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器、磁盘、网络、仪器;也可以是软件,例如 Web 服务。
消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在 IT 基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。
IT 基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对 IT 基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。
在这个基础上,网格计算可以广泛地利用虚拟化技术。网格计算可以对 IT 基础设施进行虚拟化。它处理 IT 基础设施的共享和管理,动态提供符合用户和应用程序需求的资源,同时还将提供对基础设施的简化访问。
许多年前,除了大型机Unix配套的虚拟化工具之外,虚拟化程序还只是少数计算机发烧友在开源社区的业余爱好。然而,自从2000年互联网泡沫破灭,Unix用户大量迁移到x-86和安腾的Windows和Linux平台,而Windows和Linux并不像Unix那样有比较完善的虚拟化解决方案,所以Windows和Linux平台的虚拟化的需求连年成倍增长。
另外,根据Intel虚拟化白皮书统计,全球服务器数量在过去10年增长了150倍,空前复杂的网络环境给企业的IT部署,带来了巨大的管理难题。这也使得能够大量精简服务器的虚拟化技术需求迅猛增长。
逻辑虚拟和物理虚拟的区别
尽管虚拟化技术只是近年才变得火爆,但是虚拟化却有着悠久的历史。早在1965年,IBM就已经在其IBM7044计算机上面建立了镜像。这个镜像就是虚拟化的开端。时至今日,虚拟技术经过40余年的发展,已经日臻完善。虚拟化技术的分类有很多标准,我们可以将虚拟划分的标准为,物理电器层虚拟(特点是不占用任何资源,Physical Par)和逻辑虚拟(特点是占用系统资源的软件式Logical Par)两种,进行分析。
物理级虚拟的技术,是将服务器的硬件资源,主要包括CPU、内存和I/O资源划分成一个一个区块。也就是技术上称之为的MBB (Modular Building Block)架构。每个服务器都变成一个MBB集合,其中的每一个划分好的区块资源,称之为BB(Building Block)。每个BB通过Crossbar Switch互连机制互相连接。每个BB 包含的CPU的频率可以不同,不同的频率由Crossbar Switch转换解决,因为Crossbar Switch的频率是固定的。
这样,服务器就可以在一个BB 上运行一个操作系统,或者也可以在多个BB 上运行一个系统。每个BB都是热插拔的,只需要调整BB设置,就可以改变一台服务器上的操作系统数量。早期的服务器不少采用这种MBB技术,例如SUN的E10000,和HP的Superdome。MBB架构的服务器有着明显的优点,第一是虚拟化部署过程不占用任何的系统资源,第二是应用的隔离程度也是100%。这两点都是其逻辑虚拟化所不能及的。
但是,这种传统的MBB仍旧有着不少弊端。 首先,MBB的最小粒度理论最小是1颗CPU,而通常是4颗CPU。但如今的CPU 能力今非昔比,单一CPU完全有能力运行多个操作系统。其次,MBB架构本身容易造成访问延迟。当一个BB(BB1)通过Crossbar Switch访问某一个BB2时,一旦连接不成功,就在Crossbar Swtich 形成优先级,反复尝试连接,而此时若BB3并发访问BB1,则必须等待BB2的访问成功之后。
显然,多路服务器所包含的CPU数量越多,这个延迟现象越严重。所以,MBB架构的用户在实际操作时,通常是建立物理分区,每个分区内只放入相对少量的BB来实现减少延迟。但是这样拆分服务器,虽然在服务器下的每个操作系统的运算能力得到了保障,但是无法发挥32路或64路服务器作为一个整体的潜在强大功能。
最后,MBB的部署相对缓慢。虽然后来部分厂商也支持热插拔的零宕机更改虚拟分区,但是厂商的工程师还是建议改变虚拟分区时最好重启操作系统。
再看看逻辑虚拟分区,这个层次的虚拟化起源非常早。几十年前IBM最早的虚拟化大型机就使用的是逻辑分区技术。当然,逻辑虚拟虽然由IBM首创,但是后来的HP、SUN 在自己的平台中也广泛使用。逻辑分区(LPAR),顾名思义是逻辑层面的虚拟分区,所以不能通过热插拔和总线连接来实现。逻辑分区的建立,通常依赖相应的软件、硬件、和固件(固化在硬件中的软件)共同完成。
细看逻辑虚拟
总的来说,逻辑虚拟部署简单,技术成熟,因此通常在一般的IT环境之中,逻辑虚拟更加适应实际工作要求。逻辑虚拟简单的说,就是基于软件的虚拟。基于软件的虚拟化厂商的竞争近年日趋激烈,各种各样的软件技术——包括OS集成、或者是ISV都有自己的产品推出。
VMware
VMware应用较广的一款产品是VI3软件套装,全称为VMware Infrastructure 3,这是一个软件套装,其中软件包括了ESX Server、VMFS(Virtual Machine File System)、DRS(Distributed Resourced Scheduler) 、Virtual SMP、 VMware Vmotion、VMware HA(High Availibility)、 Consolidated Backup和Virtual Center。
在VMware中,核心的软件是 ESX Server,ESX Server直接安装在裸机上,在硬件和操作系统之间形成一个虚拟化层。ESX Server将一台物理服务器划分为多个可移植的虚拟机环境。VMFS(Virtual Machine File System)则是封装的ESX Server的存储载体。
ESX的虚拟层级实际上是包裹了硬件,ESX创建了一个硬件接口层Hardware Interface Layer,所有的虚拟机如果想跟硬件通信,必须经过这个硬件接口层,在这个层级之中,诸如内存偏移转换的工作将被完成。这里需要强调的是,ESX的特点是完全包裹硬件,不允许程序直接访问硬件。
当然,ESX只是VMware的最基础的技术,VI3中剩余的工具,则被用于完善虚拟化和可视化管理。其中,DRS可以将多个ESX Server资源合并为群集,同时按照假定所有资源都在一台主机上的方法,简单的管理群集。
Virtual SMP可以让单个虚拟机,同时使用多个处理器。VMware Vmotion可以使虚拟机从一台物理服务器迁移到另一台物理服务器,过程中不用宕机。此外,也提供虚拟的双机热备和集成备份等功能。最后,所有虚拟化复杂的管理,都可以由Virtual Center虚拟中心控制台轻松完成。
Xen
XenSource,07年被Citrix收购之后,发展势头咄咄逼人。其核心技术是开源技术Xen,也即半虚拟 paravirtualization。Xen与VMware ESX非常相似,一样也是包裹硬件。但实际上,Xen的包裹并不严实,Xen允许一定情况之下的程序直接访问硬件,从而节省一些转换资源。除此之外,XenSource的功能与VI3极其相似,但是总体性能略逊一筹。
比如VMware的Vmotion,相应的功能在CitrixXenServerv4中称为Xenmotion,Vmotion能够零宕机迁移,但是Xenmotion还做不到这一点。虽然略逊一筹,但是XenSource的价格也只有VMware的一半,所以也是很好的选择。
除了XenSource之外,利用开源Xen作为软件核心的厂商还有Virtual Iron。但是Virtual Iron起步较晚,其实Virtual Iron一开始并非专注于Xen,早期产品是一些基于InfiniBand交换的硬件虚拟技术,但是之后转向Xen。
Microsoft & Linux
说到微软,每个独立软件厂商ISV、甚至所有IT厂商都对其有三分畏惧。从操作系统Windows、办公软件Office、数据库软件、娱乐播放Zune、游戏xbox、到互联网MSN,只要是微软踏入的领域,必将引发该领域的震荡洗牌。近年,微软也已经将触手伸向虚拟化软件。
早在2003年,微软悄然并购了虚拟化小厂connectix,当时并没有引起更多的注意。随后陆续推出了Virtual PC 2004、Virtual PC2007、Virtual Server 2005、Virtual Server 2005 R2。不过这些产品的影响都比较有限,在市场上并没有轰动效应。比起虚拟化领域的老大VMware,微软市场份额也是相当的可怜。
不过,微软已经做好了迎战VMware的充分准备,微软在2008年的Windows Server 2008中,全面加入功能完善的虚拟化(代号viridian)。就像以往的Unix一样,微软将虚拟化软件和操作系统结合到了一起。这一点令VMware十分紧张。如果回顾微软竞争的历史,我们会发现,辉煌一时的网景浏览器在与微软IE的竞争中败下阵来,而随着微软办公软件的壮大,许多办公软件企业也都不复存在。
Hyper-V介于物理硬件和虚拟机之间,代码非常少,不含任何第三方的驱动,非常的精简,这种构架使得虚拟机和硬件之间只通过很薄的一层进行连接,不像Virtual Server那样虚拟机和硬件之间需要经过多层的转换,因而虚拟机执行效率非常高,可以更加充分的利用硬件资源,使虚拟机系统性能非常的接近真实的操作系统性能。
Hyper-V对于硬件的支持大大提升,支持4颗虚拟处理器,支持64GB内存。 Hyper-V提供了对多个操作系统的支持如Windows Server 2003 SP2、Novell SUSE Linux Enterprise Server 10 SP1、Windows Vista SP1 (x86)和Windows XP SP3 (x86)等。Hyper-V也支持远程管理功能,基于Vista的远程管理补丁目前也已经发布,用户可以在Vista客户端打开Hyper-V控制台远程对服务器进行操作。
Hyper-V提供了一个方便灵活的虚拟化解决方案,具有很高的可操作性,具备强大的远程管理功能。Hyper-V操作简便,可以实现虚拟机宿主之间的快速迁移,兼容微软VPC、Virtual Server的虚拟机,可以将之前创建的虚拟机导入Hyper-V,虚拟磁盘可以进行扩展,操作起来非常灵活。除了上述优点外,Hyper-V的网络功能中还支持VLAN,可以和思科、华为等厂商的VLAN标准兼容,可以快速的进行配置。
在Linux方面,随着虚拟化的不断升温,Linux也逐渐在系统中集成了虚拟化功能。但是与微软一样,虚拟化都不够强大,欠缺管理工具和更强大的Virtual SMP等功能。当然,开源社区有很多虚拟化项目,不过目前来看,集成最多的,还是完善的Xen。
Unix
至于Unix,它已经是虚拟化的鼻祖了,AIX、HP-UX、和Solaris也都提供了虚拟化分区策略。这些UNIX虚拟化技术的时间都久远和成熟。
值得一提的是,Solaris的独特技术Container。Container是虚拟化软件中的一种新思想,其虚拟的对象不是硬件,而是操作系统本身。更简单的说,就是将操作系统和一些应用作为虚拟化的模版。当然,SUN Solaris的Container技术本身的确非常有新意,而且也非常稳定,但是却不见得适应所有的IT环境,毕竟Solaris的身份还是Unix,与许多应用都不兼容。
其实,与之类似的技术在开源社区中也有,叫做OpenVZ。利用OpenVZ技术的厂商也有不少,其中最著名的就是SWsoft的Virtuozzo。SWsoft将类似于SUN Container的技术全面带入了x86领域。
OpenVZ/Container在操作系统上有很多轻质化的VE/VPS。而且现在管理工具也允许VE/VPS零宕机的迁移。假设有一台服务器,物理能力如果允许上面同时安装3个虚拟化的操作系统,那么这台服务器的物理能力就可以创造数百个VE/VPS操作系统环境,因为每个虚拟化的VE/VPS只是轻质化的空间模版,不用重新安装系统。总的来说,VE/VPS非常适用于某些特定的行业,比如主机托管这种对于轻质化空间有大量需求的行业。责任编辑:边凯