Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11262517
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-06-23 14:47:21

存储和虚拟虚拟存储产品作为一个独立的产品类别被提出已经有3年多的时间,虽然至今虚拟存储技术已经发展成为一个包罗万象的技术门类,但其最初产生时主要是针对存储治理的需求而发展的。简单的说,当初的虚拟存储技术应该归属存储治理范畴,是存储治理的一个子集。    随着技术的发展进步,存储系统已经成为IT系统中一个完全独立的层次,就像网络、应用和服务器一样,存储系统在IT系统的地位也越来越重要。然而,就像网络和应用系统一样,存储系统也面临着越来越复杂的治理问题。原有设备和新增设备往往属于不同产品系列,甚至来自若干不同的厂商。在用户面前,是一幅纷繁复杂、支离破碎的系统结构图。尽管如此,系统维护人员还是需要尽力分析每个设备的使用情况,包括每个设备的性能瓶颈以及空间使用率等等。这种复杂繁琐的治理机制不仅不利于存储系统的工作效率,更是企业IT系统稳定性的一大隐患。    虚拟存储就是在这种情况下产生的。虚拟存储技术将底层存储设备进行抽象化统一治理,向服务器层屏蔽存储设备硬件的非凡性,而只保留其统一的逻辑特性,从而实现了存储系统集中、统一而又方便的治理。对比一个计算机系统来说,整个存储系统中的虚拟存储部分就像计算机系统中的,对下层治理着各种非凡而具体的设备,而对上层则提供相对统一的运行环境和资源使用方式。
董唯元存储专栏 虚拟存储浅谈(图一)
    举个具体点的例子,在传统的磁盘阵列中,不同容量的磁盘是无法混和使用的,而用户的实际情况往往是前面买了18GB的磁盘,等到扩容的时候,只有73GB的磁盘可选了。面对这种尴尬,很多用户只好选择重新调整部属自己的应用,甚至干脆放弃先前的设备。而虚拟存储技术则可以把不同时期购买的不同容量的磁盘,甚至是不同设备上的磁盘,统一起来使用,而服务器就像使用一个设备一样的使用它们。这样,服务器就不需要再关心,哪个文件放在哪个磁盘阵列上这种问题了。治理问题在服务器上被大大的简化了!    虚拟存储的另外一层含义是设备使用方式的转化,这应该更接近“虚拟”这个词的本意。所谓“虚拟”就是假的,模拟的,而不是真实的。在网络的虚拟世界中,人物身份是虚拟的,战斗武器是虚拟的,武功魔法是虚拟的,连交友联姻都是虚拟的!简直是虚得一塌糊涂。好在虚拟存储倒还没有那么虚,只是在设备的使用形式上做了些手脚而已:明明是磁带,却被当作磁盘使用;明明是磁盘,却被当作磁带;明明是TCP/IP的网络连接,却虚拟成了SCSI连接……如此种种的虚拟技术,其目的除了方便上层服务器简单统一的使用之外,还在于扩展现有设备和技术的应用范围和领域。    例如磁带设备,在传统的系统中,只能被当作顺序读写设备使用,这就注定磁带上无法形成类似磁盘的文件系统,也就无法摆脱其离线存储的宿命。而今经过虚拟存储技术这么一虚拟,磁带摇身一变成了可随机读写的块设备,也就堂而皇之的加入了在线存储的队伍。    实际上,早在虚拟存储这一概念还没有产生之前,一些虚拟技术就已经普遍应用了,甚至可以追溯到遥远的MS-DOS年代。接触过MS-DOS这一古老物种的人一定还记得,当时磁盘的访问速度非常低,而且磁盘的频繁读写会造成硬件的损伤(磁头阻尼悬浮技术当时还没有产生),于是MS-DOS系统提供了一种RAM-DISK技术,即将一部分内存模拟成磁盘,用户可以对这个本不存在的磁盘进行格式化和拷贝等操作,由于实际上是内存对内存的操作,RAM-DISK的访问速度明显比真实磁盘高很多,而且不会造成磁头的频繁移动。    另外一个典型的例子就是卷治理软件。许多操作系统平台上都有一种甚至多种卷治理软件层,常见的有AIX平台上的Volume Group,Solaris平台上的Volume Manager,平台上的LVM等。这些卷治理软件的功能就是模拟物理磁盘的结构,把多个磁盘组或者多个磁盘条带组织起来,虚拟成一组统一的数据块集,这样操作系统就可以统一而方便的使用所有的磁盘了。这类软件的工作机制和治理思想,是现今虚拟存储技术的一个重要组成部分。难以定义的概念说了这么多,到底什么是虚拟存储的确切定义呢?这个问题真是很难回答。原本虚拟存储技术是作为存储治理的一个子集产生的,但是发展到现在,其目的方向已经扩散得非常广泛。有些部分是为了提高存储系统性能,有些部分是为了提高系统容量,有些部分是为了改变设备使用方式,有些部分甚至是针对存储安全发展出来的。如此内容庞杂,头绪众多的技术概念,一时间还真是无法精准的描述。    尽管如此,总结一些虚拟存储的共同特性还是可以做到的。总体上看,虽然虚拟存储的目标包罗万象,但是实现手段却相对集中。我们不妨可以将虚拟存储技术看作一门武术流派,虽然演练者的目的各不相同,有为强身健体,有为报仇雪恨,但是其基本套路却大致相同。虚拟存储的套路以“抽象”、“模拟”、“隐藏”和“整合”这四个方面为主。抽象就是提取各种存储技术和存储设备的共性,将多个资源抽象成为单一资源;模拟就是突破传统技术的限制,将一种资源模拟成为另外一种资源;隐藏就是将设备或服务等资源的无关特性细节屏蔽,从而隐藏资源的部分或全部特征;整合就是通过组织,将不同类型的资源整合成为一种资源。
    现在,我们可以看一看国际存储工业协会对虚拟存储这一概念的定义。为了不带入笔者的误解和局限,这里引用的是原文。在定义之后,国际存储工业协会的技术委员会还补充了一个例子,用以进一步补充说明这个颇富诗意的定义,这里也一并引用了。    Storage Virtualization:    1 - The application of virtualization (q.v.) to storage services, devices or resources that results in storage services, devices or resources.    2 - The act of abstracting, hiding, or isolating the internal function of a storage (sub) system or service from applications, host computers or general network resources.    Example: Using virtualization to provide storage and data management that is transparent to users, applications or network; Using virtualization to group different block storage systems into one or more virtual storage pools.     说实话,这个定义并没有对虚拟存储的概念,给出清楚而精准的描述。依照这个定义,许多现有的技术,仍然难以确定是否属于虚拟存储领域。这个定义更主要的意义是在于,它为虚拟存储概念设定了一个相对固定的范围。但愿各个厂商能够遵守这一规定范围,不会将虚拟存储的概念进一步扩大。虚拟存储三大问题在一个模糊的定义下进一步讨论虚拟存储显然是十分困难的。为了言之有物,我们主要讨论三个基础性的问题:    虚拟的对象是什么?    在什么位置进行虚拟?    如何虚拟?    第一个问题比较轻易回答。虚拟存储所虚拟的对象就是一些存储资源,磁盘、磁带、文件、文件系统、数据块等等,这些统统包括在内。其虚拟的结果就是虚拟磁盘、虚拟磁带、虚拟文件、虚拟文件系统、虚拟数据块等等。可以看出,虚拟存储的对象并不一定是物理的设备,而可能是一些纯逻辑的对象。实际上,虚拟存储即可以将物理设备虚拟成物理设备,也可以将物理设备虚拟成逻辑对象。    随着技术的发展,甚至出现了将逻辑对象虚拟成物理设备的技术,例如将一个逻辑分区虚拟成一个物理磁盘。当然,从逻辑对象到逻辑对象的虚拟技术也在发展中,但相对而言,这部分的技术难度较大,而且目前的需求并不十分迫切,所以类似把一个文件系统虚拟成另外一个文件系统之类的技术,进展还非常缓慢。    第二个问题的回答也不困难。虚拟是一个处理过程,这个处理过程一定是在主机和存储设备之间完成的。那就只可能有三个位置:主机、存储设备和存储网络。事实上是,在三个位置上都有相应的虚拟存储技术存在,根据处理所在的位置,虚拟存储技术被分为“基于主机端的虚拟存储”、“基于存储设备的虚拟存储”以及“基于存储网络的虚拟存储”这三种类型。
