虚拟化概述:模式的观点 - 虚客帝国 - 51CTO技术博客-领先的IT技术博客

来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:07:23
作者:Martin F. Maldonado, 资深技术架构师, IBM, 2006年7月
 虚拟化以各种形式存在已经有 30 多年的时间了。例如,虚拟机和虚拟内存就是这样建立的,我们通常已经不再过多地考虑这个问题了 —— 它们只是 IT 基础设施中的一部分而已。目前大家对虚拟化有了全新的兴趣,因为将它应用到新环境中时可以提供一些相当多的实际好处。当 Gartner Inc. 对将在未来 18 - 36 个月内提供价值的 10 种顶尖新兴技术进行预测时,虚拟化技术在这个 名单 中名列榜首。本文将利用一些常见的模式介绍一些基本的虚拟化概念。  什么是虚拟化? 虚拟化(Virtualization)对于不同的人来说可能意味着不同的东西,这要取决与他们所从事的工作领域的环境。通用的解释是它包含许多使服务器得到加强的虚拟机。有经验的程序员可能还记得,曾有一段时间他们担心是否有可用内存来存放自己的程序指令和数据。现在最基本的操作系统提供了虚拟内存的功能,这样程序员就不用再考虑这个问题了。IBM® 对大型机使用的 VM 可以允许多个用户和应用程序共享同一台机器,相互之间不会产生任何干扰。我们发现在很多计算平台上都实现了这种概念,或者通过软件来提供这种概念。 然而,虚拟化技术的内涵远远不止于虚拟内存和虚拟服务器。目前,我们已经有了网络虚拟化、微处理器虚拟化、文件虚拟化和存储虚拟化等技术。如果我们在一个更广泛的环境中或从更高级的抽象(如任务负载虚拟化和信息虚拟化)来思考虚拟化技术,虚拟化技术就变成了一个非常强大的概念,可以为最终用户、应用程序和企业提供很多优点。虚拟化技术有很多定义,下面就给出了一些这样的定义。然而,对于本文的讨论来说,IBM 给出的简洁定义以及资源的逻辑表示形式的概念都可以用来作为不同的虚拟模式的示例。
“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。” —— Jonathan Eunice, Illuminata Inc.
“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” —— Wikipedia
“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。” —— Open Grid Services Architecture Glossary of Terms
“虚拟化是资源的逻辑表示,它不受物理限制的约束。” —— IBM 公司 
为什么要进行虚拟化? 虚拟化的主要目的是对 IT 基础设施进行简化。它可以简化对资源以及对资源管理的访问。 消费者可以是一名最终用户、应用程序、访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器、磁盘、网络、仪器;也可以是软件,例如 Web 服务。 消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在 IT 基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。 IT 基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对 IT 基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。 在这个基础上,网格计算可以广泛地利用虚拟化技术。网格计算可以对 IT 基础设施进行虚拟化。它处理 IT 基础设施的共享和管理,动态提供符合用户和应用程序需求的资源,同时还将提供对基础设施的简化访问。 虚拟化是如何工作的? 虚拟化可以通过很多方法来证实。它不是一个单独的实体,而是一组模式和技术的集合,这些技术提供了支持资源的逻辑表示所需的功能,以及通过标准接口将其呈现给这些资源的消费者所需的功能。这些模式本身都是前面介绍过的各种不同虚拟形式的重复出现。
图 1. 虚拟化的概念



