1 引言
存储区域网SAN(Storage Area Network,SAN)利用高速网络(如光纤)将应用服务器集群与异构的存储设备(如磁盘阵列、磁带库等)相连接,所有的数据传输均在相对独立的高速网络内进行,因此可以方便地进行集中控制以及数据共享,采用带外架构(out-of-band)的SAN可以使网络内的控制流与数据流相分离,能够减少管理节点的带宽压力,提高数据传输的速度和稳定性。
存储虚拟化技术可以透明地为用户提供虚拟的存储设备,它将底层异构的物理设备整合成统一的存储池,用户在逻辑设备上的I/O操作通过存储虚拟化层的地址映射传达到底层物理设备.将存储虚拟化技术应用于带外SAN环境,能够简化存储管理配置,提高存储区域网络的整体访问速度。企业级用户在部署存储虚拟化系统时往往需要能够支持多操作系统平台,本文提出一种面向SAN环境的Windows存储虚拟化软件VA-for Windows,它是一种应用于Windows平台的存储虚拟化客户端代理软件(Virtualization Agent,VA),该软件在Windows Server 2003操作系统上实现,为Windows用户提供了存储虚拟化系统的应用平台。
一次性为虚拟设备分配所有物理存储资源,会造成用户对逻辑卷的空间使用率过低,在大规模存储系统中已经成为不容忽视的问题,我们采用按需分配技术,既满足用户对虚拟卷的基本使用要求,又能够高效地利用存储资源进而达到节约能耗的目的。
当要对条带卷在容量上进行扩展时,会涉及到大量的数据迁移操作,然而,在现今的企业级大型存储应用当中,要求存储虚拟化产品必需能够在不停机的情况下无缝扩展存储设备的容量和性能,我们使用条带卷在线扩展技术,实现了条带卷在线性和扩展性。
实验表明,VA-forWindows能够在带外SAN环境下为Windows用户提供大容量、高性能的虚拟存储设备,可以实现提高系统存储资源利用率,提高虚拟存储设备的扩展性和可用性等高级功能。
2 相关工作
当前,众多的企业级用户迫切需要在windows平台上部署存储虚拟化系统,以处理体积越发庞大且数量与日俱增的海量数据,随着业界对存储虚拟化技术的认知度越来越高,对存储虚拟化产品在功能上的要求也越来越多。
当前市面上一些主流存储厂商推出的存储虚拟化产品,例如EMC Invista,HP StorageWorks SAN,IBM TivoliTotalStorage SAN Volume Controller等等,这些产品在具备各自技术优势的同时也普遍存在着一些兼容性的缺陷:在软件方面,大多需要厂商专用的虚拟化平台软件与定制的硬件驱动程序配合工作,这样不利于系统的后续升级;在硬件方面,从用户的长远考虑,过于依赖单一厂商的专有硬件设备,对整个存储系统的可扩展性和可持续性都是极为不利的。
EMC公司的Invista虚拟存储方案需要依赖一个特殊定制的"智能交换机"来负责服务器节点之间的信息交互,该交换机还要随硬件的更替而不断升级;惠普公司的HP StorageWorks虚拟化存储产品是在其专用阵列产品"EVA系列"的基础之上研发的,为了扩展更多的功能特性还需要后续安装更多的软件产品.由此可见这些存储虚拟化产品对专有硬件以及专用软件的依赖性都很强,对于用户来讲,不利于日后的存储系统扩展工作。
IBM公司的Tivoli TotalStorage SAN Volume Controller存储虚拟化产品,提供了对部分非IBM存储系统(EMC、HP等)的扩展支持,由单点服务器集中管理统一的存储池,但是这款产品只支持部分基于Linux平台的主机,并不能支持Windows平台的主机。
和这些系统相比,VA-forWindows对底层硬件没有任何特殊要求,所有存储虚拟化服务全部由软件实现,所有基本功能特性都在操作系统的内核实现,因此不存在硬件兼容性的问题,对各种磁盘设备和HBA卡的驱动程序都是通用的,这样,使得存储系统的可复用性和可扩展性得到显著提高,当用户决定对当前的存储系统进行扩展时,可以有更多选择,从而有效减少购置存储设备时的成本。
3 系统设计与实现
3.1系统架构
如图1所示,VA由内核态的驱动模块(MAGICDISK)和用户态的通信模块(AUI)两部分组成,MAGICDISK模块作为Windows系统内核中的一种中间层驱动存在于驱动栈中,它负责创建虚拟存储设备,完成I/O访问从逻辑设备到物理设备的地址映射,并实现虚拟存储设备的各种功能特性。
MAGICDISK与Windows平台的I/O管理器(I/OManager)、挂载管理器(MountManager)以及I/O系统服务配合工作,在Windows系统内部注册虚拟存储设备并将其挂载到指定的盘符上;AUI负责在带外SAN环境下与元数据服务器(MetaData Server,MDS)进行虚拟化指令的交互,包括存储设备的映射表以及配置信息等,并将这些指令通过ioctl传达到驱动模块,此外还要对当前的存储虚拟化服务状况进行实时监控。
图1 基本的系统架构
3.2 I/O流程
当应用程序的I/O访问请求发往虚拟存储设备时,首先由I/O管理器将其统一封装为IRP(I/O Request Packet)并向下传递,当传递到中间层驱动MAGICDISK时,根据需要来进行IRP的分割或合并,完成虚拟卷的逻辑地址到底层设备物理地址的映射,以及实现其它功能特性,再将IRP在驱动栈中向下传递,最后,由底层的物理设备驱动进行实际的I/O操作,此次IRP即处理完成,在IRP完成之后还要在I/O管理器的统一控制下沿驱动栈逐层向上返回,此时MAGICDISK有机会对其进行状态的监控以判断IRP是否成功返回。
当IRP返回到驱动栈栈顶后再由I/O系统服务向应用程序返回此次I/O访问操作的执行结果。
3.3存储资源按需分配技术
按需分配由VA与MDS配合完成,MDS并不一次性地为虚拟卷分配所有的存储资源,而是根据用户对虚拟卷的实际使用情况动态灵活地为VA分配存储资源,这就是按需分配的设计思想,在应用服务器方面,用户看到的虚拟卷大小虽然与普通逻辑卷没有什么区别,但实际上MDS只是为其按一定比例分配了一部分的实际存储空间,即只发送给VA若干段映射信息,当上层应用程序在虚拟卷上进行I/O访问时,会首先使用这一部分存储空间,只有当现有的存储空间不能满足应用程序的空间要求时,才会由MDS再次进行资源分配并发送下一段映射信息给VA。
为了实现这一功能特性,VA要在MAGICDISK模块为虚拟卷的一系列逻辑空间地址段维护统一的元数据存储池,从MDS端获得的每一段映射信息都保存在这个存储池当中,每当上层应用程序对逻辑地址空间的需求有所增长时,都要利用AUI向MDS发送新的映射请求,MDS在接收到该请求信息后,就会在统一存储池中动态地再分配一部分存储资源并将映射信息发还给VA。
当MAGICDISK模块处理某个从驱动栈上层传递过来的IRP时,首先要从中提取IRP的特征信息,其中包括读、写以及控制码等等,若处理的是读写IRP,则从中获取本次请求的逻辑起始地址和偏移长度,再根据这个逻辑起始地址到元数据存储池进行查找,若找到指定的逻辑空间地址,则根据与其对应的映射信息找到对应的物理磁盘,将该IRP传递到驱动栈的下一层直接进行映射;否则就需要先将该逻辑地址封装为特定的REQUEST包,作为一次映射请求信息通过AUI模块发送给MDS,当接收到MDS传回的RESPONSE包后,将其解析为指定的映射信息,即元数据信息再进行映射,完成映射时还要及时更新元数据存储池,按需分配技术的IRP映射过程如图2所示。
图2 按需分配技术的IRP映射过程
3.4逻辑卷在线扩展技术
在元数据服务器进行数据迁移的过程中,VA通过写时请求的方法在线地使用条带化的虚拟卷,由此来保证虚拟存储服务的持续性和可用性,数据重分布在短时间内完成以后,由于条带数的增加使得虚拟卷在容量上得到了扩展,而I/O带宽的增加又使得虚拟卷在性能上得到了扩展。
图3表示的是在线扩展技术的IRP执行过程,初始阶段,VA在MAGICDISK模块当中维护着一份虚拟卷的总体映射表,当应用服务器在该虚拟卷上进行的I/O访问传达到内核态时,使用该表进行映射,我们称之为CACHE模式的映射.当条带化的虚拟卷开始进行扩展操作时,首先由MDS发出扩展的控制命令,由于涉及到元数据的重分布,因此在VA上原来的映射表已经不再可靠,此时再次到达该虚拟卷的IRP要归入特殊队列统一处理,使用写时请求的方法,即对于每一个到达MAGICDISK模块的IRP,都要先从中获取逻辑起始地址,将其封装为指定的REQUEST包,而后作为请求映射信息通过AUI模块发送给MDS,MDS接收到REQUEST包后,将与之对应的当前最新的映射信息封装为RESPONSE包,发还给VA,然后,MAGICIDISK模块再根据本次获取的映射信息完成相应的映射操作,这种映射方式我们称之为NOCACHE模式。
MDS进行数据迁移的过程对用户是完全透明的,因此保证映射信息的正确性就显得尤为重要,即使下一次来到MAGICDISK模块的IRP逻辑地址与上次完全相同也要再次向MDS端发送请求,由此才能保证数据的一致性,当MDS在短时间内完成元数据信息的重分布后,要为该条带卷重新部署一份总体映射表,此时VA再切换回CACHE模式,此后传递到MAGICDISK模块的所有IRP就根据这份最新的映射表完成相应的映射。
图3 在线扩展技术的IRP执行过程
3.5改进的通信策略
VA的驱动模块MAGICDISK在Windows体系结构中作为驱动栈的一部分,在实现上述功能特性时都需要与MDS进行通信,AUI模块作为MAGICDISK模块与MDS之间进行通信的中转站,负责完成二者之间的信息交互。
在AUI模块与MAGICDISK模块之间构建专用的通道,即完成用户态到内核态的连接,然后使用同步消息事件传递机制,MAGICDISK模块在实现功能特性时所生成的每一次通信请求都以一个IRP的形式先发送到AUI模块,再由AUI模块通过用户态的socket接口将请求信息发送给MDS,VA从MDS接收信息的过程则与之相反。
VA与MDS进行通信时每次只处理一个IRP的逻辑地址请求,而MAGICDISK则采用异步方式处理特殊IRP队列,由此可见通信过程会造成性能开销,针对这种情况,我们在MAGICDISK模块当中使用一种预取以及校验映射信息的机制,即连续预取多个逻辑地址,再利用一次通信过程向服务器端请求多个逻辑地址的映射信息,期间通过校验机制来保证接收到的映射信息的准确性,这样,既可以减少通信过程所造成的性能开销,又可以减小元数据存储池的访问压力。
4 性能评价
4.1测试环境
测试使用两台服务器分别作为元数据服务器和Window应用服务器,配置均为Quad-Core AMD Opteron(tm)Processor2378 2.4GHzx8CPU,内存16G,Qlogic ISP2532(8Gb/s)光纤卡,客户端的操作系统为WindowsServer 2003 SP2 R2;磁盘阵列为Infortrend S12F-G1433 SCSI,传输带宽最大支持800MB/s,服务器通过光纤网络将其与高级磁盘阵列相连接,组成带外的SAN环境。
4.2按需分配卷的性能
将具备存储资源按需分配功能的虚拟卷命名为按需分配卷(Thin Provision Volume),为了测试按需分配卷的实际运行效果,将其格式化为NTFS文件系统,使用IOMETER作为测试工具,与普通虚拟卷进行对比,测试I/O带宽和I/O平均响应时间等性能指标。
图4 按需分配卷的存储资源节约情况
第1组测试验证按需分配卷的存储资源节省效果,通过对一个10G大小的按需分配卷进行写操作,期间观察在逻辑空间增长的同时其对应的物理空间增长情况,结果如图4所示,可以看出,在按需分配卷的逻辑空间使用率不高时,能够节省大量的物理空间,实际的物理空间随着逻辑空间的使用情况线性增长,图中显示物理空间的分配率要稍稍多于逻辑空间的实际使用率,这是由于逻辑设备在进行随机写操作时,逻辑地址的随机访问造成了更多的请求映射信息,物理空间也会相应地多分配一些地址段,用来进行I/O访问的映射操作.
图5 按需分配卷与普通虚拟卷的I/O带宽对比情况
第2组实验测试按需分配卷与普通虚拟卷的I/O带宽以及I/O平均响应时间的对比情况,分别对大小为10G、100G、1T的按需分配卷和与其容量相同的普通虚拟卷进行混合随机读写测试,其中测试的块大小范围为64K~4M,随机读操作占80%,随机写操作占20%,结果如图5和图6所示,通过性能对比我们可以看出,使用不同大小的按需分配卷进行I/O混合读写操作时,与普通虚拟卷的性能差别并不大,这是由于使用了实用高效的地址映射机制和通信策略,能够很好地减小元数据存储池的访问压力。
图6 按需分配卷与普通虚拟卷的响应时间对比情况
4.3条带卷在线扩展的性能
将条带化的虚拟卷命名为条带卷(Striped Volume),在第3组测试中,先将一个由2条带构成,大小为200G的条带卷格式化为NTFS文件系统,在此基础之上再为其扩展2个条带使容量增加到400G,最后再扩展4个条带使容量增加到800G,在这期间同样使用测试工具IOMETER对条带卷分别进行顺序读与顺序写操作,测试I/O读写带宽和I/O平均响应时间,由此对条带卷进行扩展前后的性能对比,其中测试的块大小范围为64K~16M,测试结果如上页图7和图8所示,可以很明显地看出条带卷在经过扩展之后的I/O读写带宽显著增加,I/O平均响应时间明显减少,由此可说明经过在线扩展之后,条带卷不仅在容量上得到了扩展,在性能上同样得到了很好地扩展.
图7 条带卷在线扩展顺序写性能测试结果
图8 条带卷在线扩展顺序读性能测试结果
5 结论
本文给出了一种能够应用在Windows平台的存储虚拟化客户端软件VA-forWindows,该软件作为SAN环境下的存储虚拟化系统的一部分,在Windows系统的内核态提供虚拟存储的基本服务,实验表明,在Windows系统下,VA-forWindows能够为用户提供稳定可靠的虚拟存储设备,使用带有按需分配功能的虚拟卷,可以在不损失性能的前提下有效地节省物理磁盘空间;对于条带化的虚拟卷,使用在线扩展功能可以在不停机的情况下,实现虚拟存储设备从容量到性能的双重扩展。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/