博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2788|回复: 1

虚拟化

[复制链接]
发表于 2011-4-7 10:15:28 | 显示全部楼层 |阅读模式
虚拟化
百科名片
虚拟化


虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。





目录

技术概念主要目的软件方案硬件方案技术趋势应用软件技术评价技术前景
展开

编辑本段技术概念  

微软虚拟化技术


虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术
  虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
  虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
  虚拟化技术也与VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。
  虚拟化(Virtualization)对于不同的人来说可能意味着不同的东西,这要取决与他们所从事的工作领域的环境。通用的解释是它包含许多使服务器得到加强的虚拟机。有经验的程序员可能还记得,曾有一段时间他们担心是否有可用内存来存放自己的程序指令和数据。现在最基本的操作系统提供了虚拟内存的功能,这样程序员就不用再考虑这个问题了。IBM? 对大型机使用的 VM 可以允许多个用户和应用程序共享同一台机器,相互之间不会产生任何干扰。我们发现在很多计算平台上都实现了这种概念,或者通过软件来提供这种概念。
  然而,虚拟化技术的内涵远远不止于虚拟内存虚拟服务器。目前,我们已经有了网络虚拟化、微处理器虚拟化、文件虚拟化和存储虚拟化等技术。如果我们在一个更广泛的环境中或从更高级的抽象(如任务负载虚拟化和信息虚拟化)来思考虚拟化技术,虚拟化技术就变成了一个非常强大的概念,可以为最终用户、应用程序和企业提供很多优点。
  虚拟化技术有很多定义,下面就给出了一些这样的定义。然而,对于本文的讨论来说,IBM 给出的简洁定义以及资源的逻辑表示形式的概念都可以用来作为不同的虚拟模式的示例。
  “虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。” —— Jonathan Eunice, Illuminata Inc。
  “虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” —— Wikipedia
  “虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。” —— Open Grid Services Architecture Glossary of Terms。
编辑本段主要目的  虚拟化的主要目的是对 IT 基础设施进行简化。它可以简化对资源以及对资源管理的访问。
  消费者可以是一名最终用户、应用程序、访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器磁盘、网络、仪器;也可以是软件,例如
Web 服务
  消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在 IT 基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。
  IT 基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对 IT 基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。
  在这个基础上,网格计算可以广泛地利用虚拟化技术。网格计算可以对 IT 基础设施进行虚拟化。它处理 IT 基础设施的共享和管理,动态提供符合用户和应用程序需求的资源,同时还将提供对基础设施的简化访问。
编辑本段软件方案  纯软件虚拟化解决方案存在很多限制。“客户”操作系统很多情况下是通过虚拟

虚拟化


机监视器(Virtual Machine Monitor,VMM)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。(注意,大多数处理器和内存访问独立于VMM,只在发生特定事件时才会涉及VMM,如页面错误。)在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。这一额外的通信层需要进行二进制转换,以通过提供到物理资源(如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。此外,客户操作系统的支持受到虚拟机环境的能力限制,这会阻碍特定技术的部署,如64位客户操作系统。在纯软件解决方案中,软件堆栈增加的复杂性意味着,这些环境难于管理,因而会加大确保系统可靠性和安全性的困难。
编辑本段硬件方案  而CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程

虚拟化


度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。
  虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。
  两大CPU巨头Intel和AMD都想方设法在虚拟化领域中占得先机,但是AMD的虚拟化技术在时间上要比Intel落后几个月。Intel自2005年末开始便在其处理器产品线中推广应用Intel Virtualization Technology(Intel VT)虚拟化技术。Intel已经发布了具有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虚拟化技术
编辑本段技术趋势简介  2006年初,英特尔宣布了其初步完成的Vanderpool技术外部架构规范(EAS),并称该技术可帮助改进未来虚拟化解决方案。
  英特尔表示,把Vanderpool应用于安腾架构平台,同时还计划在台式机处理器和芯片组产品中采用该技术。
  微软高调推出Virtual Server 2005计划,意味着这个x86架构服务器操作系统领域的巨人也意识到了虚拟化技术的重要性。
  从处理器层面的AMD和Intel到操作系统层面的微软的加入,从一大批专注于服务器虚拟化管理技术和应用技术的厂商崛起,带来虚拟化市场在更加繁荣的同时,我们看到一个趋于完整的服务器虚拟化技术生态系统正在逐渐形成。
  IDC公司声称,用户正在向基于x86的服务器虚拟化技术阔步迈进,预计会在今后几年得到大规模采用。
  分析师们认为,如果公司在低端系统方面没有虚拟化技术策略,那么从长远来看,硬件成本及管理方面付出的代价会更大。
  Gartner的研究表明:运行单一应用(这是这些低端设备的传统部署环境)、基于x86的服务器大多数其平均利用率只有10%。使用虚拟化技术把工作负荷合并到单一设备上后有望大幅提高利用率。
  虚拟化能集中并共享资源,实现降低成本、优化利用率的目的,正逐渐流行。到2008年,那些没有采用虚拟技术的企业将在IA服务器上多支出25%的费用。而在RISC服务器上的额外支出也将高达15%。这其中包括硬件、软件、劳动力和占地空间等方面的各类成本。
  1/4的x86 MP服务器与虚拟化技术一起发运,而29%的企业正在使用虚拟化技术。到2009年,服务器虚拟化应用的年复合增长率将达到50%。
  从主机到主流,服务器虚拟化已经是大势所趋。企业重在IT基础架构建设,将侧重于建设领先的虚拟化IT环境。
  对于虚拟化这项炙手可热的技术,在2009年给予业界太多的猜想,甚至可以被认为将是影响力最大的IT趋势。不可否认,虚拟化在厂商的推动下已经取得不小的进展,不论是厂商还是企业用户已经接受了虚拟化将普及的观念。但仍有相当一部分企业表示,并不愿意在这个时候应用虚拟化技术。另外,虽然虚拟化以及云计算已成为计算机领域的重要趋势,但大家还没有很好地理解虚拟化的意义以及虚拟化将如何改变现有IT应用的环境。这些原因部分归结于虚拟化的存在有许多种形式,而云计算大肆宣传似乎也让试图触摸虚拟化的人难以捉摸。对于这样的情况,厂商们并没有感觉市场的悲观前景,毕竟部署虚拟化不是一朝一夕的事情,反而使得厂商们积极做好充分的准备,VMware、思杰、微软等厂商一直在积极地推动虚拟化,向用户灌输虚拟化思想,IBM戴尔惠普浪潮等厂商也都在虚拟化服务器提供足够的支持。由此,随着各种关键组件的X86虚拟化部署的完成,在虚拟化世界中,专门针对虚拟机设计的应用软件应需而生。下面针对三大虚拟化厂商近期推出的虚拟化软件工具做简单介绍,使得用户能够更好的理解虚拟化技术所能带来的优势。
编辑本段应用软件简介  似乎与所有颠覆性技术一样,服务器虚拟化技术先是悄然出现,然后突然迸发,最终因为节省能源的合并计划而得到了认可。如今,许多公司使用虚拟技术来提高硬件资源的利用率,进行灾难恢复、提高办公自动化水平。本组文章分别从服务器、存储、应用程序和桌面虚拟化技术三个角度介绍了如何消除物理硬件的限制。
  有了虚拟化技术,用户可以动态启用虚拟服务器(又叫虚拟机),每个服务器实际上可以让操作系统(以及在上面运行的任何应用程序)误以为虚拟机就是实际硬件。运行多个虚拟机还可以充分发挥物理服务器的计算潜能,迅速应对数据中心不断变化的需求。
  虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术有可能出现在基于行业标准的大众化x86服务器上。
  实际上,如今数据中心管理人员面临的虚拟化解决方案种类繁多,有些是专有方案,而有些是开源方案。总的来说,各自都基于以下三种基本技术当中的一种,但哪种技术效果最好,这取决于要进行虚拟化处理的具体工作负荷以及优先业务目标。完全虚拟化  最流行的虚拟化方法使用名为hypervisor的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。VMware和微软的Virtual
PC是代表该方法的两个商用产品,而基于核心的虚拟机(KVM)是面向Linux系统的开源产品。
  hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor给处理器带来开销。
  在完全虚拟化的环境下,hypervisor运行在裸硬件上,充当主机操作系统;而由hypervisor管理的虚拟服务器运行客户端操作系统(guest OS)。准虚拟化  完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫准虚拟化(para-virtualization)。
  Xen是开源准虚拟化技术的一个例子。操作系统作为虚拟服务器在Xen hypervisor上运行之前,它必须在核心层面进行某些改变。因此,Xen适用于BSD、Linux、Solaris及其他开源操作系统,但不适合对像Windows这些专有的操作系统进行虚拟化处理,因为它们无法改动。
  准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。准虚拟化与完全虚拟化相比优点明显,以至于微软和VMware都在开发这项技术,以完善各自的产品。操作系统层虚拟化  实现虚拟化还有一个方法,那就是在操作系统层面增添虚拟服务器功能。Solaris Container就是这方面的一个例子,Virtuozzo/OpenVZ是面向Linux的软件方案。
  就操作系统层的虚拟化而言,没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)。
  虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易。硬件助力软件  不像大型机,PC的硬件在设计时并没有考虑到虚拟化,而就在不久前,它还是完全由软件来承担这项重任。随着AMD和英特尔推出了最新一代的x86处理器,头一回在CPU层面添加了支持虚拟化的功能。
  遗憾的是,这两家公司的技术各自独立开发,这意味着它们的代码不相兼容。不过,硬件虚拟化支持功能让hypervisor从极其繁重的管理事务中脱离出来。这除了提高性能外,还有操作系统不用改动就能在准虚拟化环境下运行,包括Windows环境。
  CPU层虚拟化技术不会自动发挥作用。为了专门支持它,必须开发虚拟化软件。不过,因为这种技术的优点非常诱人,预计各种类型的虚拟化软件会源源不断地开发出来。