下面是在实现虚拟化时常常使用的一些模式和技术:
  1. 单一资源的多个逻辑表示 这种模式是虚拟化最广泛使用的模式之一。它只包含一个物理资源,但是它向消费者呈现的逻辑表示却仿佛它包含多个资源一样。消费者与这个虚拟资源进行交互时就仿佛自己是惟一的消费者一样,而不会考虑他正在与其他消费者一起共享资源。虚拟机就是这种模式的一个例子。硬件物理分区和逻辑分区(如 IBM System p、System z 和 System i 服务器)或软件产品(如 VMware、Microsoft Virtual Server 和 Xen)都实现了服务器的虚拟化。数据库视图的使用将数据与消费者隔离开来,这样可以基于消费者的角色和身份验证对资源进行访问,即使在所有消费者同时访问相同的数据库时,也不会出现任何问题。另外,网格使用虚拟化技术来管理网络上的数据,并在逻辑上将其作为一个系统呈现给消费者。下面的两个图示说明了服务器和信息的虚拟化。

    图 2. 单一资源的多个逻辑表示


  2. 多个资源的单一逻辑表示 这种模式包含了多个组合资源,以便将这些资源表示为提供单一接口的单个逻辑表示形式。在利用多个功能不太强大的资源来创建功能强大且丰富的虚拟资源时,这是一种非常有用的模式。存储虚拟化就是这种模式的一个例子。IBM 的 SAN Volume Controller 可以将几个存储卷组合在一起,将它们呈现为一个大型的单一存储设备。消费者并不知道自己的数据被分散到了多个磁盘上。在服务器方面,集群技术可以提供这样的幻想:消费者只与一个系统(头节点)进行交互,而集群事实上可以包含很多的处理器或节点。实际上,这就是从 IT 技术设施的角度看到的网格可以实现的功能。多种资源集都是通过一个简化的用户界面呈现出来,例如用户使用的门户,或应用程序使用的标准接口。从计算角度来看,网格在接受任务请求,对任务负载进行调度和管理,并在提供资源和返回结果的同时提供任务负载虚拟化的能力。

    图 3. 多个资源的单一逻辑表示




    图 4. 网格对基础设施进行虚拟化


  3. 在多个资源之间提供单一逻辑表示 这种模式包括一个以多个可用资源之一的形式表示的虚拟资源。虚拟资源会根据指定的条件来选择一个物理资源实现,例如资源的利用、响应时间或临近程度。尽管这种模式与上一种模式非常类似,但是它们之间有一些细微的差别。首先,每个物理资源都是一个完整的副本,它们不会在逻辑表示层上聚集在一起。其次,每个物理资源都可以提供逻辑表示所需要的所有功能,而不是像前一种模式那样只能提供部分功能(例如,前一种模式是文件的一部分,这种模式是文件的一个完全副本)。这种模式的一个常见例子是使用应用程序容器来均衡任务负载。在将请求或事务提交给应用程序或服务时,消费者并不关心到底是几个容器中执行的哪一个应用程序的副本为请求或事务提供服务。消费者只是希望请求或事务得到处理。一个具体的例子是 IBM 的 WebSphere® Application Server Extended Deployment。另外一个例子是文件虚拟化,其中为了满足冗余或性能的需要,可能为数据维护提供多个副本。当消费者访问文件时,文件系统(如通用并行文件系统 (GPFS))就会定位这些文件众多副本中的一个,但是消费者并不知道正在使用的文件副本的具体位置。

    图 5. 在多个资源之间提供单一逻辑表示


  4. 单个资源的单一逻辑表示 这是用来表示单个资源的一种简单模式,就仿佛它是别的什么资源一样。启用 Web 的企业后台应用程序就是一个常见的例子。在这种情况下,我们不是修改后台的应用程序,而是创建一个前端来表示 Web 界面,它会映射到应用程序接口中。这种模式允许通过对后台应用程序进行最少的修改(或根本不加任何修改)来重用一些基本的功能。也可以根据无法修改的组件,使用相同的模式构建服务。

    图 6. 单个资源的单一逻辑表示


  5. 复合或分层虚拟化 这种模式是刚才介绍的一种或多种模式的组合,它使用物理资源来提供丰富的功能集。信息虚拟化是这种模式一个很好的例子。它提供了底层所需要的功能,这些功能用于管理对资源、包含有关如何处理和使用信息的元数据以及对信息进行处理的操作的全局命名和引用。IBM WebSphere Information Server 就是这样一个例子,它提供了一些利用到异构资源和统一元数据的广泛连接来集成、丰富和传递信息所需的功能,有些体系架构或框架,例如 Open Grid Services Architecture(OGSA)或者 Grid Computing Components,实际上都是虚拟化的组合或虚拟化的不同层次。这个框架中的每一层都是更低一层的抽象,它为上层提供了一个定义好的接口。随着我们在这个架构中的层次(或框架堆栈)的上升,底层提供的资源都组合成了更复杂的功能。例如,任务负载虚拟化和信息虚拟化就为已经虚拟化过的基础设施(系统、存储和网络)提供了更高级的虚拟化。

    图 7. 网格计算组件
     
     
关于虚拟化管理 对于任何虚拟化环境来说,一个非常重要的方面是减少动态的和复杂的 IT 基础设施的管理和维护需求。另外,通过软件和工具实现的模式和技术都支持这些管理任务。这些模式和技术的组合可以实现以下功能:
  • 为 IT 基础设施中所有资源的管理访问提供单一且安全的接口
  • 允许管理员对所有资源进行诊断
  • 对所有资源进行配置和修改管理
  • 发现并维护可用资源目录
  • 监视资源并记录它们平时的健康状况
  • 当某个条件达到已建立的上限值时,触发器就会执行相应操作;此时执行的操作可能包括通知管理员手工作出响应,也可能会根据正确的条件自动进行响应
  • 根据资源的使用情况、可用性和服务级别要求提供资源或收回资源;资源的提供可以手工、半自动或根据建立好的策略自动完成
  • 获得并维护资源的使用和检测信息,并提供适当的报告,例如对资源消耗进行记录
  • 提供补充最终用户或应用程序安全性的安全机制
  • 为满足最终用户和应用程序 SLA 而记录所有资源的性能信息
