ccidnet????

出版日期:2003-03-10 总期号:1196 本年期号:15

本期导读
要闻综合
中国信息化
网络与通信
软件与服务
产品与应用
渠道与市场
东北专刊
华东专刊
华南专刊
西北专刊
西南专刊
存储虚拟化的三大问题

王岩

  原本存储虚拟化技术是作为存储管理的一个子集产生的,但是发展到现在,已经扩展得非常广泛。存储虚拟化的套路以“抽象”、“模拟”、“隐藏”和“整合”这四个方面为主。抽象就是提取各种存储技术和存储设备的共性,将多个资源抽象成为单一资源;模拟就是突破传统技术的限制,将一种资源模拟成为另外一种资源;隐藏就是将设备或服务等资源的无关特性细节屏蔽,从而隐藏资源的部分或全部特征;整合就是通过组织,将不同类型的资源整合成为一种资源。

  为了言之有物,我们主要讨论三个基础性的问题:虚拟的对象是什么?在什么位置进行虚拟?如何虚拟?

  第一个问题比较容易回答。存储虚拟化所虚拟的对象就是一些存储资源,如磁盘、磁带、文件、文件系统、数据块等。其虚拟的结果就是虚拟磁盘、虚拟磁带、虚拟文件、虚拟文件系统、虚拟数据块等。存储虚拟化的对象并不一定是物理的设备,还有可能是一些纯逻辑的对象。实际上,存储虚拟化既可以将物理设备虚拟成物理设备,也可以将物理设备虚拟成逻辑对象。随着技术的发展,甚至出现了将逻辑对象虚拟成物理设备的技术,例如将一个逻辑分区虚拟成一个物理磁盘。当然,从逻辑对象到逻辑对象的虚拟技术也在发展中,但相对而言,这部分的技术难度较大,而且目前的需求并不十分迫切,所以类似把一个文件系统虚拟成另外一个文件系统之类的技术,进展还非常缓慢。

  第二个问题的回答也不困难。虚拟是一个处理过程,这个处理过程一定是在主机和存储设备之间完成的,那就只可能有三个位置:主机、存储设备和存储网络。事实上,在三个位置上都有相应的存储虚拟化技术存在。根据处理所在的位置,存储虚拟化技术被分为基于主机端的存储虚拟化、基于存储设备的存储虚拟化,以及基于存储网络的存储虚拟化这三种类型。

  其中基于主机端的存储虚拟化几乎都是通过纯软件的方式实现的。这种实现机制不需要引入新设备,也不影响现有存储系统的基本架构,所以实现成本很低,但是其难以克服的困难是平台依赖性太重,开发商要为每一种操作系统平台甚至每一个版开发一套软件,其劳动量是可想而知的。基于存储设备的虚拟技术虽然具有效率高、性能好等特点,但是在现实中,几乎所有的厂商都只提供对自身产品的支持,其开发性大打折扣。基于存储网络的虚拟技术目前还处于起步阶段,一些独立厂商已经涌现出来,这些厂商既不生产主机,也不提供磁盘阵列或磁带库等存储设备,专门提供面对开放存储网络的存储虚拟化产品。虽然在现阶段这些产品在性能方面,或安全性方面存在一些问题,但是其开放性的优势是这一类产品得以发展的强大动力所在。

  第三个问题看起来也不深奥,但是当我们试图回答时,却发现无从说起。实际上这个问题的提出是为了引出对存储虚拟化的一个分类标准。根据实现的机制,存储虚拟化可分为“带内”和“带外”两种基本类型。这两种类型的区别就在于,实现虚拟的过程是否与正常的数据读写过程同时进行。具体地说,带内虚拟技术是在数据读写的过程中,在主机到存储设备的路径上实现存储虚拟化;而带外虚拟技术,是在数据读写之前,就已经做好了虚拟工作,而且实现虚拟的部分并不在主机到存储设备的访问路径上。因此,带内虚拟技术也称为“同步虚拟”,而带外虚拟技术称为“异步虚拟”。

  如果我们把虚拟过程看作汽车上路的缴费过程,那么带内虚拟就相当于在公路上设置收费站,司机不上路就不需要缴费,而一旦上路,就必然要通过收费站,也就是在上路的同时缴费。而带外虚拟技术像交管所,司机在上路之前就已经在交管所办理了缴费手续,然后才可以上路,但是并不一定在缴费之后就马上上路,而且在公路上飞奔的汽车也不需要穿过交管所。明白了这个比喻,下面这个结论就很容易得出:带内虚拟技术,可能是基于主机实现的,也可能是基于存储设备实现的,当然也可能是基于存储网络实现的,而带外虚拟技术则只能是基于存储网络实现的。