编辑本段技术评价  每种虚拟化方法都有各自的优点,选择哪个则取决于用户的具体情况。一组服务器基于同一操作系统,这非常适用于通过操作系统层实现合并。
  准虚拟化技术集两者之所长,如果与支持虚拟化技术的处理器一起部署,优点更为明显。它不但提供了良好性能,还提供了可运行多种异构客户端操作系统的功能。
  在三种方法中完全虚拟化性能受到的影响最大,但提供了这个优点:既能让客户端操作系统彼此完全隔离,还能让它们与主机操作系统完全隔离。它非常适用于软件质量保证及测试,另外还支持种类最广泛的客户端操作系统。
  完全虚拟化解决方案提供了其他独特功能。譬如说,它们可以对虚拟服务器拍“快照(snapshot)”,保留状态、有助于灾难恢复。这种虚拟服务器映像可以用来迅速配置新的服务器实例。越来越多的软件公司甚至开始提供评测版产品,作为可下载、预包装的虚拟服务器映像。
  就跟物理服务器一样,虚拟服务器需要不断得到支持和维护。越来越流行的服务器虚拟化已为第三方工具造就了兴旺的市场,无论是物理环境到虚拟环境的迁移实用程序,还是面向虚拟化技术的各大系统管理控制台,它们都旨在简化从传统IT环境迁移到高效、具有成本效益的虚拟环境的过程。
  Intel 支持虚拟化(VT)CPU列表
  
Intel® Core™ i7 Processor








SLBCK2.93 GHzI7-94044.8 GT/s45 nmC08 MBLGA13668
SLBCH2.66 GHzI7-92044.8 GT/s45 nmC08 MBLGA13668
Intel® Core™ i7 Processor Extreme Edition








SLBCJ3.20 GHzI7-96546.4 GT/s45 nmC08 MBLGA13668
Intel® Core™2 Duo Desktop Processor








SLB9L3.33 GHzE860021333 MHz45 nmE06 MBLGA7756
SLAPK3.16 GHzE850021333 MHz45 nmC06 MBLGA7756
SLB9K3.16 GHzE850021333 MHz45 nmE06 MBLGA7756
SLA9U3 GHzE685021333 MHz65 nmG04 MBLGA7756
SLAPL3 GHzE840021333 MHz45 nmC06 MBLGA7756
SLB9J3 GHzE840021333 MHz45 nmE06 MBLGA7756
SLAPJ2.83 GHzE830021333 MHz45 nmC06 MBLGA7756
SL9S72.66 GHzE670021066 MHz65 nmB24 MBLGA7756
SL9ZF2.66 GHzE670021066 MHz65 nmB24 MBLGA7756
SLA9V2.66 GHzE675021333 MHz65 nmG04 MBLGA7756
SLAPP2.66 GHzE820021333 MHz45 nmC06 MBLGA7756
SL9S82.40 GHzE660021066 MHz65 nmB24 MBLGA7756
SL9ZL2.40 GHzE660021066 MHz65 nmB24 MBLGA7756
SLA9X2.33 GHzE655021333 MHz65 nmG04 MBLGA7756
SLAA52.33 GHzE654021333 MHz65 nmG04 MBLGA7756
SL9T92.13 GHzE640021066 MHz65 nmL22 MBLGA7756
SL9S92.13 GHzE640021066 MHz65 nmB22 MBLGA7756
SLA4T2.13 GHzE642021066 MHz65 nmB24 MBLGA7756
SLA972.13 GHzE640021066 MHz65 nmM02 MBLGA7756
SL9TA1.86 GHzE630021066 MHz65 nmL22 MBLGA7756
SLA4U1.86 GHzE632021066 MHz65 nmB24 MBLGA7756
SL9SA1.86 GHzE630021066 MHz65 nmB22 MBLGA7756
Intel® Core™2 Extreme Processor








