现在由于虚拟化技术在x86服务器上的迅速普及已经引发了虚拟化技术的热潮,但虚拟化技术最初只是应用在大型主机上。大型机上的虚拟分区技术最早可以追溯到上世纪六、七十年代。早在上世纪60年代,IBM公司就发明了一种 *** 作系统虚拟机技术,允许用户在一台主机上运行多个 *** 作系统,让用户尽可能地充分利用昂贵的大型机资源。
最早使用虚拟化技术的是IBM 7044 计算机。IBM之后,在上世纪60年代还开发了型号为Model 67的System/360主机。Model 67主机通过虚拟机监视器(Virtual Machine Monitor)虚拟所有的硬件接口。1965年IBM公司的“M44/44X”计算机项目,定义了虚拟内存管理机制,用户程序可以运行在虚拟的内存中,对于用户来说,这些虚拟内存就好像一个个“虚拟机”,为多个用户的程序提供了独立的计算环境。
IBM提出的虚拟机技术,使一批新产品涌现了出来,比如:IBM360/40,IBM360/67,以及VM/370,这些机器在当时都具有虚拟机功能,通过一种叫VMM(虚拟机监控器)的技术在物理硬件之上生成了很多可以运行独立 *** 作系统软件的虚拟机实例。
由于虚拟化技术技术在商业应用上的优势,RISC服务器与小型机成为了虚拟化技术第二代受益者。1999年,IBM公司在AS/400上提出了上“逻辑分区(LPAR)”技术和新的高可用性集群解决方案。在POWER管理程序上运行的AS/400 LPAR令单台服务器工作起来如同12个独立的服务器。而在2002年,IBM 还更进一步,其AIX5L v52还首次包括了IBM实现的动态逻辑分区(DLPAR)。DLPAR允许在无需重启系统的情况下,将包括处理器、内存和其它组件在内的系统资源分配给独立的分区。这种在不中断运行的情况下进行资源分配的能力不仅令系统管理变得更加轻松,而且因为能够更好地使用资源而帮助降低总拥有成本。
不过,尽管惠普、Sun公司也跟随IBM在自己的RISC服务器上提供了虚拟化技术,但由于真正使用大型机和小型机的用户还是少数,加上各家产品和技术之间并不兼容,虚拟化技术仍旧不太被公众所关注。而现在,虚拟化技术的发展已经惠及到了x86架构。
此前,虚拟化技术在x86架构上进展缓慢的主要原因是x86架构本身不适合进行虚拟化,不过这个障碍已经由英特尔、AMD修改,x86处理器的指令集得到解决;还有一个原因是x86处理器的性能不足,这一原因也由于x86处理器在性能上的飞速提高得到了解决。由于x86架构的广泛普及,x86架构上的虚拟化技术也得到了比以前更大的关注。
随着x86平台上虚拟化技术的实现,首次向人们展示了虚拟化应用的广阔前景,因为x86平台可以提供便宜的、高性能和高可靠的服务器。更重要的是,一些用户已经开始配置虚拟化的生产环境,他们需要得到新的管理工具,从而随着虚拟化技术的发展而得到更大的收益。
不过,与已经有多年历史的UNIX服务器、大型主机上的虚拟化技术相比,x86服务器上的虚拟化仍旧处于早期阶段——根据英特尔的蓝图,在处理器当中集成硬件辅助虚拟化指令只是IA平台上的第一步,而在第二步则要实现I/O方面的虚拟化,直到最后实现整个IA平台的虚拟化。也就是说,目前的x86平台上,仅仅能够实现在处理器级别的虚拟化,在I/O以及其他方面的虚拟化还需要进一步的发展。不仅如此,x86架构上的虚拟化技术还无法完美实现虚拟分区之间动态迁移,而这些在UNIX平台、大型主机上早已不是问题。目前,x86架构上的虚拟化技术的最高规划是支持8路SMP系统,可以实现对单个CPU资源的配置。
自2006年以来,从处理器层面的AMD和Intel到 *** 作系统层面的微软的加入,从数量众多的第三方软件厂商的涌现到服务器系统厂商的高调,我们看到一个趋于完整的服务器虚拟化的产业生态系统正在逐渐形成。这也使得在过去的一两年时间里,虚拟化开始成为广受关注的热点话题。整体看来,随着计算机新技术的飞速发展,虚拟化的前景和一年前相比几乎彻底改变了,新的虚拟化平台前景十分乐观。这是信息化发展的必然趋势,当然是具有实际意义,比如说
应用虚拟化
前面几种虚拟化技术,主要还专注于对硬件平台资源的虚拟优化分配,随着IT应用的日益广泛,应用虚拟化作为虚拟化家族的明日之星登上了历史舞台。2006年7月由Forrester咨询公司在美国对各种不同行业的高层IT管理人员所做的一项研究显示,当今的机构现在将应用虚拟化当作是业务上的一个必由之路,而不是一个IT决策。据统计,全世界目前至少有超过18万个机构在利用应用虚拟化技术进行集中IT管理、加强安全性和减少总体成本。
尽管在过去十年间虚拟技术有了迅速的发展,但现实情况是,当需要使用应用系统的时候,我们仍然把自己的思维局限在电脑机箱之内。从键盘、鼠标、麦克风或扫描仪接收用户输入的设备,通常也是处理和存储数据、通过对显示器、打印机和扬声器的输出来进行响应的同一设备。然而,随着虚拟化概念的发展和变化,“应用虚拟化”成为一个正在迅速发展的市场。
何为应用虚拟化
简单来讲,应用虚拟化技术使机构能够用更少的投入做更多的事情,并最终节省经费。这样,企业决策者就能够在IT开销与业务需求之间达成更好的平衡——由运营成本降低所节省的经费可以重新投入到能够推动增长的业务领域中。
从技术角度来讲,应用虚拟化可以简单描述为“以IT应用客户端集中部署平台为核心,以对最终用户透明的方式完全使用户的应用和数据在平台上统一计算和运行,并最终让用户获得与本地访问应用同样的应用感受和计算结果。”
虚拟化背后的主要推动力是基础设施各方面的猛烈增长,同时伴随着IT硬件和应用的大量增加。而且,IT系统正在变得越来越大,分布越来越广,并且更加复杂,因而难以管理,但要求加强IT控制的业务和监管压力却在继续增大。这听起来可能很专业,但对业务决策者来说却很中听,因为应用虚拟化正在帮助解决当今机构所面临的很多推动力方面的问题——提高业务效率、增强员工移动性、遵守安全与监管规定、向新兴市场拓展、业务外包、以及业务连续性等等。
在可能实现的一系列利益当中,应用虚拟化技术能帮助企业解决三个关键方面的问题——安全性、性能和成本。从安全角度来讲,应用虚拟化从其设计本身来看是安全的。采用客户-服务器端应用,数据安全面临风险。IT人员不仅必须应对数据的存放、打印和 *** 控环境,而且还必须考虑数据在网络内和网络外如何迁移,并保证知识产权不会泄露,电脑病毒也不会潜入。启动应用虚拟化项目后,一个公司的所有系统和数据都被整合到了一起,从而几乎消除了在设备层面上数据被盗或数据丢失的风险。性能改善对很多公司来说是另一个吸引人的因素。因为客户-服务器端应用依靠网络来传输流量,所以它们会为网络增添带宽消耗问题。这种问题困扰着很多企业,反过来又会降低应用系统的性能。应用虚拟化技术可以将各种应用系统集中起来,只有一个通过网络传送的虚拟界面。这样可以保证在极低的带宽上实现高性能,而不管设备、网络和地点如何。所以在业务扩张或合并的情况下,企业能够在几分钟或几小时时间内让新用户上网,而不像过去那样需要几个星期或几个月。因此,容易理解为什么应用虚拟化是很多所谓的“业务流程外包”公司所欢迎的一种方式。
个人计算设备和 *** 作系统的繁多使得客户-服务器端应用的测试、调试和客户定制开发成本高昂且耗费时间。采用应用虚拟化技术之后,将不需要在每个用户的桌面上部署和管理多个软件客户端系统,所有应用客户端系统都将一次性地部署在数据中心的一台专用服务器上,这台服务器就放在应用服务器的前面。客户也将不需要通过网络向每个用户发送实际的数据,只有虚拟的客户端界面(屏幕图像更新、按键、鼠标移动等等)被实际传送并显示在用户的电脑上。这个过程对最终用户是一目了然的,最终用户的感觉好像是实际的客户端软件正在他的桌面上运行一样。
客户-服务器端应用要求在每个用户的电脑上安装客户端软件,从而导致更高的成本,因为需要在分布式网络上管理这些软件的部署、补丁和升级。这个问题随着用户登录到每个新应用系统的需求量呈增长趋势,因为IT部门需要在每个用户的桌面上部署另一个独特的客户端设备。即便在最讲究战术的接入服务场景中,应用虚拟化可以带来的成本效益也是相当诱人的。通过将IT系统的管理集中起来,企业能够同时实现各种不同的效益——从带宽成本节约到提高IT效率和员工生产力以及延长陈旧的或当前的系统的寿命等等。
目前,应用虚拟化能够展现给用户最直接的功能还是远程应用交付,或者叫远程接入,应用虚拟化领域,从全球看,走在最前沿的厂商还是Citrix(思杰),其推出的应用虚拟化平台Citrix交付中心(Citrix Delivery Center),即Citrix应用交付基础架构解决方案正在逐步进行中国全面本地化的进程。国内最具实力的应用虚拟化领导厂商极通科技,也在2008年7月向全球推出极通EWEBS 2008应用虚拟化系统,该产品在EWEBS 2008中采用了极通科技独创的AIP(Application Integration Protocol)技术,把应用程序的输入输出逻辑(应用程序界面)与计算逻辑指令隔离开来,在用户访问EWEBS服务器发布的应用时,在EWEBS 服务器上会为用户开设独立的会话,占用独立的内存空间,应用程序的计算逻辑指令在这个会话空间中运行,应用程序的界面会通过AIP协议传送到用户计算机上,用户计算机只需要通过网络把键盘、鼠标及其他外设的 *** 作传送到服务器端,从服务器端接收变化的应用程序界面,并且在用户端显示出来就可以获得在本地运行应用一样的访问感受,最终实现用户客户端使用人员不受终端设备和网络带宽的限制,在任何时间、任何地点、使用任何设备、采用任何网络连接,都能够高效、安全地访问EWEBS服务器(集群)上的各种应用软件。
CPU虚拟化
虚拟化在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。简单说来,CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个 *** 作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
纯软件虚拟化解决方案存在很多限制。“客户” *** 作系统很多情况下是通过VMM(Virtual Machine Monitor,虚拟机监视器)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。(注意,大多数处理器和内存访问独立于VMM,只在发生特定事件时才会涉及VMM,如页面错误。)在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上 *** 作系统所处的位茫。如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。
CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持 *** 作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,目前缺少对64位客户 *** 作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统 *** 作系统之外,还支持64位客户 *** 作系统。
虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些 *** 作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。
两大CPU巨头英特尔和AMD都想方设法在虚拟化领域中占得先机,但是AMD的虚拟化技术在时间上要比英特尔落后几个月。英特尔自2005年末开始便在其处理器产品线中推广应用英特尔Virtualization Technology(Intel VT)虚拟化技术。目前,英特尔已经发布了具有Intel VT虚拟化技术的一系列处理器产品,包括桌面平台的Pentium 4 6X2系列、Pentium D 9X0系列和Pentium EE 9XX系列,还有Core Duo系列和Core Solo系列中的部分产品,以及服务器/工作站平台上的Xeon LV系列、Xeon 5000系列、Xeon 5100系列、Xeon MP 7000系列以及Itanium 2 9000系列;同时绝大多数的Intel下一代主流处理器,包括Merom核心移动处理器,Conroe核心桌面处理器,Woodcrest核心服务器处理器,以及基于Montecito核心的Itanium 2高端服务器处理器都将支持Intel VT虚拟化技术。
而AMD方面也已经发布了支持AMD Virtualization Technology(AMD VT)虚拟化技术的一系列处理器产品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,并且绝大多数的AMD下一代主流处理器,包括即将发布的Socket F接口的Opteron都将支持AMD VT虚拟化技术。
网络虚拟化
网络虚拟化是目前业界关于虚拟化细分领域界定最不明确,存在争议较多的一个概念。微软眼中的“网络虚拟化”,是指虚拟专用网络 ()。 对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。网络虚拟化可以帮助保护 IT 环境,防止来自 Internet 的威胁,同时使用户能够快速安全的访问应用程序和数据。
但是网络巨头思科(Cisco)不那么认为。出身、成名且目前称霸于网络的思科公司,当然在对IT未来的考虑上以网络为核心。它认为在理论上,网络虚拟化能将任何基于服务的传统客户端/服务器安置到“网络上”。那么,这意味着可以让路由器和交换机执行更多的服务,自然,思科在业界的重要性和生意额都将大幅增加。思科表示网络虚拟化由三个部分组成: 访问控制、路径提取,以及服务优势。从思科的产品规划图上看,该公司的路由器和交换机将拥有诸如安全、存储、VoIP、移动和应用等功能。 对思科而言,他们的战略是通过扩大网络基础设备的销售来持续产生盈利。 而对用户来讲,这能帮助他们提高网络设备的价值,并调整原有的网络基础设备。
对于网络阵营的另一巨头,3Com公司在网络虚拟化方面的动作比思科更大。3Com的路由器中可以插入一张工作卡。 该卡上带有一套全功能的Linux服务器,可以和路由器中枢相连。在这个Linux服务器中,你可以安装诸如sniffer、VoIP、安全应用等等。此外,该公司还计划未来在Linux卡上运行VMware,以让用户运行Windows Server。 3Com的这个开源网络虚拟化活动名为3Com ON(又名开放式网络)。
当然,王婆卖瓜自卖自夸,思科与3Com自己的一厢情愿决不能作为网络虚拟化大旗真正升起的标志,现在,网络虚拟化依然处于初期的萌芽阶段,但在人类网络信息化飞速需求的现在,我们有理由相信它的突破和成长将是飞速的。
服务器虚拟化
与网络虚拟化不同,服务器虚拟化却是虚拟化技术最早细分出来的子领域。根据2006年2月Forrester Research的调查,全球范围的企业对服务器虚拟化的认知率达到了75%。三分之一的企业已经在使用或者准备部署服务器虚拟化。这个产生于20世纪60年代的技术日益显示出其重要价值。由于服务器虚拟化发展时间长,应用广泛,所以很多时候人们几乎把服务器虚拟化等同于虚拟化。
关于服务器虚拟化的概念,各个厂商有自己不同的定义,然而其核心思想是一致的,即它是一种方法,能够通过区分资源的优先次序并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。
似乎与所有颠覆性技术一样,服务器虚拟化技术先是悄然出现,然后突然迸发,最终因为节省能源的合并计划而得到了认可。如今,许多公司使用虚拟技术来提高硬件资源的利用率,进行灾难恢复、提高办公自动化水平。本组文章分别从服务器、存储、应用程序和桌面虚拟化技术三个角度介绍了如何消除物理硬件的限制。
有了虚拟化技术,用户可以动态启用虚拟服务器(又叫虚拟机),每个服务器实际上可以让 *** 作系统(以及在上面运行的任何应用程序)误以为虚拟机就是实际硬件。运行多个虚拟机还可以充分发挥物理服务器的计算潜能,迅速应对数据中心不断变化的需求。
虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个 *** 作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术有可能出现在基于行业标准的大众化x86服务器上。
微软于2004年底宣布了其Virtual Server 2005计划。与其他服务器虚拟化技术一样,Virtual Server 2005允许用户对服务器进行分区,以使这些服务器能够支持多个 *** 作系统和应用。计划于2005年面市的Virtual Server建立在去年年初时通过购买Connectix而获得的技术基础之上,该软件可以在Windows、Linux和Mac OS服务器及工作站上运行。
微软宣布Windows Server 2008发行版将包括虚拟化服务器 (WSV)的测试版在内,Windows Server 2008是微软最新的服务器 *** 作系统,可在一个服务器上虚拟化多种 *** 作系统,如Windows、Linux 等等。服务器 *** 作系统内置的虚拟化技术和更加简单灵活的授权策略,获得前所未有的易用性优势并降低成本。借助Terminal Services Gateway 和 Terminal Services RemoteApp ,可轻松进行远程访问并与本地桌面应用程序进行集成,还可实现在无需 的情况下,安全无缝地部署应用程序。
另外,在服务器虚拟化技术方面走得比较靠前的应该是IBM和HP等服务器厂商。今年以来,这两家公司在虚拟化领域也非常积极,在最新的RISC架构服务器及最新版的 *** 作系统中,都嵌入了虚拟化技术。
先说说IBM,早在p690服务器和AIX 5L *** 作系统首次公布的时候,IBM就宣布在其动态逻辑分区(LPAR)技术的支持下,一个系统内可独立的运行多个分区,每个分区运行独立的 *** 作系统。这时候的分区,是以CPU为“颗粒”的。
到去年发布p5服务器时,IBM大张旗鼓地扯出了虚拟技术的大旗。不过,与以前相比,在虚拟化技术的帮助下, IBM最新的微分区技术打破了分区上以CPU为“颗粒”的限制,可以将单个CPU划分为10个微分区,从而创建和运行比物理处理器数量更多的分区。IBM 同时宣布,新版 *** 作系统AIX 53可以支持1/10 CPU颗粒的微分区。
今年,IBM进一步拓展了其服务器虚拟技术的范畴,推出了由 *** 作系统、系统技术和系统服务三部分组成的服务器虚拟引擎。其中, *** 作系统涉及AIX、 i5/OS、z/OS和Linux,其技术宗旨是单台服务器内运行多种 *** 作系统、在异构IT基础架构中以统一的方式实现资源的共享和管理以及管理非IBM *** 作系统平台;系统技术包括微分区、vLan、虚拟I/O、Hypervisor等;而系统服务则包括一个服务器系统服务套件和一个存储系统服务套间。在服务器系统服务套间中,包括硬件监督模块VE console虚拟引擎控制台,可以利用两个主要的功能模块Launchpad和Health Center,监控资源的健康状态、进行问题诊断和系统管理;另外还包括硬件管理模块IBM Direction Multiplatform(DCM)整合系统管理。
同时,IBM还推出了应用虚拟工具套件,包括应用监督模块Enterprise Workload Management企业负载管理器(EWLM),可以在异构环境下自动管理分布式企业级系统,根据业务优先级将IT服务分类,并设立相应的性能目标,并根据这些性能目标,提供端到端的性能分析和评估,通过分析,EWLM自动按照应用拓扑调整网络路由。与EWLM相配合的是一个应用管理模块Tivoli Provisioning Manger(TPM),该模块与EWLM配合,可以实现系统部署和配置步骤的自动化,为IT系统的自动部署、资源分配和启用提供解决方案。
对于HP,我们最熟悉的就是HP提供三个层次的虚拟化解决方案。其中,部件虚拟化可以优化不同类型IT资源的利用,如服务器、存储和网络资源,包括分区、集群、工作负载管理和应用虚拟化;集成虚拟化可以把优化多个部件的虚拟化方法结合在一起,自动调度资源满足服务水平协议(SLO),包括虚拟服务器环境、连续访问存储专用服务器等;而完全虚拟化可以优化所有异构资源、使得资源供应能够实时满足业务需求。
HP-UX 下的分区连续技术能够把服务器划分成物理或逻辑独立的分区,为优化资源利用、提高服务器的可用性提供坚实的基础。
硬件分区 (nPars)--HP nPars 是单个服务器中的硬件分区。nPars 根据服务器类型最多提供 16 个硬件分区、完全的硬件和软件隔离能力以及在一个服务器上运行多个OS实例。
虚拟分区 (vPars)--HP vPars 具有在一个系统或硬件分区内实现执行多个OS实例的独特特性。每个 vPar 能够拥有规定的内存量、一个或多个物理内存区域、一个规定的CPU池、服务器内一个或多个I/O 卡。vPars 能够使用软件命令动态地创立和修改。因此,每个应用能够在性能最大、OS配置要求得到满足的环境中运行。
资源分区--进程资源管理软件 (PRM) 能够动态地以多种方式把系统资源 (CPU, 内存和磁盘 I/O)分配给客户的应用,分配的方式可以是根据份额、百分比和处理器组 (pSets)。 pSets 允许在服务器上创立处理器组,而应用或用户可以被分配到在规定的pSet 上运行。
存储虚拟化
随着信息业务的不断运行和发展,存储系统网络平台已经成为一个核心平台,大量高价值数据积淀下来,围绕这些数据的应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因为这个原因,虚拟化技术又一子领域——虚拟存储技术,应运而生。
其实虚拟化技术并不是一件很新的技术,它的发展,应该说是随着计算机技术的发展而发展起来的,最早是始于70年代。由于当时的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术,最典型的应用就是虚拟内存技术。
随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大。这样的需求刺激了各种新技术的出现,比如磁盘性能越来越好、容量越来越大。但是在大量的大中型信息处理系统中,单个磁盘是不能满足需要,这样的情况下存储虚拟化技术就发展起来了。在这个发展过程中也由几个阶段和几种应用。首先是磁盘条带集(RAID,可带容错)技术,将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。而随着数据量不断增加和对数据可用性要求的不断提高,又一种新的存储技术应运而生,那就是存储区域网络(SAN)技术。
SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。目前讨论比较多的包括iSCSI、 FC Over IP 等技术,由于一些相关的标准还没有最终确定,但是存储设备公用化、存储网络广域化是一个不可逆转的潮流。
所谓虚拟存储,就是把多个存储介质模块(如硬盘、RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池(Storage Pool)中得到统一管理,从主机和工作站的角度,看到就不是多个硬盘,而是一个分区或者卷,就好象是一个超大容量(如1T以上)的硬盘。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输性能的存储系统,就称之为虚拟存储。
这些都是比较前沿虚拟化技术。看完了大概就能明白。多给点分那。。。上篇文章介绍了云计算之虚拟化技术,针对虚拟化技术的实现方式和技术细节进行了描述。从云计算的核心组件来讲,虚拟化又分为计算虚拟化、存储虚拟化和网络虚拟化。本文就计算虚拟化进行讲解。
计算虚拟化就是在虚拟系统和底层硬件之间抽象出CPU和内存等,以供虚拟机使用。计算虚拟化技术需要模拟出一套 *** 作系统的运行环境,在这个环境你可以安装Windows,也可以部署Linux,这些 *** 作系统被称作GuestOS。他们相互独立,互不影响(相对的,因为当主机资源不足会出现竞争等问题,导致运行缓慢等问题)。计算虚拟化可以将主机单个物理核虚拟出多个vCPU,这些vCPU本质上就是运行的线程,考虑到系统调度,所以并不是虚拟的核数越多越好。计算虚拟化把物理机上面内存进行逻辑划分出多个段,供不同的虚拟机使用,每个虚拟机看到的都是自己独立的内存。从这个意义上讲,计算虚拟化包含了CPU虚拟化和内存虚拟化。
CPU具有根模式和非根模式,每种模式下又有ring0和ring3。宿主机运行在根模式下,宿主机的内核处于ring0,而用户态程序处于ring3,GuestOS运行在非根模式。相似的,GuestOS的内核运行在ring0,用户态程序运行在ring3。处于非根模式的GuestOS,当外部中断或缺页异常,或者主动调用VMCALL指令调用VMM的服务的时候(与系统调用类似)的时候,硬件自动挂起Guest OS,CPU会从非根模式切换到根模式,整个过程称为VM exit,相反的,VMM通过显式调用VMLAUNCH或VMRESUME指令切换到VMX non-root operation模式,硬件自动加载Guest OS的上下文,于是Guest OS获得运行,这种转换称为VM entry。
对于CPU虚拟化,有CPU过载使用、指定vCPU亲和性等技术。
在虚拟化环境下,服务器上的虚拟机会以逻辑CPU的方式给虚拟机分配CPU。因此在一个物理服务器主机上分配给虚拟机的vCPU总数可能会超过逻辑CPU数目,这种使用方式称之为CPU的过载使用。严格来说,即使是打开超线程,并以线程为单位给虚拟机分配vCPU,vCPU的数量也可能会超过物理CPU数目,因此这也是一种过载使用。与 *** 作系统向应用程序分配CPU一样,给虚拟机分配vCPU是由调度器决定的,调度器遵循一定的规则,向VM分配vCPU。
在Linux环境下,每个进程或线程可以绑定到特定的一个或几个物理CPU上运行,这称之为CPU的亲和性。每个vCPU都是物理机上的一个线程,可以通过taskset工具设置其处理器的亲和性,使其绑定到某一个或者几个处理器上进行调度。尽管Linux内核的进程调度算法已经非常高效了,在多数情况下不需要对调度进行干预。不过在虚拟化环境中,有必要对其进行设置,绑定到固定的逻辑CPU上,使得其独占某些CPU资源而不受其他业务的干扰。
除了CPU虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机。虚拟机的内存虚拟化很象现在的 *** 作系统支持的虚拟内存方式,应用程序看到邻近的内存地址空间,这个地址空间无需和下面的物理机器内存直接对应, *** 作系统保持着虚拟页到物理页的映射。现在所有的x86 CPU都包括了一个称为内存管理的模块MMU(Memory Management Unit)和TLB(Translation Lookaside Buffer),通过MMU和TLB来优化虚拟内存的性能。
为了使得虚拟机的内存看起来也是从一个零地址开始的一段连续地址空间,VMM引入了一层新的地址空间,即客户机物理地址空间,这个地址空间不是真正意义上的物理地址空间,它们之间还有一层转换。因此从虚拟机虚拟地址到真实物理地址需要两层转换:客户机虚拟地址(GVA)到客户机物理地址(GPA)的转换,客户机物理地址(GPA)到宿主机物理地址(HPA)的转换。在第一代虚拟化技术中,这两层转换是由软件通过影子页表来实现的,由于其效率较低,在第二代虚拟化技术中,Intel引入了EPT扩展页表通过硬件来实现转换,同样AMD也有类似的技术,称之为NPT嵌套页表。
对于内存虚拟化,有内存去重和内存气球等技术。
所谓内存去重,就是同一物理服务器上存在同一内存页的时候,共享这个页,以节省内存使用量。在同一物理服务器上运行多个相同OS虚拟机的情况下,OS的内核页面会有很多重复,所以该功能对于节省内存特别有效。在vSphere中,这个功能称之为透明页共享(TPS),在KVM中,这个功能称之为内核相同页合并(KSM)。
当在物理服务器上发出追加内存分配时,会从同一服务器上运行的其它VM中回收内存页,并将回收的内存页进行分配的机制,称之为回收,也叫内存气球。一旦要求追加内存,并且存在较多空闲内存的VM时,可以通过该VM的内存气球驱动,从该VM的闲置内存中回收内存。因为是从闲置的内存中回收,不会产生频繁的分页,因此在回收闲置内存时,不会对VM的性能有明显的性能影响。如果要回收的内存量很大,连非闲置的内存也要回收,就会对VM的性能有明显的影响。
另外,GPU虚拟化、Docker容器也属于计算虚拟化的范畴,后面的文章中也会讲到。请大家关注后续文章。服务器虚拟化平台方案主要的有三种,特点分别如下:\r\n1、思杰Citrix XenServer :XenCenter是Citrix的虚拟化图形接口管理工具,可在同一界面,管理多台的XenServer服务器。管理上,通常会先在XenCenter建立一个服务器群组(Pool),然后将位于同一机房内的XenServer服务器加入。和大多数服务器半虚拟化产品相同的是,当数台XenServer服务器连接到同一台共享磁盘驱动器,且将虚拟档案放置于此的前提下,可以通过Xen-Motion这项功能,将虚拟机以手动方式在线转移到其它的XenServer服务器,从事主机的维护,或者降低硬件资源的消耗。\r\n\r\n2、微软 Windows Server 2008 Hyper-V:是以Xen的虚拟化技术为基础开发而成的,而这个虚拟化平台目前已整合在64位的Windows Server 2008 *** 作系统,\r\n\r\n3、VMware ESX Server 这是最常用的:VMware ESX ServerESX Server \r\n运行在服务器裸机上,是基于硬件之上的架构。属于企业级应用。用同一台服务器底层硬件,划分出若干虚机,集中管理,很方便的做集群,负载均衡,热迁移等功能。\r\n总特点:\r\n将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,或者让几台服务器变成一台服务器来用,我们不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适合!\r\n友情提示:深圳天源腾创提供最优解决方案!IBM PureApplication System W1500 v10 和 W1700 v10(以下简称 PureApplication System)提供了一种在云中运行工作负载的环境。为了做到这一点,它提供了大量具备同时运行数千个计算机程序的计算机硬件。为了有效管理并利用这种硬件,该系统采用几种行业最佳实践来虚拟化其硬件资源,并给予工作负载极大灵活性以实现在云中随处运行。通过了解这些技术以及该产品如何利用这些技术,您将更好地了解 PureApplication System 所提供的云环境。
本文是一个三部分系列文章的第二部分,该系列文章介绍 PureApplication System 为托管应用程序运行时环境提供的硬件和软件基础:
硬件:A tour of the hardware in IBM PureApplication System 介绍了由 PureApplication System 组成的硬件。
虚拟化硬件:您正在阅读的这篇文章介绍了 PureApplication System 如何虚拟化硬件以实现基础架构即服务 (IaaS)。
运行时环境:在 IBM PureApplication System 中管理应用程序运行时环境 介绍了如何使用 PureApplication System 中的虚拟化硬件实现工作负载所部署到的应用程序运行时环境。
每篇文章都以上一篇为基础,全面地解释了这一基础。
为了理解 PureApplication System 中的资源虚拟化,我们将探讨合并到云计算系统中的交付模型(该方法用于虚拟化不同类型的资源)以及该产品如何利用这些方法。
云交付模型
虚拟化硬件资源通常称为 “基础架构即服务”。它是三种云交付模型(又称为云服务模型)之一:
基础架构即服务 (IaaS) 为计算、存储和网络提供了一种虚拟化硬件资源的环境。
平台即服务 (PaaS) 提供了一种虚拟化的应用程序运行时环境,包括 *** 作系统;应用服务器、数据库和消息传递之类的中间件;以及缓存、监控和安全之类的共享服务。
软件即服务 (SaaS) 在一个集中托管环境中提供网络可访问的业务应用程序,该环境是高度可靠且可伸缩的。
模型是渐增的,且每个模型以前一个模型为基础。图 1 说明了云交付模型。
图 1 云交付模型
如何使用虚拟机(VM)来虚拟化计算资源
文章 导航 IBM 云,第 1 部分: 云技术入门 更加详细地介绍了 云交付模型。这些交付模型不是特定技术,而是云计算系统的架构目标。本文着重介绍第一层基础架构即服务,并讲述如何在 PureApplication System 中实现基础架构即服务。
资源虚拟化
基础架构即服务是一个可通过资源虚拟化实现的目标。资源虚拟化 将工作负载(即,正在运行的程序)从其运行的底层硬件进行解耦。对于要运行的程序,它肯定需要硬件资源。但是,对于 “在云中” 运行的工作负载,它们肯定不能被特定硬件集所束缚。这意味着工作负载必须在多个冗余硬件集中的任何一个中运行。要实现此目标,云应该虚拟化硬件资源以将工作负载与硬件分离并使云能够管理这些资源的工作负载使用情况。
云将组织其硬件资源以使工作负载运行延续到三个主要类型,这是所有计算的基础:
计算资源:这是任意程序运行所需的 CPU 和内存。
网络资源:这在程序之间的连接,支持程序进行通信。
存储资源:这使程序能持续保存其状态。
PureApplication System 采用了虚拟化各种资源的技术:
使用虚拟机 (VM) 虚拟化计算资源。
使用虚拟局域网 (VLAN) 虚拟化网络资源。
使用存储区域网 (SAN) 虚拟化存储资源。
转载
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)