《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 融合NAS和SAN的存储网络设计
融合NAS和SAN的存储网络设计
Icbuy
Icbuy
摘要: 本文提出并实现了一种在IP协议下融合iSCSI、NAS、SAN的统一存储网络(简称USN)。在USN中,NAS设备、iSCSI设备和SAN设备并存,用户可以块I/O的方式访问USN中的iSCSI设备和SAN存储设备,也可以文件I/O方式访问USN中的NAS存储设备和SAN存储设备,整个USN是一个统一的存储池。
关键词: 存储技术 NAS SAN GMPFS
Abstract:
Key words :
  引言

  IT技术的发展经历三次浪潮:第一次浪潮以处理技术为中心,以处理器的发展为核心动力,产生了计算机工业,促进了计算机的迅速普及和应用;第二次浪潮以传输技术为中心,以网络的发展为核心动力。这两次浪潮极大地加速了信息数字化进程,使得越来越多的人类信息活动转变为数字形式,从而导致数字化信息爆炸性地增长,进而引发IT技术的第三次发展浪潮:存储技术浪潮。

  存储技术浪潮的核心是基于网络的存储技术。目前,流行的网络存储系统主要有两种:附网存储(NAS)和存储区域网(SAN)。按照存储网络工业协会(SNIA)的定义:NAS是可以直接联到网络上向用户提供文件级服务的存储设备,而SAN是一种利用FibreChannel等互联协议连接起来的可以在服务器和存储系统之间直接传送数据的网络。NAS是一种存储设备,有其自己简化的实时操作系统,它将硬件和软件有效地集成在一起,用以提供文件服务,具有良好的共享性、开放性、可扩展性。SAN技术的存储设备是用专用网络相连的,这个网络是一个基于光纤通道协议的网络。由于光纤通道的存储网和LAN分开,性能就很高。在SAN中,容量扩展、数据迁移、数据本地备份和远程容灾数据备份都比较方便,整个SAN成为一个统一管理的存储池(storagepool)。由于具有这些优异的性能,SAN已成为企业存储的重要技术。

  但在实际应用中NAS和SAN也存在很多缺陷,越来越不能满足IT技术的快速发展和数字化信息爆炸性地增长的需求。如NAS设备存在如下缺陷:(1)数据的传输速度慢,因为NAS只能提供文件级而不能提供块级的数据传输;(2)数据备份时性能较低,NAS在数据备份时要占用其大部分网络带宽,其它I/O性能受到影响;(3)只能管理单个NAS,很难将位于同一局域网中的多个NAS集中管理。SAN也存在以下缺陷:(1)设备的互操作性较差,不同厂家的设备很难互操作;(2)构建SAN成本高,目前只有实力较大的企业构建自己的SAN;(3)管理和维护成本高,企业需要花钱培训专门的管理和维护人员;(4)SAN只能提供存储空间共享而不能提供异构环境下的文件共享。

  针对NAS和SAN的优缺点,目前出现了多种新的网络存储技术,如:NASGateway(NAShead)、基于IP的SAN技术、对象存储技术。NAS网关能将SAN连结到IP网络,使IP网络用户能通过NAS网关直接访问SAN中的存储设备,所以NAS网关具有以下优点:能使NAS和SAN互连在同一LAN中,突破了FC拓扑的限制,允许FC设备在IP网络使用;减少了光纤设备的访问成本,允许访问未有充分利用的SAN存储空间。基于IP的SAN互连技术主要包括:FCIP(IPtunneling)、iFCP、iSCSI、Infiniband、mFCP,其代表技术是iSCSI技术。iSCSI技术原理是将SCSI协议映射到TCP/IP之上,即将主机的SCSI命令封装成TCP/IP数据包,在IP网络上传输,到达目的节点后,再恢复成封装前的SCSI命令,从而实现SCSI命令在IP网络上的直接、透明传输,使访问远程的SCSI盘可以像本地的硬盘一样方便。存储对象具有文件和块二者的优点:象数据块一样在存储设备上被直接访问;通过一个对象接口,能象文件一样,在不同操作系统平台上实现数据共享。NASGateway虽实现了NAS和SAN在IP的融合,但不是真正的融合,因为它不能将NAS设备和SAN设备融合起来向用户提供统一的存储池,用户也只能以文件I/O的方式访问存储设备。对象存储虽具有NAS和SAN的优点,但需要设计专门的对象存储接口,需要对现有的文件系统进行修改,这阻碍了它的进一步普及推广。

  本文提出并实现了一种在IP协议下融合iSCSI、NAS、SAN的统一存储网络(简称USN)。在USN中,NAS设备、iSCSI设备和SAN设备并存,用户可以块I/O的方式访问USN中的iSCSI设备和SAN存储设备,也可以文件I/O方式访问USN中的NAS存储设备和SAN存储设备,整个USN是一个统一的存储池。并且,USN能同时提供服务器通道和附网高速通道向客户机提供数据,减少了服务器瓶颈,提高系统的I/O速度。USN既有NAS的优点(低成本、开放性、文件共享),又有SAN的优点(高性能、高扩展性)。USN同NASGateway(NAShead)技术、基于IP的SAN技术、对象存储技术相比具有明显的优势。

  USN总体结构

  USN系统的硬件结构如图1所示。USN由NAS设备、iSCSI设备和SAN设备,以及元数据服务器和应用服务器组成。用户可以文件I/O的方式访问USN中的NAS设备和经过NAS头访问SAN中的存储设备,也可以块I/O的方式访问USN中的iSCSI设备和SAN中的存储设备。USN同时向用户提供服务器通道和附网高速通道,对于元数据和小数据请求都经过服务器通道完成,对于大数据请求则经过附网高速通道完成,这样大大提高整个系统的I/O速度,减少服务器瓶颈。整个USN是用基于IP的技术构建,可以兼容现有的存储系统,添加和删除存储设备都很方便。所以,整个系统的性能、扩展性都很好。USN真正实现了NAS和SAN的统一,即同一存储网络中既有NAS设备,又有SAN结构;实现文件I/O和块I/O的统一,即用户可以文件I/O方式(文件为单位)也可以块I/O方式(块为单位)访问USN中的设备;实现了文件协议和块协议在TCP/IP协议上的统一,用户可以NFS(Unix用户)和CIFS(Windows用户)访问USN,也可以SCSI(iSCSI用户)访问USN。

  图2是USN的软件结构图,其中GMPFS是全局多协议文件系统,位于USN系统中的各个应用服务器上,它支持使用CIFS协议的Windows用户对USN的访问,支持使用NFS协议的UNIX用户对USN的访问,也支持使用iSCSI协议的块协议用户对USN的访问。GMPFS通过对目前存储系统所使用的元数据进行扩展,采用启发式的方法,收集用户应用信息,为用户提供统一、方便、快捷的存储访问接口以及合理的数据存储方案。ASA是自主存储代理模块,它能够自动地发现海量存储系统中存储设备的种类和可利用的各种资源,自主地对这些存储设备和资源进行有效的统一管理和优化。ASA根据应用的不同和应用的具体需求,安排与应用相适应的存储设备种类、性能以及可靠性和可用性等级等,并为I/O请求选择合适的数据通道,使应用得到最优的存储资源分配,从而使整个系统的性能达到最佳。

  系统设计

  USN是一个复杂的系统,涉及到许多复杂的技术,本文主要论述其核心技术的设计和实现,即GMPFS、ASA和iSCSI系统的设计与实现。GMPFS可以驻留在多种操作系统平台上(UNIX,Windows,Linux),支持各种协议用户的访问(NFS,CIFS,iSCSI),为用户或应用程序提供对网络存储系统的数据访问服务。ASA将多种存储技术(这些存储技术各有所长,也各有所短)整合为一个统一的海量存储系统,充分发挥各种存储技术的优势,使得该存储系统对特定的应用程序而言服务性能达到最优,有效地满足多方面的应用需求。iSCSI真正的实现了块I/O和文件I/O在IP网络上的统一,文件协议和块协议在IP协议上的统一。

  全局多协议文件系统的设计

  GMPFS保留了分布式文件系统的灵活性和高性能的优点,而克服了其在不同I/O协议支持方面的缺陷,能同时支持NFS、CIFS和iSCSI协议用户的访问。GMPFS在提供文件存取的方法和文件目录结构的同时,还为每种存储卷提供特定的存储模式。每种存储模式包含某种文件系统的元数据结构,操作接口(文件类型和数据块类型),功能函数集(格式化,检索等),优化方法(cache方法和预取等)和存储空间分配回收方法及数据结构。对于文件卷而言,存储模式包含实现POSIX语义的操作函数和文件目录结构;对于分区卷而言,存储模式必须面向特定分区类型,如NTFS,ext3。所有的存储模式都必须在元数据服务器中的ASA系统中注册,以便ASA为用户的I/O请求进行通道选择。

  GMPFS的结构如图3所示。其中协议转换接口主要通过NFS的扩展程序模块和samba模块的组合对NFS协议和CIFS协议的支持,并通过iSCSI目标器驱动程序的扩展对iSCSI协议的支持。启发式数据管理接口主要是用启发式方法获得用户对存储数据的需要,如性能、使用率以及安全性等。GMPFS数据组织逻辑界面提供数据组织的逻辑视图,这一点正是针对传统文件系统文件目录结构对于海量数据难以管理的弱点,在增加元数据信息的前提下,通过查询和检索,按照用户需要提供各种类型文件视图,例如根据文件创建的用户和时间进行分类。扩展的文件或卷操作接口、数据组织与分配管理、元数据组织结构和I/O定向器等主要是保证与传统的文件系统操作语义兼容,实现程序级的数据访问。应用程序无需修改就可以使用USN系统中的数据。提供与元数据服务器中的ASA及存储资源的接口和通讯,能充分利用ASA系统所掌握的存储资源,合理组织数据,满足用户或应用程序对数据存储的多方面、个性化要求。如通过同时提供服务器通道和附网高速通道,改善用户的I/O性能服务,减少服务器瓶颈。

  iSCSI系统设计

  iSCSI协议定义的是SCSI到TCP/IP的映射,即将主机的SCSI命令封装成IP数据包,在IP网络上传输,到达目的节点后,再恢复成封装前的SCSI命令,从而实现SCSI命令在IP网络上的直接、透明传输。它整合了现有的存储协议SCSI和主流网络协议TCP/IP等两种主流协议,实现了存储和网络的无缝融合。从应用的角度看,iSCSI一方面通过SCSI命令的远程传送,实现了和远程存储设备的命令级交互,使用户访问远程的SCSI设备像本地的SCSI设备一样方便,而且具有高速度;另一方面也可用于改造传统的NAS、SAN技术,实现NAS和SAN的融合。iSCSI系统是USN系统的核心部分之一,iSCSI的设计实现了基于IP的数据块访问机制。

  目前iSCSI的实现方式可以考虑采用以下三种方式:纯软件方式、智能iSCSI网卡实现方式、iSCSIHBA卡实现方式。由于我们是设计USN的原形系统,所以只采用纯软件方式,iSCSIHBA卡方式是下一步产品化我们将实现的目标。iSCSI系统整体设计模型如图4所示(不包括管理模块)。服务器端(Target)采用linux操作系统,客户端(Initiator)采用Windows2000。SCSI微端口驱动在系统中生成一个虚拟的SCSI磁盘,过滤驱动截获系统发给SCSI磁盘的SCSI命令,通过核心态的网络接口发给服务器处理。

  自主存储代理系统的设计

  自主存储代理ASA的一端面对海量存储系统。目前的存储系统有DAS(直连存储)、NAS、SAN、iSCSI等,ASA能够自动地发现海量存储系统中存储设备的种类和可利用的各种资源,自主地对这些存储设备和资源进行有效的统一管理和优化;根据应用的不同和应用程序的具体需求,安排与应用程序相适应的存储设备种类、性能以及可靠性和可用性等级等,使应用程序得到最优的存储资源分配。

  ASA的另一端面对应用程序(GMPFS)。ASA通过对目前存储系统所使用的元数据进行扩展,采用启发式的方法,收集用户应用信息,为用户提供统一、方便、快捷的存储访问接口以及合理的数据存储方案;根据用户I/O请求所涉及数据的属性,选择客户端与存储设备交互数据的通道,即元数据(目录、卷信息等)和小数据I/O请求,选择服务器通道,对大数据I/O请求选择高速附网通道。大、小数据I/O请求由ASA自主地根据整个系统的I/O信息量进行调整。ASA系统结构如图5所示。

  客户端与USN交互流程

  USN系统中包括三类用户:Windows文件I/O用户(使用CIFS协议),Unix文件I/O用户(使用NFS协议),iSCSI块I/O用户(使用iSCSI协议)。用户在客户端与USN系统交互流程与图6所示。

  块I/O客户的具体的数据读写流程为(如图6):(1)客户1上的应用程序发出的块I/O命令(SCSI命令)经iSCSI设备驱动层和TCP/IP协议栈之后,封装成IP数据包,在IP网络上传输;(2)封装后的SCSI命令达到USN服务器之后,经解封装,恢复成封装前的SCSI命令,USN服务器利用这些SCSI命令对iSCSI存储设备发出块I/O读写请求;(3)被请求的数据块经iSCSI设备中的iSCSI层和TCP/IP协议栈封装成PDU,iSCSI设备传送的PDU到客户端可经两个途径:一种是经过服务器转发,一种是经过高速附网通道直接传到客户端;(4)PDU经IP网络上传输返回到客户1后,PDU经客户1解封装并由其文件系统组合成文件。

  当USN系统提供FileI/O服务时,其数据读写过程(如图6所示):(1)客户2(文件I/O)向USN服务器发出文件读写请求(其工作方式和传统的NAS相同);(2)USN服务器接到客户端的文件读写请求后:一方面,将该I/O请求发给对应的NAS设备或NAS头,NAS设备或NAS头将所请求数据传给USN服务器,再经USN服务器传到客户端;另一方面USN服务器不把文件I/O请求传到NAS或NAS头,而是将NAS或NAS头的IP地址传给客户端,客户端通过该IP地址直接与NAS或NAS头进行数据交互。

  这里的NAS头主要是支持FC协议的SAN设备能直接挂到TCP/IP网络,支持NFS/CIFS用户的访问,NAS头也可安装iSCSI目标器驱动程序支持iSCSI用户的访问。不论是块I/O请求还是文件I/O请求,都可通过附网高速通道实现客户端与存储设备的数据交互。

  试验评估

  从客户端对构建USN的各子存储系统以及整个USN进行功能和性能评测,并作进一步的比较。我们从两个方面对统一存储网进行测试:功能测试和性能测试。功能测试包括:(1)构建100M及1000M以太网环境,将iSCSI存储设备与服务器连接;在服务器操作系统中安装iSCSI软件包后,使用户能够通过网络获得iSCSI存储设备提供的存储空间,并能象使用本地硬盘一样对其进行操作。

  本测试项测试服务器端iSCSI盘安装、设置、管理和使用等各项功能;(2)iSCSI存储设备作为NAS头的存储设备,与NAS头组成一个NAS存储系统,本测试项测试iSCSI盘在NAS中的安装、设置、管理和使用等各项功能;(3)iSCSI盘与本地盘、FC-RAID盘构成各种冗余度的RAID,本测试项测试各种存储盘在RAID中的安装、配置、管理和使用等各项功能;(4)多个NAS、iSCSI设备、NAS头连接FC-RAID通过多GMPFS和ASA构建成USN海量存储系统,本项测试测试GMPFS和ASA系统在融合NAS、iSCSI和SAN的系统中的安装、配置及使用等各项功能。

  性能测试包括:测试在100M和1000M网环境中不同工作负载下NAS存储设备、iSCSI存储设备、FC-RAID、本地硬盘以及它们组成的海量USN系统的数据传输性能:包括单位时间内的IO次数、一次IO的平均响应时间、数据传输率和CPU利用率。该项测试的主要思想是针对不同的网络应用环境,对各种存储设备和各种传输通道进行频繁的IO处理,在确定时间内统计并计算IO率、数传率、响应时间、CPU利用率等性能参数,从而得到的各种性能评估。

  测试环境

  iSCSI存储设备:P42.0GHzCPU,256MBDRAM,IBMDPSS31835018G硬盘,RedhatLinux9.0操作系统;LINUX服务器:Pentium42.66GHz(FC2PGA)CPU,256MBDRAM,80GBUltraATA/1007,200rpm硬盘,RedhatLinux9.0操作系统;WINDOWS服务器端:XEON3.06GHzCPU,512MDRAM内存,SmartArray6i(板载)存储控制器,QlogicQLA2300PCIFCAdapter光纤适配器,IBM36。4GB(32P0726)10Krpm硬盘,MicrosoftWindows2003操作系统;FC-RAID:NexStor4000S,CPU600MHZ,512MSDRAM,10×ST314680FC硬盘;普通NAS存储设备:P42.66GHzCPU,512MBDDR,Maxtor160G硬盘,RedhatLinux9.0操作系统。

  网络连接:iSCSI设备和普通NAS设备都使用100M以太网卡RealtekRTL8139;Windows服务器使用1000M以太网卡HPNC7782GigabitServerAdapter;Linux服务器使用1000M以太网卡。HPNC7782GigabitServerAdapter。

  功能测试

  根据测试流程,功能测试包括三个方面的内容:(2)平台的统一,即在Windows下能通过单一目录树方式访问多个存储节点,功能与Linux下的pvfs相似;(2)协议的统一,即通过Windows的“计算机管理”和Initiator发起端(iSCSI客户端)可以管理FC-RAID和iSCSITarget及普通的NAS设备,并利用“动态磁盘机制”实现多种冗余;设备的统一,即iSCSITarget通过和initiator配合,使得该Target成为NAS系统中的一个存储设备。

  性能测试

  测试内容

  采用第三方的IOMETER测试软件进行的测试。IOMETER是INTEL公司专门开发的用于测试系统I/O性能的测试程序。它的测试参数比较全面,能非常全面的反映服务器的I/O性能。为了说明USN存储系统的性能,在相同条件下测试以下项目进行对比分析:(1)对USN服务器本地硬盘读写性能测试;(2)100M以太网环境下FC-RAID盘读写性能测试;(3)100M以太网环境下远程iSCSI盘读写性能测试;(4)100M以太网环境下FC-RAID盘和远程iSCSI盘构建的各级RAID盘的读写性能测试;(5)1000M以太网环境下远程iSCSI盘读写性能测试;(6)100M以太网环境下USN系统的读写性能测试。

  实验结果比较

  本地IDE硬盘、100MiSCSI硬盘、1000MiSCSI硬盘、FC-RAID、FC-RAID与iSCSI构成的RAID0及USN系统数据传输率性能比较如图7所示。

  本地IDE硬盘、100MiSCSI硬盘、1000MiSCSI硬盘、FC-RAID及FC-RAID与iSCSI构成的RAID0,以及USN的IO/s性能比较如图8所示。

  本地IDE硬盘、100MiSCSI硬盘、1000MiSCSI硬盘、FC-RAID及FC-RAID与iSCSI构成的RAID0,以及USN的平均响应时间性能比较如图9所示。

  本地IDE硬盘、100MiSCSI硬盘、1000MiSCSI硬盘、FC-RAID及FC-RAID与iSCSI构成的RAID0,以及USN的CPU占用率比较如图10所示。

  实验结果分析

  请求文件或数据块大小对存储系统性能的影响从图7、图8和图9中单条曲线的走势可以看出,当请求文件或数据块较大时,从目的盘或系统上读写数据耗费的时间长,通过网络传输的时间也相应增加,所以:小包的平均响应时间<;大包的平均响应时间,小包的IOps>;大包的IOps。请求包大时,针对一个请求包所进行的额外操作较请求包小时少,连续的读写所耗费的时间小于小包读写所耗费的时间,因此:小包的MBps<;大包的MBps。

  服务器端iSCSI盘的各项性能表现趋势在100M以太网和千兆以太网环境中不同请求包大小的情况下符合上述规律,本地IDE硬盘、FC-RAID和USN系统也符合上述述规律。

  性能分析

  从图7、图8和图9可以看出,I/O请求在1k~128kB时,USN系统的I/O请求响应速度比本地IDE硬盘、FC-RAID、100M远程iSCSI硬盘和1000MiSCSI硬盘快的多。当I/O请求大于128kB时,USN系统的I/O请求响应速度比FC-RAID的I/O请求响应速度略慢,比其它存储子系统的速度快的多,最高速度可达45MB/s。其原因是我们在USN的服务器端除加载了GMPFS(支持使用多种访问协议用户)和ASA(提供服务器通道和附网高速通道)的同时,还加载了我们实验室以前开发的智能预取、硬盘缓存技术(DCD)、负载均衡和零拷贝系统或软件模块,所以,不论是大I/O请求还小I/O请求,都能提供极好的I/O请求响应性能。而FC-RAID由于自身的数据校验等时延等特性,对小的I/O请求响应速度较慢,对越大的I/O请求响应速度越快。

  对于USN的iSCSI盘存储子系统,从实验结果可以看出,当请求数据块较小时,100M网络环境下的性能和1000M网络环境下的性能差别不明显,随着请求块或文件逐步增大,两者IOps和MBps的差距越来越大。请求数据块为1024K时,仅更换网络传输中的数据链路层和物理层,从100M网络环境提升到1000M网络环境,磁盘数据传输率得到较大的提高,后者约是前者的3倍。

  从图10可以看出,100M的iSCSI存储子系统的CPU占用率最高,原因是在响应用户的I/O请求,要求服务器不断的对iSCSI的协议数据单元进行封装和解封装。本地的IED硬盘CPU占用率最低,USN系统的服务器端CPU占用率次之,原因是USN系统中小的I/O请求直接经过服务器处理,而大的I/O请求经过附网高速通道由存储设备自身处理。

  结论和展望

  我们提出、设计和实现的统一存储网络系统,全部采用IP互联设备,价格比光纤通道低得多,在管理软件的开发实现上以及系统的使用维护上,都具有多得多的资源和经验。并且,千兆以太网技术比光纤通道技术发展迅速,10Gbps以太网交换机已经推出并在市场上热销,其性能前景也比光纤通道交换机好得多。所有这些为统一存储网络的产品化打下了坚实的基础。

  目前,我们已经从理论、结构和实践上实现了统一存储网络原型系统,现在,我们正在开发和完善多用户、多功能、多种平台支持的iSCSI设备,设计和实现新的安全和高可用文件系统,以便为统一存储网络系统产品化后能真正为广大企业,尤其是为广大中小企业提供开放性、性能、可展性、性/价比都更好的海量存储系统。



 

此内容为AET网站原创,未经授权禁止转载。