SLAWM3.20 GHzQX977041600 MHz45 nmC112 MBLGA77505B
SLANY3.20 GHzQX977541600 MHz45 nmC012 MBLGA771N/A
SLAFN3 GHzQX685041333 MHz65 nmG08 MBLGA77505B
SLAN33 GHzQX965041333 MHz45 nmC012 MBLGA77505B
SLAWN3 GHzQX965041333 MHz45 nmC112 MBLGA77505B
SL9UK2.93 GHzQX680041066 MHz65 nmB38 MBLGA775N/A
SL9S52.93 GHzX680021066 MHz65 nmB24 MBLGA77505B
SLACP2.93 GHzQX680041066 MHz65 nmG08 MBLGA77505B
SL9UL2.66 GHzQX670041066 MHz65 nmB38 MBLGA77505B
Intel® Core™2 Quad Processor








SLB8W3 GHzQ965041333 MHz45 nmE012 MBLGA77505A
SLB8V2.83 GHzQ955041333 MHz45 nmE012 MBLGA77505A
SLAWQ2.83 GHzQ955041333 MHz45 nmC112 MBLGA77505A
SLGAE2.83 GHzQ9550S41333 MHz45 nmE012 MBLGA7756
SLACQ2.66 GHzQ670041066 MHz65 nmG08 MBLGA77505A
SLAWR2.66 GHzQ945041333 MHz45 nmC112 MBLGA77505A
SLG9U2.66 GHzQ9400S41333 MHz45 nmR06 MBLGA7756
SLB6B2.66 GHzQ940041333 MHz45 nmR06 MBLGA77505A
SLAWE2.50 GHzQ930041333 MHz45 nmM16 MBLGA77505A
SL9UM2.40 GHzQ660041066 MHz65 nmB38 MBLGA77505B
SLACR2.40 GHzQ660041066 MHz65 nmG08 MBLGA77505A
Intel® Pentium® D Processor








SL9K73.60 GHz9602800 MHz65 nmD04 MB (2x2)LGA77505A
SL9AP3.60 GHz9602800 MHz65 nmC14 MB (2x2)LGA77505B
SL95V3.40 GHz9502800 MHz65 nmC14 MB (2x2)LGA77505A
SL94P3.40 GHz9502800 MHz65 nmB14 MB (2x2)LGA77505B
SL9K83.40 GHz9502800 MHz65 nmD04 MBLGA77505A
SL94Q3.20 GHz9402800 MHz65 nmB14 MB (2x2)LGA77505B
SL95W3.20 GHz9402800 MHz65 nmC14 MB (2x2)LGA77505A
SL94R3 GHz9302800 MHz65 nmB14 MB (2x2)LGA77505A
SL95X3 GHz9302800 MHz65 nmC14 MB (2x2)LGA77505A
SL8WR3 GHz9302800 MHz65 nmB14 MBLGA77505A
SL94S2.80 GHz9202800 MHz65 nmB14 MB (2x2)LGA77505A
SL8WS2.80 GHz9202800 MHz65 nmB14 MBLGA77505A
Intel® Pentium® Processor Extreme Edition







SL9AN3.73 GHz96521066 MHz65 nmC14 MBLGA77505B
SL8WM3.46 GHz95521066 MHz65 nmB14 MBLGA77505B
SL94N3.46 GHz95521066 MHz65 nmB14 MB (2x2)LGA77505B
Intel® Pentium® 4 Processors








SL8Q93.80 GHz6721800 MHz90 nmR02 MBLGA77504B
SL8QB3.60 GHz6621800 MHz90 nmR02 MBLGA77504B
SL8UP3.60 GHz6621800 MHz90 nm
 AMD系列除最低端的闪龙以外全线支持虚拟化技术
编辑本段技术前景  前景看好,但是,这一过程还有很长的路要走。因为,还没有哪种技术是不存在潜在缺陷甚至陷阱的。有关管理、安全、ROI和能源利用的问题都有可能导致虚拟化部署出现错误。而且,最大的问题在于企业的高层管理者。要想实施一个项目,有时候关键是人而不是技术。“当你要处理虚拟化项目时,企业领导层最难对付。”业内专家认为,“企业中经常有一批死抱着服务器不放的管理者,他们根本不想放弃已经用惯了的物理服务器,即便他们从虚拟化中得到了好处也依然故我。”
  这样的说法不是为了耸人听闻。戴尔中国大中华区咨询服务部透露,戴尔在帮助客户实施虚拟化的过程中,就发现了很多问题。中小企业在实施虚拟化项目时,对价格很敏感。如果虚拟化解决方案产品本身的费用很高,客户就会望而却步。
  而英特尔中国行业合作与解决方案事业部、售前及合作伙伴支持部中国大区经理梁岩认为,很多客户对虚拟化技术感兴趣,但对如何实现并不是特别了解,要让客户接受,需要一个漫长的认识过程。一些企业在实施时,都希望有一个简单易用的虚拟化产品,在安装之后的使用和维护方面都比较容易,但还很难解决这个问题。所以客户在选择虚拟化技术的时候,还需要选择产品背后的技术支持。需要提前制定好长远的计划,计划好如何部署,部署后如何用。否则即使部署了虚拟化技术也无法获得很好的收益。
  虽然面临的问题很多,但并不是说虚拟化将就此止步。田丁对虚拟化技术的前景很看好:“虚拟化将是一个行业发展的趋势,不管企业愿意不愿意实施虚拟化,包括硬件厂商、软件厂商,在今后硬件和软件发展中肯定是沿着这个趋势去演进的。再过三到五年,整个产业环境可能都变成虚拟化的环境了。”
  对此,梁岩也抱着相同看法。“近两年,虚拟化技术的商业化推进很快,尤其是随着微软在虚拟化领域的全方位动作,虚拟化技术将会有更大面积的应用。”梁岩说,“虚拟化的下一步将更加关注动态资源的调配和应用方面的交互,因为这是存在的问题。而且各家管各家,相互之间的兼容性不够。微软前一段时间向Linux内核社区发布20,000行设备驱动程序代码的举措将有效地改进这一问题。一旦解决了这些问题,虚拟化必将成为行业的主流。”
  英特尔和微软公司正为客户打造一个整体的虚拟化应用解决方案,为企业用户提供实施虚拟化的优异平台。英特尔与微软已投入巨资来优化、测试、验证和支持组合解决方案,希望为复杂的服务器环境带来最高级别的性能、互操作性和可靠性。通过双方合作打造的解决方案,企业可以将多个微软和第三方操作系统(OS)及应用堆栈整合到基于强大的64位多核英特尔至强处理器的服务器上,并使用常见的管理工具来加速产品供应和简化工作负载管理。
  据了解,在虚拟化领域,微软和英特尔是重要的战略合作伙伴。它们的虚拟化技术对于多数企业而言已经是一个得到广泛认可的成熟解决方案。该解决方案已经在提高测试与开发基础设施中的硬件利用率,延长应用生命周期以及实现高可用性和灾难性恢复等方面显示出显著优势。全球数以万计的业务应用正在大范围使用该技术。