董唯元存储专栏 虚拟存储浅谈(图二)
其中基于主机端的虚拟存储,几乎都是通过纯软件的方式实现的。这种实现机制不需要引入新设备,也不影响现有存储系统的基本架构,所以实现成本很低。但是其难以克服的困难是平台依靠性太重,开发商要为每一种操作系统平台甚至每一个版本,开发一套软件产品,其劳动量是可想而知的。而基于存储设备的虚拟技术虽然有效率高,性能好等特点,但是在现实中,几乎所有的厂商都只提供对自身产品的支持,其开发性大打折扣。基于存储网络的虚拟技术目前还处于起步阶段,一些独立厂商已经涌现出来,这些厂商即不生产主机,也不提供磁盘阵列或磁带库等存储设备,专门提供面对开放存储网络的虚拟存储产品。虽然在现阶段这些产品或在性能方面,或在安全性方面,存在一些问题,但是其开放性的优势是这一类产品得以发展的强大动力所在。    第三个问题看起来也不深奥,但是当我们试图回答时,却发现无从说起。实际上这个问题的提出,是为了引出对虚拟存储的一个分类标准。根据实现的机制,虚拟存储可分为“带内”和“带外”两种基本类型。这两种类型的区别就在于,实现虚拟的过程是否与正常的数据读写过程同时进行。更具体的说,带内虚拟技术,是在数据读写的过程中,在主机到存储设备的路径上实现虚拟存储;而带外虚拟技术,是在数据读写之前,就已经做好了虚拟工作,而且实现虚拟的部分并不在主机到存储设备的访问路径上。因此,带内虚拟技术也称为“同步虚拟”,而带外虚拟技术自然就称为“异步虚拟”。
董唯元存储专栏 虚拟存储浅谈(图三)
打个比方说,假如我们把虚拟过程看作汽车上路的缴费过程,那么带内虚拟就相当于在公路上设置收费站,司机不上路就不需要缴费,而一旦上路,就必然要通过收费站,也就是在上路的同时缴费。而带外虚拟技术像交管所,司机在上路之前就已经在交管所办理了缴费手续,然后才可以上路,但是并不一定在缴费之后就马上上路,而且在公路上飞奔的汽车也不需要穿过交管所。明白了这个蹩脚的比喻,又看了图示的说明,下面这个结论就很轻易得出了:带内虚拟技术,可能是基于主机实现的,可能是基于存储设备实现的,当然也可能是基于存储网络实现的,而带外虚拟技术则只能是基于存储网络实现的。
董唯元存储专栏 虚拟存储浅谈(图四)

蓬勃发展的虚拟存储虚拟存储技术在3年的时间里已经取得了堪称辉煌的成就。其中的磁带虚拟、磁盘资源治理、跨卷多级治理等技术,已经发展出了一大批相当成熟的产品和解决方案,并逐步完善和丰富着今天的存储系统。随着厂商、用户和技术标准机构各方面,对这一技术方向与日俱增的关注,相信这一领域一定会长出累累的硕果。
阅读(383) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~