1、一种基于 Ethernet的网络存储的研究Study of One Kind of Network Storage Based on Ethernet朱立谷 赵青梅 许强 周经野ZHU Li-gu,ZHAO Qing-mei,Xu Qiang,ZHPOU Jing-ye(湘潭大学信息工程学院 湖南省湘潭市 411105)(Information Engineering Institute,Xiangtan University, Xiangtan City411105,China)摘要: 本文介绍了网络存储的概念,对目前主要网络存储的体系结构进行了比较和分析。然后,详细描述了 iSCSI的定义
2、和原理,并在 Linux 2.4.0 内核下采用动态加载模块的方式实现了 iSCSI ,并测试了 iSCSI的性能。Abstract: This paper introduces the definition of network storage, and reviews the main approaches of network storage, and compares architectures of network storage today. In it, we describe the definition of iSCSI and introduced the principl
3、e of iSCSI. Initiator and target of iSCSI are implemented as dynamically loadable modules in the Linux 2.4.0 kernel. At last, the performance of iSCSI is tested and compared with NFS. 关键词: 网络存储;iSCSI;存储体系结构Key words: Network Storage;iSCSI ;Storage System Architecture中图分类号:TP333 文献标识码:A1 引言传统的存储设备都是将
4、 RAID硬盘阵列直接连接到服务器上,这种形式的存储结构称为直接连接存储(DAS-Direct Attached Storage)。这种结构中客户机的数据访问必须通过服务器,然后经过其 I/O总线访问相应的存储设备,服务器实际上起到一种存储转发的作用。当客户连接数增多时,I/O 总线将会成为一个瓶颈,并且会影响服务器本身功能,严重情况下甚至会导致系统的崩溃。网络存储是一种能够提供主机到存储系统灵活连接的解决方案。网络存储将存储设备作为网络的组成部分,使它成为计算机网络的对等体,存储结构由以服务器为中心改为以网络中心的技术,放弃了使用多年的由系统对存储设备进行严密控制的结构,可实现“任一”主机和
5、“任一”存储设备之间的连接。网络存储结合了网络和存储的精华,特别是灵活的网络寻址和远程传输能力以及高效的 I/O性能。存储区域网络(Storage Area Networks,SAN) 1和网络附着存储(Network Attached Storage, NAS) 2是两种常见的和获得了广泛应用的网络存储方法。从技术上讲,由于NAS在它的存储子系统中有一个文件系统,使它不同于没有文件系统的 SAN。实践中,由于NAS采用了 Ethernet网络硬件,而 SAN采用的是光纤通道网络硬件,这对用户的购买决策有更大的影响。采用新技术对 NAS和 SAN进行改进可以产生一些新的网络存储系统。例如,SA
6、N 协议专有化的降低使得类似于 SAN的设备能够在 Ethernet网络中应用;同样,NAS 系统专有性的增强将使存储设备具有一些文件系统的功能。新的网络存储系统不仅要满足当前的技术要求,包括超大存储容量、大数据传输率以及高系统可用性、快速部署和应用、集中管理、方便备份,另外还应有更多的新的特性:(1)由于电子商务的不断发展,为了保证数据连续可用,所有数据必须不断更新的远程备份,以防止地区性灾难;还有,随着 Internet基础结构的带宽快速增长,在企业内部网络中使用 Internet成为一个发展趋势,存储系统必须具备更可靠地与 Internet的连接能力。 (2)由于电子犯罪(黑客)变得更狡
7、猾,也更常见,安全将成为存储属性的关键点。目前,现有的绝大多数 SAN的存储系统都是采用光纤通道技术实现互联,由于光纤通道是一种总线扩展的网络连接,存储系统的安全保障是有限的或不存在的。在 Internet上,网络存储系统的安全机制比单独的光纤通道网络具有更加重要的地位。 (3)随着用户机性能的不断增强和数目不断增加,数据类型更加丰富,如视频,声音,以及数据密集型应用的增多,如零售交易记录、医疗记录、电信通话记录的数据挖掘,存储设备的性能必须与存储容量成比例地扩展。新的应用对存储系统提出了许多的新要求,同时存储容量的需求急剧膨胀,这推动了网络存储市场的快速增长,因此,研究网络存储有极大的理论和
8、应用价值。2 网络存储体系结构比较与分析2.1 网络存储结构网络存储可选的结构有很多,图 1列出了五种比较有影响的实例: (1)SAN 采用本地文件系统,是最简单的组织,磁盘为固定大小的块的抽象,数据按条带化的方式存储在 RAID架构的系统上。SAN 采用光纤通道网络硬件相连,光纤通道的主要传输协议是 FCP(Fibre Channel Protocol-光纤通道协议) ,它是 SCSI I/O协议的串行转换。光纤通道网络硬件价格较贵,不同厂家的产品兼容性差。同时,需要采用特殊的软件、交换分区、LUN 屏蔽等技术解决安全性的问题。(2)NAS 通过内置的服务器在磁盘上直接建立分布式的文件系统,
9、给客户机提供一个简单的文件接口。由于数据从磁盘到客户端需要进行两次网络传输,文件服务器成为瓶颈,特别是磁盘多的情况。可以通过使用特殊用途的服务器硬件和高度优化的软件得到减少文件服务器的瓶颈。(3)NASD(Network Attached Secure Device-网络附着安全设备) 3将磁盘管理功能集成在设备中,在设备中保存文件描述符和间接块,通过保存文件系统提供一个文件接口的抽象,让客户端读取和解析目录。另外,NASD 提供属性分离的可变大小的数据对象,而不是固定长度的块,并能自我管理,不必信任客户机文件系统。同时,NASD 支持异步监视(Asynchronous oversight)
10、,客户机不需与文件服务器同步就能够执行大多数操作,即文件管理器允许客户机直接对设备发出命令。NASD 结构最大的优点使可以利用简单的并行LANLAN读,写LAN管理LAN管理LAN管理LAN管理SAN管理文件管理应 用 存储管理 磁盘1.SAN2.NAS3.NASD4.Petal5.iSCSI图 1 几种不同的网络存储结构的比较分布式的文件系统提供可扩展带宽。(4)Petal 4 是类似于 NAS的磁盘阵列,但它提供一个面向块的接口,而不是提供一个文件接口。Petal 将控制器功能分配到控制器集群来进行扩展,每一个控制器都存取一致的全局状态。随着 Petal系统容量的增长,增加集群中 Peta
11、l服务器的数量可以维持相同的性能。逻辑上,Petal 可以看作是一个在对称多处理机上实现的 RAID系统,尽管它使用的是分布式一致算法,而非全局状态共享内存。管理 Petal系统非常容易,所有的Petal服务器都存取全局状态,因此在任何时候可以增加和减少服务器数目,在任何时候都能改变设备设置。Petal 是采用 Internet(LAN)协议建造,但逻辑上设计成 SAN接口。(5)iSCSI5,6 是在 Internet协议之上的增加一层块级别的 SAN协议,这是一种能够利用 Internet的存储方式。类似于光纤通道协议 FCP,iSCSI 提供一个 SAN接口。iSCSI是存储设备网络迈向
12、通用化的一步。利用现存网络基础结构以及 Internet通信协议的已做的大量的工作,使 iSCSI具有与 IP网络相同的可扩展特性。iSCSI 采用了 TCP传输机制在IP上传输数据,对 TCP进行小量的改动或采用更有效的堵塞控制算法可以使它具有更高的数据传送速度。2.2 网络存储结构的分析由上可知,几个重要的特性决定网络存储的体系结构。2.2.1 存储抽象NAS在客户机和文件系统间设有一个网络,而 SAN在文件系统和存储介质间设有一个网络。其它对网络存储接口的抽象可能在客户机和应用间设有一个网络,就象数据库引擎的应用服务器所做的一样;或者象基于对象的存储设备,网络附着安全设备(NASD) ,
13、在文件系统目录功能和文件自身之间设有网络。一些的网络存储系统与存储块、对象或文件相关的属性更加丰富;除记录数据、大小和许可权外,这些属性可用来设置性能目标,触发备份,以及通过开关锁来协调数据共享存取。2.2.2 网络结构当系统组件分布于很大的地理范围时,用来完成一个应用工作需要穿过的网络数量非常关键。做同样的工作时,因为 SAN系统基于客户机文件系统,在它们能接收数据块之前必须连续接收大量的元数据,会发送更多通过网络的存储请求;相反,由于 NAS系统包括了能解释元数据的文件系统,它们不会通过网络发送大量元数据。同时,对现有网络的基础结构的适应和支持,不仅加快存储系统的应用、降低成本,还会增加存
14、储系统的可管理性。2.2.3 性能NAS和 SAN系统在每个存储控制器上有许多磁盘,这种结构使得控制器成为一个瓶颈,因为现在的磁盘移动数据的效率很高,相对来说,文件系统命令处理花费大量的服务器CPU周期。一种避免控制器成为瓶颈的策略是分离命令和数据通路,这种经典的直接存储器访问方法允许数据通路专有化来提高速度;另一种的策略是使控制器组件并行化,使之成为一个互相协作的、负载均衡的控制器集群。2.2.4 安全决定信任哪些组件和哪种网络消息是任何安全体系结构的核心。SAN 存储信任连接整个网络的所有成员;NAS 系统信任的要少些,主要是信任客户机的操作系统,而非这些客户机的用户。由于在 SAN中所有
15、的存储资源都可以被存取,所以需要有一种机制来保证各个存储服务器中的数据不被非法改写。目前有多种机制来加强 SAN的安全 7:首先是把主机总线适配器绑定在特定的逻辑单元上,从而阻止其他逻辑单元对存储资源的非法使用;其次是在系统管理软件中嵌入程序实现相应的功能;还有一种机制是使用端口分区的方法,把交换机分成许多逻辑上的区域,从而实现安全的功能。而 iSCSI具有自己的安全机制,包括以下模式: 启动器与目标器互相认证,Kerberos 等机制提供这个特征。PDU 一致性 , 一致性/认证 ID附加在每一个数据包上,利用算法进行沟通。另外,可以利用当今的安全技术,例如虚拟私有网络、IPSec、防火墙和
16、加密技术进一步改进了区分共享网络上授权的和未授权的终端用户和服务器的能力。3 iSCSI的基本组成与原理3.1 iSCSI的定义iSCSI是在 Internet工程任务组(IETF)主持下开发的一个公开的技术标准协议,目前 iSCSI定义草案是第 9版 8,IETF 计划在 2002年完成最终草案。iSCSI协议是 SCSI远程过程唤醒模型在 TCP协议上的映射。与 SCSI协议类似,启动器和目标器将它们的通信分为消息,这些消息用“iSCSI 协议数据单元”(iSCSI PDU)表示。为了性能的缘故,iSCSI 允许“阶段冲突”:一个命令和相关数据允许同时从启动器传输到目标器,数据和应答也能同
17、时从目标器传来。iSCSI 传输方向根据启动器定义,外向传输指从启动器到目标器的传输,内向传输指从目标器到启动器的传输。一个 iSCSI任务是一个要求应答的 iSCSI请求。为了区分启动器和目标器的活动以及它们怎样与传输和接收 PDU,使用下列概念层次模型:SCSI 层次:建立/接收和发送/接收 SCSI CDB(命令描述块)及命令执行参数到/来自iSCSI层;iSCSI 层 : 建立/接收和发送/接收 iSCSI PDU,到/来自一个或多个构成一个启动器-目标器“会晤”的 TCP连接。iSCSI启动器和目标器的通信可以建立在一个和多个 TCP连接上,TCP 连接用于传送SCSI命令、任务管理
18、命令、数据、协议参数、控制消息,这些都包括在 PDU内。连接一个启动器和目标器的 TCP连接组构成一个会晤(类似于一个 SCSI I_T连接)。一个会晤由一个会晤 ID来标识,它由一个启动器部分和一个目标器部分所组成,可以把一个 TCP连接加入一个会晤,或将它从一个会晤中删除。一个会晤中的连接由一个连接 ID所标识。在一个会晤的所有连接中,一个启动器看到一个“目标器映像”,所有目标器标识符,比如 LUN,都是相同的。另外, 在一个会晤的所有连接中,一个目标器看到一个“启动器映像”, 所有启动器标识符,比如启动器任务标签,无论从哪个连接接收或发送数据,都可用来标识同一个实体。在一个会晤中,iSC
19、SI 目标器和启动器可以支持多个连接,并且至少支持一个 TCP连接。一个会晤中目标器和启动器虽然只支持一个活动连接的,但在错误恢复过程中必须支持两个活动连接。3.2 iSCSI的组成和数据路径iSCSI的基本系统模型是一个用于连接SCSI启动器设备和一个 SCSI目标器设备的虚拟线缆。图 2显示了一个采用 iSCSI协议实现的基本的 IP存储网络。iSCSI启动器和 iSCSI目标器均用它们的 IP地址来进行认证。iSCSI 启动器和目标器建立 TCP连接后,此时应用程序发出一个I/O请求到文件系统,文件系统将它转换为存储 I/OSCSI 命令,iSCSI 启动器驱动程序就会感知这个存储 I/
20、O请求,并将 SCSI命令封装到 TCP/IP协议栈中。然后,TCP/IP主机iSCSI 启动器程序TCP /IP图 2 基本的 IP 存储网络组成图iSCSI 目标器器程序存储设备存取网络设备驱动程序,并通过 I/O将包含 SCSI命令的数据包传输到网络上。iSCSI目标器的网卡接收到这数据包后,将它从网络设备驱动程序送到 TCP协议栈,iSCSI目标器驱动程序从 TCP协议栈中取得 I/O请求数据,并将它分解成 SCSI命令,再将SCSI命令发送给 SCSI设备驱动程序,最后,SCSI 设备将处理这个 I/O请求。如图 3所示。从目标器返回到启动器的数据沿着相反的路线进行传输。3.3 iS
21、CSI的特性iSCSI协议组成的存储网络具有三个与其他网络存储协议不同的特性:(1)提供虚拟 SCSI设备:在目标器一端,加载目标器驱动程序模块时,先通过 SCSI Pass-Through驱动程序打开SCSI字符设备,并根据设定的参数确定需要使用 SCSI盘的空间大小。在第一次设置了 SCSI盘的空间大小以后,再次加载目标器驱动程序模块时,可以根据需要扩大使用的 SCSI盘的容量而不破坏以前的数据。当启动器向目标器发送一个登陆请求命令时进入注册状态,相互认证后,目标器接受登陆,并且回传 iSCSI参数,启动器根据获得的 iSCSI参数在系统中注册具有相应大小空间和属性的 SCSI设备。(2)
22、提供可变大小的协议数据单元 PDU,而不是固定长度的块,因此可以优化系统I/O。一个 iSCSI PDU有一个或多个头段和一个可选的数据段,在整个头段之后可能会有一个头数据。第一段叫基本头段(BHS) (见图 4) ,在很多情况下这是唯一的段,它是一个固定长度为 48字节的头段;接着,可能有一个附加头段(AHS) ,因此,如果只有一个 BHS,没有数据或数字,iSCSI PDU 的长度为 48字节。所有的 PDU的段和数据的长度均为 4字节的整数倍数,倍数可以为 0。图 4 iSCSI协议数据单元的基本头段( BHS)的结构(3)支持一个目标器与多个启动器连接和多个目标器与一个启动器连接。一个
23、目标器可以同时与几个启动器进行通信,目标器的会话队列的深度就决定与之通信的启动器的个字节7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00 X 1 操作码 F R W 0 0 属性 保留 保留4 附加头段长度(AHS)数据段长度(DataSegmentLength)8 逻辑单元数(LUN)16 初始任务标签20 传输数据长度24 命令序号(CmdSN)28 扩展状态序号(ExpStatSN)或扩展数据序号(ExpDataSN)32 SCSI命令描述块(CDB)头摘要(如果有)命令数据(如果有)48+数据摘要(如果有)
24、RAID 控制器SCSI 命令集TCP/IPiSCSI应用网卡网卡操作系统SCSI 命令集TCP/IPiSCSI图 3 iSCSI 启动器到目标器的 I/O 路线数,可以根据对目标器会话队列深度的设置来设定可以连接的启动器的个数。但是,目标器的某个会话只能与某一个确定的启动器通信。一个启动器也可以同时跟多个目标器进行通信,跟目标器一样,也由启动器的会话队列的深度来决定目标器的个数,确定了会话队列的深度,也就确定了能同时与之通信的目标器的最大个数。也跟目标器一样,启动器的某个会话也只能与某个确定的目标器进行通信,因而,启动器的会话与目标器也是一对一的关系。4. iSCSI试验系统和结果我们已经在
25、 Linux 2.4.0 内核下采用动态加载模块的方式实现了 iSCSI启动器和目标器的驱动程序。iSCSI 目标器、启动器各用一台 PC实现,所用机器均为联想奔月 2000 (Intel Pentium 933MHz,SDRM 256MB);网卡为 TP-Link 100Mb/S;交换机为 TP-Link TL-SF1016 (100Mb/S)。目标器上安装 SCSI卡为 Adaptec 2940UW,采用磁盘阵列的 RAID控制器为 Infortrend 3102 U2G (133MHz 8x486 CPU,64MB 缓存),配置 3块 Seagate ST39204LC(9GB)硬盘,做
26、成一个 RAID 5逻辑盘。表 1描述了采用硬盘 I/O性能测试软件 Bonnie9对本机 SCSI硬盘,NFS 和 iSCSI的读写性能的测试结果。本地硬盘就是直接对磁盘阵列进行测试,NFS 和 iSCSI均是在客户机(NFS 表 1 不同方式下采用 Bonnie测试的读写速度和 CPU占有率客户端和 iSCSI启动器端)上进行测试。顺序写测试是采用 putc()组成的标准的 I/O宏模拟小数据写的结果,CPU 占用率包括运行标准 I/O代码和操作系统进行文件系统空间的分配;顺序读是采用 getc()函数组成标准宏进行小数据读循环的结果;lseek()是采用随机方式对指定的文件进行 8000
27、次定位的结果。从表可见,iSCSI 具有比 NFS更好的性能,但比本地硬盘要差。iSCSI 设有较大的缓存,并且进行了软件优化,对于 NFS,我们在系统默认方式下进行测试,未进行任何优化,因此,NFS 相比 iSCSI读写性能差。与 NFS相比,iSCSI 占用了太多的 CPU,这是因为 iSCSI要进行更多的诸如数据打包、SCSI 命令分解等处理工作。本地硬盘与 iSCSI相比,只有不太多的优势,原因是我们测试的结果是模拟标准 I/O小数据读写,因此,I/O 瓶颈是主机的性能而不是网络带宽。图 5所用的测试方法是由启动器和目标器程序实现,启动器发送相同内容的数据,数据包的大小为 8192字节
28、,目标器进行顺序读写。其中 RAM方式是目标器并不打开 SCSI字符设备,而是在内存中分配固定大小的空间,接收的数据直接写入指定的内存空间。由图可知,RAM 的方式与在目标器上直接存取 SCSI设顺序写 顺序读 lseek()指标方式速度(MB/S)CPU()速度(MB/S)CPU()速度(MB/S)CPU()本地硬盘 12.23 98.6 12.29 99.1 24.82 99.3ISCSI 11.61 95.5 10.84 95.4 24.66 98.7NFS 8.32 88.9 12.14 99.9 6.70 45.2图 5 iSCSI读写速度的测试结果0246810128 16 32
29、64 128数 据 量 大 小 ( MB/请 求 )读写速度(MB/S) 写读写 (RAM)读 (RAM)备相比要快一点,但区别不太大。这是因为快速 Ethernet的最大可能的带宽为 11.9MB/S左右, I/O 瓶颈是网络带宽。我们的 iSCSI试验系统的读写速度最大达到了 10MB/S以上,由此可知,iSCSI 对 TCP连接带宽的利用率相当高。每次请求的数据量的大小对读写速度有一定的影响,说明请求的数据量越大,传输同样多的数据所需建立会话次数越少,因此效率越高。5 讨论iSCSI是网络存储领域最活跃的研究方向之一,它建立在存储领域和网络领域应用最广泛的两个协议的基础上,因此,可以利用
30、已有的大量的研究成果来实现一个高性能的存储网络。iSCSI的主要缺点是网络协议处理比本地硬件设备存取要消耗更多地系统资源;网络协议是面向字节流的,网络接口是 iSCSI的瓶颈;同时,网络协议不具备完全的错误处理功能。目前,支持存储功能的 ASIC的研究已证明可以减少主机的资源消耗。我们认为,要进一步提高性能,除了在软件方面应用缓存等技术进行优化外,更重要的是在网络存储结构方面有新的突破。如在软件方面重点研究 TCP/IP与 iSCSI协议间的 Zero-Copy技术,在结构方面研究组成一个互相协作的、负载均衡的 iSCSI目标器集群的技术。总之,iSCSI 是一个高性能的网络存储协议,它可以利
31、用现有的广泛应用的 Ethernet网络实现基于 TCP/IP的存储网络,这将大大地减少了企业在存储方面的开支,为一种网络存储的应用指出了一条光明的前途。参考文献1.美Farley M. 着. 孙功星等译.SAN 存储区域网络.机械工业出版社,2001.12.Hernandez R.,et al. IP Storage Networking: IBM NAS and iSCSI Solutions, Redbooks Publications(IBM),SG24-6240-00,June 20013.Gibson G., et al. A Cost-Effective High-Bandwid
32、th Storage Architecture, Proceedings of the 8th Conference on Architectural Support for Programming Languages and Operating Systems . ACM Press, New York, 1998,92-1034.Lee E., Thekkath C. Petal: Distributed virtual disks. Proceedings of the 8th Conference on Architectural Support for Programming Lan
33、guages and Operating Systems . ACM Press, New York, 1998,84-925. Paleker A. and Russell R. Design, Implementation, and Performance Analysis of Session Layer Protocols for SCSI over TCP/IP, Technical Report TR 01-01, University of New Hampshire, May 2001URL:ftp:/www.iol.umh.edu/pub/iscsi/tr0101.pdf6.
34、A NetConvergence White Paper, Introduction to iSCSIURL: http:/7. Brocade Communications Systems, Inc. Advancing Security in Storage Area Networks. White Paper, June 2001.8. Satran J.,et al. iSCSI draft standard, Sep. 2001URL:http:/www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-09.txt9. Bonnie软件下载.URL: http:/