编辑本段管理维护  对于任何虚拟化环境来说,一个非常重要的方面是减少动态的和复杂的 IT 基础设施的管理和维护需求。另外,通过软件和工具实现的模式和技术都支持这些管理任务。这些模式和技术的组合可以实现以下功能:
  为 IT 基础设施中所有资源的管理访问提供单一且安全的接口
,允许管理员对所有资源进行诊断 ,对所有资源进行配置和修改管理 ,发现并维护可用资源目录, 监视资源并记录它们平时的健康状况, 当某个条件达到已建立的上限值时,触发器就会执行相应操作;此时执行的操作可能包括通知管理员手工作出响应,也可能会根据正确的条件自动进行响应 根据资源的使用情况、可用性和服务级别要求提供资源或收回资源;资源的提供可以手工、半自动或根据建立好的策略自动完成 获得并维护资源的使用和检测信息,并提供适当的报告,例如对资源消耗进行记录 提供补充最终用户或应用程序安全性的安全机制 ,为满足最终用户和应用程序 SLA 而记录所有资源的性能信息[1]
编辑本段工作模式简介  虚拟化可以通过很多方法来证实。它不是一个单独的实体,而是一组模式和技术的集合,这些技术提供了支持资源的逻辑表示所需的功能,以及通过标准接口将其呈现给这些资源的消费者所需的功能。这些模式本身都是前面介绍过的各种不同虚拟形式的重复出现。
  下面是在实现虚拟化时常常使用的一些模式和技术:1.单一资源的多个逻辑表示  这种模式是虚拟化最广泛使用的模式之一。它只包含一个物理资源,但是它向消费者呈现的逻辑表示却仿佛它包含多个资源一样。消费者与这个虚拟资源进行交互时就仿佛自己是唯一的消费者一样,而不会考虑他正在与其他消费者一起共享资源。2.多个资源的单一逻辑表示  这种模式包含了多个组合资源,以便将这些资源表示为提供单一接口的单个逻辑表示形式。在利用多个功能不太强大的资源来创建功能强大且丰富的虚拟资源时,这是一种非常有用的模式。存储虚拟化就是这种模式的一个例子。在服务器方面,集群技术可以提供这样的幻想:消费者只与一个系统(头节点)进行交互,而集群事实上可以包含很多的处理器或节点。实际上,这就是从 IT 技术设施的角度看到的网格可以实现的功能。3.在多个资源之间提供单一逻辑表示  这种模式包括一个以多个可用资源之一的形式表示的虚拟资源。虚拟资源会根据指定的条件来选择一个物理资源实现,例如资源的利用、响应时间或临近程度。尽管这种模式与上一种模式非常类似,但是它们之间有一些细微的差别。首先,每个物理资源都是一个完整的副本,它们不会在逻辑表示层上聚集在一起。其次,每个物理资源都可以提供逻辑表示所需要的所有功能,而不是像前一种模式那样只能提供部分功能。这种模式的一个常见例子是使用应用程序容器来均衡任务负载。在将请求或事务提交给应用程序或服务时,消费者并不关心到底是几个容器中执行的哪一个应用程序的副本为请求或事务提供服务。消费者只是希望请求或事务得到处理。4.单个资源的单一逻辑表示  这是用来表示单个资源的一种简单模式,就仿佛它是别的什么资源一样。启用 Web 的企业后台应用程序就是一个常见的例子。在这种情况下,我们不是修改后台的应用程序,而是创建一个前端来表示 Web 界面,它会映射到应用程序接口中。这种模式允许通过对后台应用程序进行最少的修改(或根本不加任何修改)来重用一些基本的功能。也可以根据无法修改的组件,使用相同的模式构建服务。5.复合或分层虚拟化  这种模式是刚才介绍的一种或多种模式的组合,它使用物理资源来提供丰富的功能集。信息虚拟化是这种模式一个很好的例子。它提供了底层所需要的功能,这些功能用于管理对资源、包含有关如何处理和使用信息的元数据以及对信息进行处理的操作的全局命名和引用。例如 Open Grid Services Architecture(OGSA)或者 Grid Computing Components,实际上都是虚拟化的组合或虚拟化的不同层次。
编辑本段实现方式  迄今为止这些对虚拟化产品的一览都是基于企业自行虚拟化技术为前提的,但是事实上还有另外一种选择:外包。
  将公司的服务外包给托管公司不是件坏事。如果你的公司规模较小或者分布在不同的地理区域,这种类型的虚拟化可能会适合你的计划。这些公司可以提供较好的服务,低廉的费用,减少支持人员的数量,7X24的支持,而且不需要依靠办公室内部的本地互联网服务。这种类似的公司每家都使用不同类型的虚拟化技术来提供服务。
  选择哪项服务取决于如何使用基础架构。虚拟化能在降低费用的同时帮助将资源的利用率最大化。根据企业的需要去选择虚拟化技术和提供商。
