您好,欢迎来到知库网。
搜索
您的当前位置:首页基于ISCSI的用户控制与冗余存储的设计与实现

基于ISCSI的用户控制与冗余存储的设计与实现

来源:知库网
维普资讯 http://www.cqvip.com 第5卷第1期 2006年2月 江南大学学报(自然科学版) Journal of Southern Yangtze University(Natural Science Edition) Vo1.5 NO.1 Feb. 2006 文章编号:1671—7147(2006)01—0062—04 基于ISCSI的用户控制与冗余存储的设计与实现 陈俊明 , 210097) 史 烈¨ , 陈冬霞 310027;2.南京师范大学计算机系,江苏南京 (1.浙江大学计算机科学与技术学院,浙江杭州 摘 要:目前基于ISCSI网络存储的研究,基本局限于协议本身以及与其它协议的性能比较.为了 给用户提供一种安全廉价的网络备份方式,在ISCSI协议的基础上,提出了Initiator端基于Win dows平台的Target端以及Linux平台的ISCSI用户共享存储系统的设计方案及实现框架,分析 了用户控制的要求,给出了可能满足要求的一种具体实现.在实现方案中,将磁盘冗余阵列技术与 ISCSI技术相结合,提高了读写效率,增强了数据的安全性.实践证明,该设计有效可行. 关键词:廉价磁盘冗余阵列;冗余存储;网络存储 中图分类号:TP 3l1.1 文献标识码:A Research and Implement of User Control and Redundant Storage Based on ISCSI CHEN Jun—ming , SHI Lie¨,CHEN Dong—xia。 (1.College of omputCer Science,Zh ̄iang University,Hangzhou 310027。China)2.Department of omputCer Sci・ enee,Nanjing Normal University,Nanjing 210097.China) Abstract:In ISCSl based network storage aspect,current researches limit on protocol itself and performance comparison.In order to provide a cheap and security backup means for users,this paper introduces ISCSI protocol and gives design scheme and implement framework that put the initiator side in Windows and target side in Linux.The demand of user controIis analyzed and a solution is presented.In the scheme,RAID and ISCSI technology are combined to enhance the efficiency and the security of data.It has been proved that it is very efficient. Key words:RAID;redundant storage;network storage 随着计算机技术与网络技术的发展,ISCSI作 为网络存储的一项重要技术,已于2004年4月被 Target端基于Linux平台的用户共享存储系统的 设计方案及实现框架.在该方案中解决了用户访问 IETF作为RFC提出 ¨.文中介绍了ISCSI技术, 提出了Initiator端基于Windows平台,以及 的控制问题,以及如何将ISCSI技术与RAID相结 合实现用户数据的快速读取和冗余备份的问题. 收稿日期:2004—1O一25}修订日期。2005—0l~l8. 作者简介:陈俊明(1980一),男,江苏泰州人,计算机应用专业硕士研究生. *通讯联系人:史烈(1964一),男,浙江杭州人。副研究员,工学博士.硕士生导师.主要从事计算机应用等研究 Email:SL@Insigma.tom.ca 维普资讯 http://www.cqvip.com 第l期 陈俊明等:基于ISCSI的用户控制与冗余存储的设计与实现 63 1 ISCSI简介 ISCSI即SCSI over IP,架构在SCSI标准之 上,SCSI是一种广泛使用的连接存储设备的标准. SCSI采用请求一服务结构,请求端称为Initiator, 服务端称为 I'arget.一个I/O设备称为一个Lu (1ogical Unit),一个Target包含多个LU,Initiator 向一个LU请求服务.一个SCSI传输将客户机一 服务器SCSI协议映射到一个特有的交互连接.虽 然SCSI无论在处理速度还是在并发访问上有较好 的性能,但是SCSI总线长度在25 M以内,不 适宜构造各种网络拓扑结构.NAS(Network attached storage)提供了在网络场合的文件级访问 方法,但该方法却受到带宽消耗的,无法满足 大容量数据存储应用的要求,开放性较差.sAN (Storage Area Network)提供了在网络场合的数据 块级访问方法.SAN中又可分成FC(Fiber Channe1)和IP SAN,FC成本昂贵,不能满足中低 端的应用要求.IP SAN技术可以利用现有的IP网 络减少实施成本,IP协议族成熟的安全机制可以保 证数据的可靠性. ISCSI是一种IP SAN技术,它将成熟的IP技 术和SCSI技术相结合,ISCSI标准中ISCSI Initiator模拟一个SCSI HBA,ISCSI Target模拟 另一个SCSI设备.SCSI命令在Initiator端被封装 进ISCSI PDU,再通过TCP发往Target端;SCSI 命令的回应由Target发回Initiator. 2 用户共享存储系统的构建 基于ISCSI的存储系统跟NAS实现的存储系 统相比,具有性能优势 引.考虑到用户本地存储空 间有限,重要的数据信息需要备份,可以建一个或 多个共享的存储服务器,实现对用户本地存储空间 的扩展,对重要数据进行容灾备份,结构见图1. 图1用户共享存储结构 Fig.1 User share storage structure figure 在用户端实现ISCSI的initiator端,在存储服 务器端实现ISCSI的Target端,用户可以象使用本 地存储器一样方便地使用该存储服务器. 2.1两端框架 考虑到使用Windows系统的普遍性以及用户使 用的方便性,实现方案中Initiator端在Windows平台 上实现+考虑到lLnux作为服务器的性能较好,方案中 Target端在linux平台实现.两端框架见图2. (Windows platform)Target端(Linux platform) 图2用户共享存储系统两端框架 Fig,2 The two sides structure fiugre oJ user share storage system 在Initiator端,需要实现一个SCSI过滤驱动. 在Windows上,用户操作磁盘中文件的命令经磁盘 驱动转为具体的SCSI命令到达Scsi miniport驱动 之前,SCSI过滤驱动截获请求,把请求先封装成 ISCSI的PDU,再通过内核的TDI接口发送到远 端.Target端在linux系统上,Target端有实际用于 存储的多个磁盘块.Target端分为前端和中间层, 前端负责跟Windows端的TDI通信,创建一个接 受线程和发送线程.有请求到来时,接受线程负责 处理接受Initiator发来的数据请求。若ISCSI请求 是SCSI命令类型,那么调用中间层的函数rx— cmnd,并转为SCSI命令进行处理.处理完毕后,调 用中间层函数,将返回的处理结果封装成ISCSI PDU,发送到发送线程的处理队列中,发送线程负 责将ISCSI的处理结果返回给Initiator端.中间层 的Thread负责处理前端传来的请求,将处理后的 结果返回给前端. 2.2用户控制 为真正实现对用户透明,同时又为保证多用户 使用时互不干扰,在方案中事先为每个用户分配一 定量的存储空间.在此空间内,各用户有完全的访 问控制权限.在注册用户时,给每个用户分配用户 名密码,同时根据用户的等级(普通用户或是特权 用户)指定用户可使用存储空间的大小.在Target 端用户可以使用的整个存储空间以硬盘映象文件 的形式存在,当用户以Normal方式登陆时,通过 CHAP认证协议进行认证.参数协商完毕后,login 完成进入FFP阶段.此时在Target端的Session属 维普资讯 http://www.cqvip.com 64 江南大学学报(自然科学版) 第5卷 性中保存该Session的建立用户,该用户能使用总 空间以及剩余使用空间的信息. 2.2.1 用户写操作 当用户进行写操作时,得到 用户写磁盘后通过IP网络传过来的ISCSI Data— Out PDU,解包并得到SCSI CDB.根据CDB中逻 辑块的地址和大小,判断是否超出用户可以使用的 范围.如果超出了此范围,则返回错误状态.SCSI过 滤驱动将失败结果上传给文件系统,在上层体现为 写文件失败.如果未超出范围,则调用文件file结构 的fiIe—f_op--,-write进行实际的写操作.这样可以 方便地把用户操作磁盘的位置传人,而Iinux设计 提供了文件操作接口,文件操作直接通过file— operation中指定的函数执行,屏蔽了不同文件系统 的细节. 2.2.2 用户读操作 当用户进行读操作时, Windows文件系统驱动调用Disk驱动.Disk驱动 把读请求向设备栈下面传递,到达Scsi miniport上 层的过滤驱动时被截获,通过Tdi封包成ISCSI的 协议包传到Target端.Target端根据SCSI CDB逻 辑块的地址及大小.判断用户读操作是否超出范 围.如果读的范围是合法的,则调用file—f—op— read进行实际的读操作. 2.2.3 用户执行对于在SCSI过滤层得到的scSI 命令Read capacity,返回用户告之可以使用空间的大 小,而不是把命令传给linux scsi驱动去执行. 2.3共享文件 各用户间经常有共享文件的要求,在每个用户 登陆到Target端时,除了把用户磁盘的映像文件映 射为本地磁盘外,也为每个用户建立一个专用区. 用户在专用区内放置需要共享的文件,专用区在 Target端磁盘上,也是以硬盘映像文件的形式体 现,在用户访问时映射为本地磁盘.Target端对共 享的文件进行如下处理:如果是共享文件的文件 主,不施加任何,可进行删除或修改等操作.一 个用户只能查看或拷贝另一用户的共享文件,但不 能对另一用户的共享文件进行修改或删除等操作. 通过在SCSI Writel0(Write 6)的处理函数中返回 失败结果的方法,就可以实现该功能。 2.4优先级别 为了兼顾效率和可靠性,整个系统分成两类用 户,一类为高级用户,一类为普通用户.为了让高级用 户享受优质服务,即使高级用户的命令优先得到处 理,在Target端中间层运行着两个守护线程.在创建 守护线程时,设定高低两个优先级.用户登陆后,在用 户的Session中保存用户的等级.当用户请求到来时, 根据存在Session中的用户等级,将用户的请求发送 到相应线程的命令处理队列中.同等级的用户间是按 请求到达的先后次序,以FIFO方式排队到中间层守 护线程的命令处理队列中等侯处理.这样就很好地利 用了linux系统的调度机制,实现了对高级或普通的 用户提供不同质量服务的目的. 2.5冗余存储 RAID(Redundant Array of Inexpensive Disks)是实现磁盘阵列中普遍使用的技术.RAID 将普通硬盘组成一个磁盘阵列,在主机写人数据. RAID控制器把主机要写入的数据分解为多个数据 块,然后并行写入磁盘阵列.主机读取数据时, RAID控制器并行读取分散在磁盘阵列中各个硬盘 上的数据,并把它们重新组合后提供给主机.由于 采用并行读写操作,提高了存储系统的存取效率. 由于RAID 5在并行读写、数据恢复方面功能较 强,方案中选用RAID 5作为磁盘阵列的冗余存储技 术.选择用软件方式实现RAID,软件方式比较方便 灵活.将不同磁盘上的分区组合建立软件RAID,降 低了单个磁盘的损害风险,提高了读写效率. 具体做法是:将MD(Multiple Devices)mount 到指定的目录,将磁盘映像文件创建在该目录下. 以后每次的读写操作都经过MD并写到具体的磁 盘上,对ISCSI Target透明.通过上述方法将RAID 技术和ISCSI框架结合在一起,为用户数据建立了 冗余存储机制,提高了读写效率和数据安全性. 3 实验分析 根据设计方案实现了一个测试系统,测试环境 Initiator端Window 2000 Professional,Target端 Iinux redhat 9.0,CPU Intel Pentinum4 2.8 GHZ。 100 ME Thernet,Seagate ST 136475 LW.用Intel Iometer进行测试,测试结果见表1. 表1测试结果 Tab.I"rest result table 表1中所列的测试是5O Read和5O Write 的情形.结果表明,每次传送较大数据包的吞吐量 较高.对于备份应用时,数据块较大则吞吐量较高, 维普资讯 http://www.cqvip.com 第1期 陈俊明等:基于ISCSI的用户控制与冗余存储的设计与实现 65 而100 Read、75 Read、25 Read、0 Read的情 形与此类似.对于多个用户,总吞吐量总比单个用 于视频点播、文件备份以及分布式数据库等多种大 数据量场合,应用前景相当广阔.文中给出了利用 ISCSI技术具体实现网络存储的方案,该方案解决 了用户访问控制问题及将ISCSI技术与RAID相结 户要高,因为在单位时间内传输数据的量会更大. 由于Intiator、Target处理数据开销以及网络带宽 的,多用户在同时使用时,每个用户都无法达 到单用户使用时的吞吐量.通过对不同优先级用户 进行的测试发现,在用户数较多时,高优先级用户 合以实现快速读取和用户数据的冗余备份的问题. 试验结果表明,可满足多用户使用的要求.在用户 级别划分较粗的情况下,可较好达到用户控制的目 的;在用户级别划分较细的情况下,也可按这种思 路进一步细化.目前关于Target的优化方案已经提 出了很多,如Target端Cache机制 等,而关于 Initiator端的优化研究目前尚报道不多,下一步是 将研究如何在Inflator端设置一个好的缓冲机制, 响应速度明显快于低优先级用户;在用户数很少 时,则差距不显著. 4 结 语 ISCSI作为一种较完善的网络存储技术,可用 使得较小数据块的应用也获得较高的性能. 参考文献: [1]IETF RFC3720。Internet Small Computer Systems Interface(ISCSI)[S]. [2]Yingping Lu,David H C Du.Performance study of iSCSI—based storage subsystemsD].IEEE Communications Magazine, 2003。4l(8):76—82. [3]Lawrence J Lamers.Small computer system interface一2[EB/()L].(1993—10—02)[2002~09—18].http://www.tl0. 0rg/ftp/tlO/drafts/s2/s2一rl01.pdf.20021219.htm1. [4]jerry Lozano Art Baker.The Windows 2000 Device Driver Book。A Guide for Programmers,second Edition[M].New Jersey:Prentice Hall PTR,2000. [5]Jakob Stergaard,Emilio Bueso.The Software—RAID HOWT()[EB/OL].(2Oo4一o6—10)[2004—08—15].http://www. 1inux.org/docs/ldp/howto/Software-RAID-HOWTO.20040610.htm1. [6]李善平。刘文峰。李程远。等.1inux内核2.4版源代码分析大全[M].杭州;浙江大学出版社,2002. [7]Xubin He,Qing Yang。Ming Zhang.A caching strategy to improve ISCSI Performance.27th Annual IEEE Conference on Local Computer Networks[C].Tampa FLUSA:IEEE Computer Society,2002. (责任编辑:彭守敏) (上接第44页) 参考文献: ’ [1]Wayne Wolf.孙玉芳,梁彬,等.嵌入式计算系统设计原理[M].北京:机械工业出版社。2002:i一34. [2]吴升艳.PDA设备的Linux配置及其编译[J].电子设计应用,2003(6) 2O一57. [3]周立功.ARM嵌入式系统基础教授[M].北京:北京航空航天大学出版社,2005:15—48. [4]Greg Haerr.The Nano—x window system[CP/DK].http://www.microwindows.org/microwindows—architecture.htm1. [2ooo—O3—05].Microwindows 0.9O自带文档. [5]罗从难,耿增强,孙玉芳,等.嵌入式系统图形用户界面的设计和实现[R].北京:中国计算机学会,200o一11--03. [6]胡冰松.嵌入式Linux:建立企业产品研发核心技术的机遇与挑战[DB/OL].[2002一oi一15].http://www.wanfangdata. tom.cn/htm. [7]崔龙.基于嵌入式Linux的数字系统应用平[DB/OL].[2oo3一o5—16].http;//www.wanfangdata.eom.cn/htm. [8]冯永红,朱善君.裁减Linux技术分析[R].北京:中国计算机学会,2000--11--03. . (责任编辑:杨勇,邢宝妹) 

因篇幅问题不能全部显示,请点此查看更多更全内容

热门图文

Copyright © 2019-2025 zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务