结束语 虚拟化是资源的逻辑表示,它不会受物理限制的约束。虚拟化的主要目的是简化对资源的访问和对这些资源的管理。消费者通过受虚拟资源支持的标准接口来对资源进行访问,这消除了从这些资源的物理实现对它们进行的访问。这些交互是通过一些虚拟化的基本模式来阐述的。虚拟化允许 IT 基础设施管理员动态管理资源的配置,同时还可以减少任何变化对最终用户和应用程序的影响。 参考资料
  • 您可以参阅本文在 developerWorks 全球网站上的英文原文
  • IBM Virtualization Engine 上可以获得更多有关虚拟化和虚拟引擎的信息。
  • 找到有关 IBM 存储虚拟化 的更多详细信息。
  • 虚拟化 包括有关 Series z 上的虚拟化的信息。
  • 请查看 System p5 Systems Virtualization
  • 请查看 System i5 Systems Virtualization
  • 请参见 IBM Systems, BladeCenter, System x Virtualization
  • 有关企业如何使用虚拟化来获得业务价值的介绍,请参阅 IBM 的红皮书 “Virtualization and the On Demand Business”。
  • 请访问 developerWorks 网格计算专区,可从那里获得大量信息,这些信息有助于您开发网格计算技术。

    讨论
  • 通过参与 developerWorks blogs 加入 developerWorks 社区
关于作者 Martin F. Maldonado 是 Grid and Virtualization Americas Team 的一名资深技术架构师。他负责为正在实现网格和虚拟化技术的客户(通常是公共领域中的客户)提供咨询。在过去的许多年里,他一直是 IBM 软件开发团队的一名软件工程师。他最近被委派到 IBM WebSphere Commerce Suite 和 Catalog Architect 小组工作。他为客户提供了很多方面的咨询,其中包括电子商务的动机,电子商务应用程序的设计、开发、实现和集成。他在制造、配送、运输、造船、国防和高级教育领域都有丰富的背景知识。他曾荣获多个 IBM 在专利、技术文章和刊物发表方面的 Invention and Technical Achievement Awards 大奖。他拥有 Georgia Institute of Technology 的信息与计算科学博士学位。
本文摘自:http://www.ibm.com/developerworks/cn/grid/gr-virt/
虚拟化概述:模式的观点 - 虚客帝国 - 51CTO技术博客-领先的IT技术博客 VMware虚拟机提速12招 - 虚客帝国 - 51CTO技术博客-领先的IT技术博客 最不称职网络管理员 - 周海鹏微软技术社区 - 51CTO技术博客-领先的IT技术博客 网络安全类IT认证考试指导 - 创世纪 - 51CTO技术博客-领先的IT技术博客 修改默认远程桌面登陆端口 - 凯旋博客 - 51CTO技术博客-领先的IT技术博客 一位网络工程师的终告 转贴 - 飞 - 51CTO技术博客-领先的IT技术博客 STP特性详解 - 不动的流星 - 51CTO技术博客-领先的IT技术博客 十分经典的批处理教程 - 老地方 - 51CTO技术博客-领先的IT技术博客 cisco学习的去向 - cxkong - 51CTO技术博客-领先的IT技术博客 常见数据库分页SQL语句 - 熔 岩 - 51CTO技术博客-领先的IT技术博客 Subversion1.4 apache2.2安装 - safe.cn - 51CTO技术博客-领先的IT技术博客 Solaris10下Nagios安装 - better - 51CTO技术博客-领先的IT技术博客 WinXP远程桌面_技巧 - lcw410 - 51CTO技术博客-领先的IT技术博客 常见数据库分页SQL语句 - 熔 岩 - 51CTO技术博客-领先的IT技术博客 什么是SSH? - beautymm - 51CTO技术博客-领先的IT技术博客 windows commands - h11h99 - 51CTO技术博客-领先的IT技术... Windows 蓝屏代码详解 - 周海鹏微软技术社区 - 51CTO技术博客-领先的IT技术博客 Windows 蓝屏代码详解 - 周海鹏微软技术社区 - 51CTO技术博客-领先的IT技术博客 linux下单网卡设双置IP - 艺飞博客 - 51CTO技术博客-领先的IT技术博客 网工练习题(二) - 王达博客 - 51CTO技术博客-领先的IT技术博客 子网的划分详解 - 菜鸟网管的blog - 51CTO技术博客-领先的IT技术博客 子网的划分详解 - 菜鸟网管的blog - 51CTO技术博客-领先的IT技术博客 管好你网站的“破窗” - 网络新势力 - 51CTO技术博客-领先的IT技术博客 一个价值千万美金的忠告 - 北京看看 - 51CTO技术博客-领先的IT技术博客