编辑本段云计算基础  [2]如今,越来越多的企业注意到传统数据中心的局限性,开始向更高层次的架构与理念转移,而“迈向云计算”无疑是众多用户的理想。云计算已拉开IT架构变革的大幕,服务器与数据中心的虚拟化只是一个开始,而不是架构变革的终点。走向云计算的途径  毫无疑问,“虚拟化”是当前服务器与数据中心领域里最为热门的词汇,而且与前几年更多地停留在观望与评估层面不同的是,现在越来越多的企业已经将虚拟化用于实际的部署,虚拟化运动如火如荼。
  在微软看来,虚拟化并不是企业IT架构变革的终点,恰恰相反,它只是一个新的起点,所谓的服务器整合/削减、处理资源的聚合、更为灵活的资源调度只是一个基础,一个迈向更高台阶的基础,那就是云计算。
  数据中心要实现云计算,虚拟化无疑是一个重要的基础,但是虚拟化本身并不是云计算,而只是走向云计算的途径之一。虚拟化并不代表全部的云计算中心的形态,它让数据中心的计算能力更具伸缩性,供给也更为灵活,从而可以更好地为云计算服务。
  现在的一些企业和IT人员存在一种误解,即认为云计算还是空中楼阁,更多是一种概念性的东西,它的落地和实施存在很大难度,因此这些企业往往是一味等待,错失良机。他指出,云计算的落地其实并不难,它的实施也并非像过急流险滩。问题的关键在于,企业要做好IT规划,将企业的IT战略与云计算紧密结合在一起,并小心部署。云计算的最终目的是给终端用户提供更好的用户体验,以及更灵活和强大的IT服务支持,这才是云计算的立身之本。未来的数据中心  如果说虚拟化帮助数据中心实现了计算能力的有序、按需调配,那么云计算就是针对应用的一种按需交付与供给模式。由于计算能力为应用服务,所以我们也就不难理解虚拟化与云计算之间的关系。
  简单说,云就是某种应用的集中供给中心,比如存储云、办公云、数据库云等等。而传统的数据中心更多的是数据的集中,更多的还是与物理架构打交道,云计算的出现让数据中心具备了一种智能,一种为客户提供应用服务而不仅仅是数据服务的智能。
  数据中心要实现云计算,虚拟化无疑是一个重要的基础,但是虚拟化本身并不是云计算,而只是走向云计算的途径之一。所以虚拟化并不能代表全部的云计算中心的形态,它让数据中心的计算能力更具伸缩性,供给也更为灵活,从而可以更好地为云计算服务,不过在当前的技术水平下,虚拟化也不是万能的,也因此,在建立云平台时也要考虑为用户提供更为全面而完整的跨越虚拟与非虚拟平台的解决方案与管理手段,为用户提供更为合理的云计算中心的基础架构。让私有云真正落地  云计算的最终目的还是为了给终端用户提供更好的用户体验、更灵活和强大的IT服务支持。微软一直提倡的“云+端”的策略,一方面通过云带来更加强大与灵活的后端支持以及集中管控的IT系统;另一方面,强大的“云”需要新一代的“端”来支持,云与端的配合使得终端用户可更加便利地访问各种信息与系统。
  如果说服务器与数据中心虚拟化强调的是计算能力在后端的集中与灵活供给,云计算强调的是应用在后端的集中与灵活供给,那么桌面与应用虚拟化就是在前端对计算能力与应用的灵活接收。它将接收端的设备最大限度的透明化,让用户更关注于随时随地地获得自己所需的应用。
  虚拟桌面架构(VDI),让传统的一台电脑装一套操作系统与应用的模式成为历史,所需的操作系统与应用都部署在数据中心,前端的设备更多的只是扮演一种指令输入与显示输出的角色,所有的应用处理与应用生成的数据都在后台。用户也可以保留现有的电脑与操作系统,而有本地桌面,只是接收后台的应用服务,这就是应用虚拟化。这两者本质上都是一种接收远程应用交付服务的方式,只是虚拟桌面连操作系统都是虚拟的。
  相较之下,虚拟桌面不需要本地有强大而功能齐全的终端设备,更适合需要高度集中管控,或想对大数量IT用户进行统一管理的企业,比如金融、电信等行业的企业,而仅做应用虚拟化则给终端留出了较大的灵活性,适用于那些需要更灵活的本地处理能力,但又想确保应用数据安全的用户,比如公司的中高级与移动工作者、中小企业用户等。而这类用户的电脑本身也完全可以接收虚拟的桌面,从而为企业IT主管打造针对不同用户的应用与管理模式提供了更大的便利。

 楼主| 发表于 2011-4-7 10:19:22 | 显示全部楼层
分层存储与虚拟化技术

目录

前言分层存储存储虚拟化技术展开

编辑本段前言  随着信息技术的发展,新产生的电子数据近年来呈现出井喷式的增长,而这又带动着对于存储的大量需求。这种需求增长不仅仅限于企业用户,多媒体数据、邮件等个人信息也使得普通用户对于存储容量的需求也出现了明显的增长。当前PC的标准存储容量配置300G、500G已经是非常普遍的了。想象一下前几年配置容量为40G,60G的时代,甚至更往前到KB、MB的时代,似乎现在的机器容量配置实在是十分奢侈。我们不需要引用 IDC 对于存储市场的调查分析数据,我们都已经切身感受到自己似乎身处于电子数据宇宙中。
  市场的发展推动需求的提高,并且催生新的需求,而这些变化及新需求又推动着技术的进步与变革。满足市场的需求无外乎在于对原有技术的深耕细作、组合升级原有技术、或者发明一种新的技术手段。而存储市场也不外乎这样的发展历程。需求、市场、变化推动着我们不得不重新思考原有技术实现,推动我们再深入研究不同的技术。而外部软、硬件技术的发展也使得我们可以以一种全新的应用方式来发展及深化这些技术,让这些技术生出春天般的生命力。
  特别是虚拟化技术出现,则完全催生出一个全新的存储应用。同时,诸如这样新的存储应用及其他的需求,则促使我们对于存储分层技术及存储虚拟化技术的进一步探索研究。
编辑本段分层存储什么是分层存储  分层存储其实已经不是一个新鲜的概念,而是已经在计算机存储领域应用多年。其与计算机的发明与发展相伴相生。在冯-诺依曼提出计算机的模型“存储程序”时就已经包含了分层存储的概念。“存储程序”原理,是将根据特定问题编写的程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。在这里的外存储器与内存储器,就是一个分层存储的最初模型。
  分层存储(Tiered Storage),也称为层级存储管理(Hierarchical Storage Management),广义上讲,就是将数据存储在不同层级的介质中,并在不同的介质之间进行自动或者手动的数据迁移,复制等操作。同时,分层存储也是信息生命周期管理的一个具体应用和实现。
  而实际上,将相同成本及效率的存储介质放在不同层级之间进行数据迁移复制在实用性及成本上并不是有效的数据存储方式。因此,在不同的层级之间使用有差别的存储介质,以期在相同成本下,既满足性能的需要又满足容量的需要。这种存储介质上的差别主要是在存取速度上及容量上。存取速度快的介质通常都是存储单位成本(每单位存储容量成本,如1元/GB)高,而且容量相对来讲比较低。相应的,存取速度慢的介质通常是为了满足容量与成本方面的要求,既在相同的成本下可以得到更大的容量。所以,从这方面来说,分层存储其实是一种在高速小容量层级的介质层与低速大容量层级的介质层之间进行一种自动或者手动数据迁移、复制、管理等操作的一种存储技术及方案。
  一般来说,分层存储中,我们将存取速度最快的那一层的介质层称为第0层(Tier 0),依次为第1层,第2层等等。理论上说,层级的划分可以有很多层,但是在实践中,最多的层级在5层左右。过多的层级会增加数据及介质管理的难道及可用性。因此在层级的设置上有一个拐点,即层级达到一个特定的层数时,会导致成本的上升,而使得可用性、可靠性都会相应下降。通常层级的设定在2-4层之间。如下图所示:
  


