VDS (Virtual Disk Service, 虚拟磁盘业务), 是Windows 2003推出的一项虚拟存储技术,针对目前的中小型企业存储管理现状,它通过一套标准化的存储管理接口,来管理各个厂商的存储阵列以及DAS,从而达到简化管理的目的。VDS提供了一种基础架构,用于管理存储资源,包括磁盘和卷,使得DAS和网络存储资源能够很方便地被使用。这样,不仅减轻了不同厂商采用各自的非标准化管理工具的问题,同时也使管理员对各种存储设备有更加全面的了解。
一 VDS概述
管理网络存储,特别是SAN环境,对于管理员来说,和管理本地存储(DAS)有不同的需求。DAS环境下,由于存储资源和服务器相关联,使得存储资源的分布比较困难,从而导致管理的难题。网络存储,虽然从另一方面来说,整合了存储资源,但是围绕资源的共享,也引入了一系列的管理问题。其中,包括存储设备的检测、发现、访问,以及容错情况下的路由等;因此,需要更多的存储管理人员来处理这些增加的业务。但是,即使增加额外的人员,也并不是一个完整的解决方案。尽管对于企业级市场,高端设备商的存储管理方案已经在市场上推出一些时间,但是对于中小型企业(SMB),各个厂商的存储管理工具软件,还是比较缺乏。而开发这样的工具,对于希望实现网络存储方案的企业,能够简化存储管理的复杂度。
VDS采用COM技术,来消除不同厂商(包括System SW provider,SW Provider,和Hardware Provider)的差异性,从而对上层应用(Application)提供统一的接口,如图-1所示。
VDS能够提供管理员非常灵活的方式来访问标准化接口,包括或者图形方式和命令行方式:
- A, 对于简单管理。就是那些很少配置存储设备的管理员,比如一些小型企业,“磁盘管理”就能够满足需求,而不必使用DISKPART这样的命令行应用程序。
- B,对于自动地重复性磁盘管理任务。就是那些必须执行多次的基本磁盘管理任务,DiskPart和Diskraid命令行应用程序接口,提供了存储管理员编写script的能力,从而能够通过自动执行命令,来配置多个存储系统。
管理存储网络的另外一个重要方面,就是使资源对于某些系统是可见并且可访问的,但是对于另外的系统则是不可见也不可以访问的。通过各个厂商的磁盘子系统报告资源给VDS,从而能够了解到所有的存储资源。再通过使用Diskraid命令,可以根据需要,将这些资源配置为可见(unmaksed)或者不可见(masked)。
二 VDS架构
通过VDS,上层应用程序(包括目前的DISKPART/DISKRAID命令行程序,Disk Management磁盘管理程序,以及使用该VDS接口的存储管理程序)就可以很方便的和下层各种存储资源通信。而在下层,通过COM这样的中间件技术,为各种软硬件厂商提供接口,让其实现对应的功能,从而屏蔽差异性,达到提供统一接口的目的,如图-2所示。
图-2 VDS架构图
其中,软件的解决方案,可能有不同的叫法,比如“基于主机(Host Based)”或者“软件(Software)”解决方案,VDS统一叫“软件提供者(software providers)”。它可以由第三方厂商实现,也可能是由Microsoft实现。如果是由Microsoft实现,通常叫做“系统软件提供者(system software providers)”,它是“in-box”解决方案,就是在OS安装盘中集成,不需要额外的安装步骤。
该方案,没有高昂的价格,实现容易,升级和解决故障也易于管理,并且它们通常都是操作系统升级服务包的一部分。但是,在高工作负载时性能会受到影响;同时,不能提供高级的管理功能。
硬件提供商也可以开发它们自己的存储管理方案,VDS叫做“硬件提供者(hardware providers)”,它能提供比软件提供者更好的性能,因为工作负载被外部磁盘子系统分担。此外,他还提供了最大的灵活性,比如远程管理。
三 VDS技术细节
VDS提供相关的应用程序接口(Application Program Interface, API),它涵盖了硬件提供者,软件提供者,以及VDS实现的相关函数。
对于硬件提供者,主要是实现其COM接口的API,来处理物理的或者逻辑的对象。比如存储子系统,LUN等。目前,VDS支持三种硬件提供者:光纤通道(Fibre Channel, FC),iSCSI(internet SCSI),以及PCI RAID卡。
除此之外,VDS还支持多I/O路径(Multiple I/O path),从而帮助存储管理员处理存储设备的可靠性。VDS的接口(Interface),方法(Methods),以及相关数据结构(Data Structure)都遵从Microsoft MPIO编程接口,从而为设备供应商提供I/O Multipathing方案,如图-3所示。
3.1 Fibre Channel子系统模型
Fibre Channel是一个高性能的串行链路协议,它用于连接主机和存储系统。在VDS的FC模型中,它的一个连接是基于主机总线控制器(host bus adapter, HBA)的端口(Port)和存储系统的一个控制器(Controller)端口的某个LUN。
在此模型中,控制器和控制器端口对象,是主机读写LUN的基本方法;引入控制器端口对象,意味着VDS unmasks LUN(s)的能力转移到了主机,同时并有利于管理路径。
目前的MPIO,通过标志控制器端口为Active,来管理基本(Primary) 路径和备份(Backup) 路径;而使用标志为inactive的控制器端口的连接,在MPIO是不可见的。当需要设置链路均衡(load balance)策略时,影响到MPIO如何管理基本路径和备份路径,如图-4所示。
3.2 iSCSI模型
在iSCSI模型中,目标(Target), 入口组(Portal Group),以及入口(Portal)对象是应用程序和LUN对象通信的基本方法。iSCSI查询和Target关联的LUN,在特殊情况下,应用程序可以和一个没有Target的LUN关联,而Portal Group对象则必须有一个Portal,并和某个Target相关联。
该模型规定支持一个子系统Subsystem可以支持多个Target,从而可以使得VSS在硬件层次上可以传输快照(snapshot)的能力;同时,它能提一对一的,初始端(initiator)和目标(Target)对应关系。子系统通过不同的Target,能够使LUN向不同的initiators服务。
四 VDS使用
4.1 Disk Management磁盘管理应用程序
我的电脑(右键)-〉管理,打开“计算机管理”应用程序,然后选择磁盘管理;就可以创建基本盘(Basic Disk),以及动态盘(Dynamic Disk)等比较简单的操作。
4.2 DISKPART命令行应用程序
Windows Server 2003自带了基于主机的软件提供者Diskpart;它是一个基于脚本的命令行程序,能够管理磁盘,分区,以及卷。除此之外,DISKPART能够被用于增加和减少卷的容量(包括基本卷和动态卷),以及改变驱动器盘符等其他功能。
4.3 DISKRAID命令行应用程序
DISKRAID也是可用于脚本的命令行程序,它能够管理存储阵列(硬件RAID)的RAID配置。但是OS并不自带DISKRAID,在Microsoft Windows Server 2003 Deployment Kit中才会有。它可以工作在包含VDS硬件提供者的任何阵列上,主要是用于管理LUN,以及其可寻址的物理单元。
五 VDS分析总结
VDS采用COM中间件技术,对上层应用提供统一的接口,让下层的软件提供者和硬件提供者对应的执行这些接口对应的操作,从而统一了操作规范。无疑在中小型企业(SMB)领域,采用Windows平台上,提供了一种标准化的处理方式,一方面来说从某种程度上消除了各个存储设备供应商对相似技术各自表达的凌乱局面,并且提供了软件硬厂商的开发接口;同时也让用户能够通过统一的标准认识存储并学习,减少了针对不同厂商需要开销不同的培训的情况,从而节约了开支。并且,该技术已经被应用到Windows即将发布的下一代操作系统LongHorn中。
但是,对于企业级(Enterprise)的存储设备,VDS还不能够提供足够强大的管理功能。比如电源监控,快照处理,远程拷贝,性能监控等,都还不能够做到高级的硬件存储阵列管理应用的功能。不过,对于高端市场,想要像SMB那样设计统一的标准,不是一件很容易的事情。
总之,对于采用Windows操作系统的SMB市场,同一标准的VDS,对于设备厂商来说,就需要遵守Microsoft制定的规则来处理,特别是对于设计存储管理应用程序的公司来说,那可能真是“几家欢喜几家愁”。 但是对于用户来说,简化了管理的难度,消除了不同厂家设备的差异性,从整体上来说可以降低开销成本,应该说是一件“大好事,大实事”。到底VDS最终如何,我们还是拭目以待,让市场去检验这项技术。