为什么需要分层存储  在计算机系统中,CPU 的运行速度往往要比内存速度快上好几百倍甚至更多,为了更多地榨取CPU的计算能力,就需要在访问数据的速度上进行提升,否则内存的速度将成为整个系统的性能短板。因此在这样的思想下,CPU慢慢发展出来1级或者2级这样的存储缓存。实际也表明,缓存的存在确实对于系统性能的提升起到了巨大的推动作用。
  相应的,内存的访问速度又是硬盘访问速度的几百倍甚至更多,也是基于CPU类似的指导思想,我们能不能在存储之间也进行这样的分层(或者说缓存)以期提高系统的I/O性能,以满足应用对系统提出的更多高I/O的需求呢?
  从某种意义上说,内存其实也就是充当了CPU与外部存储之间的另一个级别的缓存。作为用户来讲,我们当然希望所有需要用到的数据都最好是存在最高速的存储当中。但是这样近乎是乌托邦式的理想至少在当前来说是不现实的。在技术上的难度不说,成本的压力就会使得用户喘不过气来,再一个就是有没有必要的问题,因为有的数据根本都不需要一直存于这样的存储中。在计算机界中有一个很有名的理论,就是说,加上一个中间层,就可以解决计算机中许多的问题。而这个“中间层”也正是我们所寻求的,实际也证明这样的中间层确实取得了非常好的效果。
  据IDC数据预测,到2012年,信息数据的增长将会达到50%的复合年增长率,这个增长主要源于越来越来多数据内容生成并存储,经济全球化使用商业各个部门及与商业伙伴之间需要保持连接,使得更多的数据被生成,复制及保存。法规遵从及管理,还有容灾与备份都使得数据的增长持续上升。天下没有一劳永逸的解决方案,我们需要根据不同的数据存储需求,设计不同的存储方案。比如归档,我们可以将数据存储在磁带上,比如需要频繁访问的实时数据我们可以放在内存或者SSD(固态硬盘)设备中,对于容灾或者备份,我们可以使用大容量低成本的存储来应对。正所谓好钢用在刀刃上,用户也希望把资金投向更能产生效益的存储上。
  除了需要满足不同的存储需求,还有出于对于高性能高吞吐量应用的支持。因为有的应用需要这样存储系统。特别是现在风头正劲的虚拟化技术。为了在一台设备上支持更多的虚拟应用,就需要系统支持更大的吞吐量以及更高的性能。全部采用高速介质在成本上现在依然不是可行的,也不是必须的。因为根据数据局部性原理,往往被频繁访问的数据是局部而有限的。为了应对部份这样的数据而全采用高速存储实在是过于奢侈。如果我们针对这部份数据另开小灶来解决不是更好?所以分层存储在这里就可以大展拳脚。我们把高频率访问的数据放在高速存储介质上,而其他的数据放在速度较慢一些的介质上,这实际上就是提高了系统的吞吐量。分层存储介质的分类  从计算机系统角度来说,最上层的存储层应该是CPU内的各类型寄存器,其次是CPU内的缓存,其次再是系统内存。因为从分层存储的定义上,此类型存储器是符合定义规则的。因为这些存储器速度与容量都有差别,越靠近CPU的存储器成本越高,速度越快,容量越小,并且在CPU的控制下,数据这些不同类型的存储器中间进行自动的转存。比如寄存器通常在16、32、64、128位之间,而缓存则在几十个字节及到几兆字节之间,内存容量当前通常都在几百兆字节以上,服务器级的内存也上几十个吉字节。很有意思的是,这类型的分层也非常符合上图所示的效益成本曲线图。层级过多时,对于CPU的硬件设计及不同层次之间的数据一致性的保证都是一个挑战。所以,现代CPU在寄存器与内存之间的缓存基本在1-3级。而我们通常使用的386平台的CPU(Intel 及 AMD)基本上都只有两级缓存。这类存储都有一个共同的特点,就是系统掉电后数据不复存在。我们将此类型的分层存储称为易失性存储分层,或者内部存储器分层存储。
  而另外一种分类,则是非易失性分层存储,或者叫外部分层存储。此类型的存储介质一般包括固态硬盘(SSD)、机械式硬盘、光盘、闪存盘(包括外置硬盘)、磁带库等等。而此类的存储介质分层正是我们所要关注的,如没有特殊的说明情况下,在此文档中所说的分层存储都是指外部分层存储。一般来说,作为第0层的存储介质通常为 RAM 磁盘(随机访问存储磁盘,其速度与内存同速,但是价格昂贵,使用环境基本上是特殊计算环境)以及 SSD,第1层可能有 FC 15K硬盘或者SAS 15K硬盘,或者相应的10K硬盘。第2层可能有其他类型的硬盘及磁盘库等。第3层,可能是如磁带库以及光盘库这样的离线介质。当然这样的分层不是标准,但是一个实践中常用的分层策略。
  如 D2D2T 这样的存储方案,其实就是分层存储的一个实践方案。数据从本地的磁盘转存于于另一个远程的磁盘(D2D)。这个磁盘的形式可以是一个JBOD,或者一个虚拟存储设备,然后再通过一定的转存策略将这个磁盘的数据转存于磁带库或者磁带(D2T)。爱数备份存储柜X系列都支持D2D2T这样的应用。分层存储需要考虑的问题  由上一节可知道,外部分层存储只不过是内部分层存储的一个外延。所以,外部分层存储考虑的问题与内部分层存储实际上是大同小异的。
  1、 首先是数据一致性的问题。这个问题比较好理解。如果不同的数据在不同的存储层级之间存在时,数据的改写必然导致数据的不致的问题。在内部分层存储时,可以采用通写策略或者回写策略。而不同的方法也有各自优缺点,这里就不再赘述。但是外部分层存储与内部分层存储有一个最大的不同是,内存储最终数据需要写到内存中,而外分层存储中,则不是必须的。当然也可以设计成这样的实现方案,但是这样话,分层存储的性能优势则必定会受到影响。数据在不同层级之间的连续性可以由一个虚拟层来保证。这个我们在谈到虚拟化时会讨论这个问题。
  2、 第二个问题就是命中率的问题。如何设计一套算法或者实现策略来提高数据系统的命中率是分层存储中是否能起到其相应作用的关键。这个与CPU的缓存机制是完全一样的。不过,CPU的缓存机制已经有一套非常成熟的算法设计。而外部分层存储与内部分层存储有其不同的特性,因此,CPU中的缓存机制不能全部照拿过来用。特别是CPU的缓存机制还主要是硬件设计上面的问题。而外部存储层可能还与一些逻辑设计相关,比如文件系统,文件等。从这点上说,外部分层存储的软件设计上比起CPU缓存的设计可能要更复杂一些。
  3、 第三个问题就是在分层介质的选择上。上面也提过,不同层级之间的介质应该是有差别的,否则就失去了分层的意义。一般来说,高速介质应该是小容量、高成本,随着层级的往下走,其成本容量曲线应该呈现如下的形式:
  


即容量越大的单位成本越低,速度越慢,因此应该放到更低的层级中,反之亦然。因此,在存储介质的配置上如何找到一个合适的点,使得成本与效益最优化则是在分层介质选择及策略制定上需要考虑的问题。下面的图中给出了一个实际的可能的配置方案:


1、 第四个问题就是数据分层的级别。对于数据的描述有字节级,块级(包括扇区及簇),文件级及文件系统级。当然不同的级别有不同的应用场合,并不是哪种级别好于哪个级别。对于文件级的分层,对于归档,法规遵从则比较适合。对于文件系统级的则多用于容灾及备份系统中。对于块级则可能用在虚拟化中较为合适。因此需要根据不同的需求制定不同的分层级别。
  2、 第五个问题就是数据的迁移策略的设计。可以根据数据的重要性、访问频度、大小、年龄来制定迁移策略。但是如同第四点所说明的那样,不同的策略是有不同的应用场合的,没有孰优孰劣的问题。好的策略应该是不同最优策略的组合,也就是因“需”制宜地选择合适的迁移算法或者方法。根据年龄进行迁移的策略可以用在归档及容灾备份系统中。根据访问频度则可以用于虚拟化存储系统中等等。类似的方法已经用于计算机软件设计或者硬件设计当中的很多地方,如LRU(最近最少使用)、ARC(自适应交替缓存)都是可以借鉴的。
编辑本段存储虚拟化技术什么是存储虚拟化  根据SNIA(Storage Networking Industry Association,中文译名为“存储网络联合会”)官方对于Virtualization(存储虚拟化技术)的定义,如下:
  1、 是将存储(子)系统内部功能与具体应用、主机及通用网络资源分离、隐藏及抽象的行为。以期达到存储或数据管理的网络无关性。
  2、 对于存储服务及设备的虚拟化应用,以期达到整合设备功能、隐藏复杂细节以及向已经存在的底层存储资源添加新的应用。
  从上面的定义可以看到,虚拟化包括两层的含意,一个是动词,一个是名词。动词表明了如何来达到虚拟化,而名词则说明了应用的目的。对于当前数据的几何式增长以及带来的数据管理的复杂性,加之存储、备份及容灾需求的发展,存储系统需要一个更高级的抽象,以此来获得应用的更大的灵活性。
  虚拟化存储与存储虚拟化是两个极易混用的概念,简单来说,存储虚拟化是指就是指的SNIA中的第一个定义,既将存储抽象;而虚拟化存储则是第二条定义,既是侧重于对存储虚拟化的应用。也就是存储虚拟化与虚拟化存储是同一个概念(Virtualization)的两个面。因此为了避免在两者之间跳来跳去,在此文档中,都将这两个概念统一称为存储虚拟化技术。当要特别指明是哪个面的时候,我们就直接使用相应的概念。存储虚拟化技术的前世今生  与分层存储技术一样,存储虚拟化技术是与计算机一起发展起来的概念。比如内存系统中的地址就是对于内存位置及其数据的一种抽象。这种抽象其实就是一种虚拟化。其次到外部存储器中,对于硬盘扇区一开始使用(CHS)编址方式到的LBA编址方式就是一种存储虚拟化技术,再到后来的RAID技术,再到分层存储都是在不同等级上的虚拟化。因此,虚拟化技术由来已久,只是在当前数据暴增的情况下,对于存储虚拟化技术提出了更高层次的抽象要求,加上虚拟机技术也为这个概念推波助澜,使得存储虚拟化技术从深宫走向台前成为妇孺皆知的名词。关于SNIA的共享存储模型  为了让终端用户与存储设备生产厂商能在同一个平台概念上进行讨论,SNIA 对于存储定义了一个SNIA共享存储模型,如下示:
  


在上面的模型中,虚拟化技术可以在不同的层进行抽象。当然,在第一级的抽象中就有CHS以及LBA的编址方式。而每一个层都为上一层提供虚拟化接口。当然,最底层与最上层因为没有更下一层及更上一层,他们是这个模型中的两个端点。最底层永远为上一层提供虚拟化接口,而最上一则只使用其下一层的虚拟接口。
  当前有许多的技术在不同层中对存储层中进行虚拟化,包括物理存储,RAID磁盘,LUN(Logical Unit Number),存储区域,LUN分区,LUN遮罩及影射,文件系统,数据库对象。相应地实现这些虚拟化技术的设施有磁盘阵列,阵列控制器,存储交换机,路由器,分布式虚拟设备,总线适配器,操作系统以及相应的应用层软件。这些不同的技术表明对于解决共有的存储问题,虚拟化是一个很关键的技术方向。为什么需要存储虚拟化技术  随着技术的发展以及对于数据存储及管理的要求不断在提高,对于存储系统所提出的要求也自然水涨船高。比如达到100%的系统可用时间以及对于系统失效的容灾能力,即系统的单点失效不会导致整个系统的瘫痪。而随着企业自身的发展及建设,企业内部的存储基础架构基本都是异构的平台。而这样的复杂性已经成为保证业务连续性的障碍。而存储中此类型的诸多问题其实都可以通过存储虚拟化技术来解决:
  1、 在没有虚拟化技术的支持的情况下,SAN网络上单点的失效或者交换的失效是一个严重的问题,企业则为了保证存储的可用性及连续性不得不投入高昂的费用,以此来保证整个存储系统的可靠性。
  2、 存储中的性能是评价一个存储系统服务质量(QoS)的关键参数。在异构平台环境中,为了保证满足应用要求的存储性能是一个极为复杂的工作。存储虚拟化技术使得在性能的保障上提供了实现可能性,也保证了可评估的QoS。
  3、 存储中的数据对于企业的日常的工作及生产都是至关重要的,对于数据的丢失所适成的损失对于一些企业来说可能就是一场灾难,而存储虚拟化技术可以在这一方面大有所为。虚拟化技术则使得用户可以以可承受的成本代价得到高端的解决方法。
  4、 对于纯存储(磁盘)的需求的增长,导致了存储空间的应用效率变低。据调查在开放式系统中对于存储的利用率,磁盘仅为30-50%,而磁带为 20-40%,也就是说,企业每买一个GB的同时需要多买2-3G的存储,产生这种低使用率的问题主要原因是存储与主机的绑定关系,为了保证每个主机都能正常工作,用户常常一次性分配大量的存储空间,而这些存储空间即使在未使用的情况下,也不能被其他的主机占用。而虚拟化技术可以提供这样的按需提供的功能,并且与分层存储结合在一起,可提供不同等级的服务质量。存储虚拟化技术的分类  存储虚拟化技术根据不同的分类原则会有不同的类型。比如根据虚拟化实现在数据传输路径中的位置来分有带内与带外的虚拟化,根据虚拟化在存储结构栈中的位置可以分为磁盘虚拟化或者磁带虚拟化。又根据虚拟化的粒度则可以分为文件/记录型虚拟化,数据块型虚拟化。由于与本文档主要讨论分层存储及虚拟化技术关系的原因,我们这里只关注于两种虚拟化类型,一是文件/记录型虚拟化,一个是块级虚拟化。
  文件/记录型虚拟化
  对于使用这个类型的虚拟化的一个非常典型的例子就是HSM,即层级存储管理,也就是此文档所说的分层存储。这种虚拟化技术自动地在不同的层级之间的存储之间进行数据迁移,对于应用来说,这个过程是透明的。通过相应的指针及文件元数据,虚拟化存储层可以很方便在各层之间查找数据,并将数据返回给用户,而请求者不需要知道详细的文件物理位置,并且自动将用户的数据存于不同的存储层中,以释放相应的I/O吞吐量及存储空间,使得用户的投资得到保护,并且也提高了系统的总体性能。
  块虚拟化
  近来这种虚拟化技术受到越来越多的关注,而这种虚拟化技术处于SNIA存储模型的第二层。此虚拟化技术处理的主要是块级存储的磁盘,而很多的厂商在提及块级虚拟化技术时指的就是这种技术。
  在这种虚拟化技术的背后,其实就是很简单的思想:克服单个设备的物理限制而不需要影响用户及应用,因此后者只看到一个大的“磁盘”。当然,这种块聚集技术只是块虚拟化技术的一个方面,在这个虚拟化技术方案之中还有相当多可以提供的服务,如自动数据分层,空间自动按需配置,快照,卷复制,甚至是重复数据删除等。下面的图中显示了这种虚拟化技术的特点及结构:


在上面的图中,对于存储的使用者只需要关注存储容量、性能以及可用性,而无需关注磁盘的物理特性。因此在这样的结构下,用户不需要与某个生产商绑定,因此可以做到存储的异构环境的整合,这种结构也极容易进行向上(增加容量及扩展设备)与向下(压缩容量及移除设备)的扩展。存储虚拟化技术的实现  存储虚拟化技术由于类型众多,而它们所处于存储栈位置也不一样,因此其实现技术也相当的多,而且所关注的面也不一样。比如 RAID 技术其实就是基于存储设备的存储虚拟化技术实现之一,还有卷管理技术 LVM,包括 SoftRAID 也都是存储虚拟化的实现技术。作为与本文所讨论的存储分层存较为接近关系原因,我们这里重点介绍一下基于主机及存储设备的虚拟化技术的实现。而对于基于网络的虚拟化技术实现主要用于数据中心级的存储规划中。特别的,这三种实现技术可以同时结合起来,或者一个以另一个为基础来实现。
  基于主机的存储虚拟化
  这种虚拟化技术是最常用的虚拟化技术之一。这种技术从桌面应用到数据中心的服务器上都存在,并且一般通常都与卷管理技术结合在一起。因为DAS的大量存在,并且卷管理技术已经是操作系统内置的一个功能。当然更高级的第三方的卷管理技术实现也是很常见的一种方式。这种技术的好处就是成熟稳定,并且开放。因此可用于各种异构的环境中。而缺点就是这个虚拟化技术是以服务器主机为中心的。所以,这个虚拟化技术必须以主机为单位进行实现。这使得将不同的存储系统整合成更大、更复杂的存储系统较为困难。因此,有的厂商提供所谓的集群卷管理技术,使得在异构的服务器中共享不同卷以并以单独卷的方式进行存储管理。
  基于存储设备的虚拟化实现
  其实这种虚拟化技术就是磁盘阵列,但并不仅限于RAID,其中包括快照、LUN 遮罩以及影射等,这些实现技术都是块级虚拟化的实际例子。而这种技术同样适用于SAN以及DAS环境中。这种虚拟技术不依赖于特定的主机以及操作系统,通过调整与硬件设备相关一些特性,如Cache,就可以取得更好的性能。但这种虚拟化技术的缺点就是虚拟技术的应用只能限于在一个阵列里,不能做到跨阵列进行存储的管理与整合。
  通常的情况下,上面的两种虚拟化方式都是组合在一起使用的,使得虚拟化技术即有基于主机的卷管理的灵活性,也通过基于存储的虚拟化取得性能上的好处。比如在阵列中的数据可以通过条带化将数据分布在不同的磁盘设备上,这样读写性能就会得到相应的提高。如果以基于主机的虚拟化技术将卷建立在这样的磁盘阵列中,马上就可以得到性能上的提升。诸如此类的结合也说明虚拟化技术的实现不会以单独的形式出现,而是多种虚拟化技术的相互补充。存储虚拟化的未来  1、 统一管理。这个统一管理包括数据发掘、报表、存储虚拟化以及存储自动化。在一个异构的存储世界里,这样的方法可以给各个层次,从应用层到物理存储层的存储提供统一的活动管理。而正是用户的期望的也是虚拟化技术所要解决的问题。正如Eisoo(爱数)的All-In-One-Web技术就已经成为统一管理的一个缩影。在此基础之上实现存储的管理,数据的管理,以及备份容灾等应用的大一统格局。但无论是基于Web 的或者其他形式的统一管理,都将是存储虚拟化技术所追求的一个方向及未来的愿景。
  2、 自动数据迁移。存储虚拟化技术的进一步发展会使用数据迁移服务变得普遍。这种发展趋势既是技术上的也是成本上的。在技术上讲,这样的数据服务提供了容灾及高性能数据访问能力。当存储系统感知到已经无法再满足用户或应用的存储需求时,则需要迁移或者复制到其他的更快、容量更大的设备上。从成本上的观点来看,并不是所有的数据对于企业来讲都是同等重要,一些老旧的数据一般来讲其价值并不需要用户将其一直保存在高昂的存储设备中。这样,这个数据就需要从昂贵的存储上迁移到低成本的存储设备上。这个过程不再需要用户的干预,而是由存储系统自动完成。
  3、 数据中心级的卷及文件系统。如果一个卷指派给不同的系统进行同时数据访问,有些问题就需要特别注意以保证数据的一致性。一个简单的解决方法就是实现一个集群文件系统,由这个集群文件系统来管理不同服务器对于数据的访问。而当前的情况下这些文件系统都是在同构的环境实现的。为了使得这个集群文件系统成为可能就需要对不同的操作系统及其对卷中存储的使用以及文件系统都要进行虚拟化。
  作为一个应用系统之内技术实现及概念,往往并不是孤立地存在。作为存储技术来说,分层存储与存储虚拟化也是相互交叉、互为因果的一种关系。分层存储的实现需要存储虚拟化的支撑,这样才能将分层的实现与具体应用分离。而虚拟化技术的实现又有分层技术的影响。正所谓独木不成林,要打造一个稳定、高效、易扩展的存储应用系统,必定是十八般武艺齐上阵。存储虚拟化技术与分层技术的发展与应用,必将给存储行业造成深远的影响。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-4-24 00:39 , Processed in 0.315793 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表