(计算机应用技术专业论文)iscsi协议研究及其性能优化.pdf_第1页
(计算机应用技术专业论文)iscsi协议研究及其性能优化.pdf_第2页
(计算机应用技术专业论文)iscsi协议研究及其性能优化.pdf_第3页
(计算机应用技术专业论文)iscsi协议研究及其性能优化.pdf_第4页
(计算机应用技术专业论文)iscsi协议研究及其性能优化.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南民族大学硕士学位论文 i 摘 要 本文对国内外网络存储技术的发展、研究及其应用进行了全面的介绍。对 das,nas,san 等几种主要网络存储技术进行了阐述,对当前国内外非常关注 的 iscsi 网络存储技术的应用进行了详细的分析,包括 iscsi 的概念,iscsi 体系结构,iscsi 协议的组成,iscsi 包的顺序,iscsi 的工作流程及其运行机 制。 iscsi 网络存储技术标准自 2003 年 2 月 ietf 宣布正式通过后,以其基于 当前 ip 网络平台,获得传播信息方便,数据存储管理不再受到距离限制,廉价 易用等技术优势,迅速地得到应用和推广。对大型资源中心建设,数据中心建 设及海量存储等方面起到了重要地技术支撑作用,促进了信息化建设,更加推 动了网络技术的应用。 iscsi 网络存储技术也存在着不足,本文针对 iscsi 通信时,会有很大比 例的小数据包在网络上传输造成网络性能降低,不能有效地利用网络带宽,展 开了对 iscsi 性能优化策略的研究。在基于聚合读写的思想考虑下,构建一个 高效的 ram cache 缓存结构(简称 rc) ,通过在系统非分页池开辟一段空间, 然后利用一个日志磁盘组成一个双层结构的 rc 缓存,利用 rc 缓存结构将大量 小数据包聚合成一个大数据包,集合到系统所开辟的非分页池中。然后利用日 志文件系统可以快速读写文件的特点,将存放在 ram 中的数据快速写入日志磁 盘中,组合生成一个大的日志文件,最后将其一次性发送到远程存储系统中。 这样就可以充分利用网络带宽资源,提高 iscsi 网络存储的效率。同时,对引 入 rc 缓存结构的 iscsi 系统这一方法的实现做了详细的分析和阐述。 最后,建立了实验测试平台,利用 iometer 和 postmark 测试工具在千兆网 环境下对引入 rc 缓存结构的 iscsi 系统优化方案(rc)进行了测试,对结果进 行了分析。 结果表明引入 rc 结构 iscsi 存储系统在吞吐量和响应时间方面性能 有一定的提高。 关键词关键词:iscsi;网络存储;两级缓存技术;日志磁盘;性能优化 iscsi 协议研究及其性能优化 ii abstract this paper mainly introduces the development, research and application of network storage technology. the paper expounds several major network storage technologies, such as das nas and san; the application of iscsi network storage technology has been analyzed thoroughly, including its conception and architecture, iscsi protocols construction, regular succession, the work flow and its operating mechanism. ever since its emergence in 2003, iscsi has developed and spread quickly for the advantage of being based on the current ip network platform, exchanging information easily, data storage management being no longer restricted by distance, and its low price and efficiency. as an essential technology, iscsi has made great contribution to areas such as the construction of large-scale recourse center, data center and mass memory, stimulated information construction and improved application of network technology. as the inadequacies of iscsi, it focuses on the slow network performance it causes with a high proportion of small data packets transmitting on the network, and discusses strategies to improve iscsis performance. to solve this problem by using aggregated read/write technology, we can build an efficient ram cache structure (rc). first, create some room in system non-paged pool, and use a log disk to form a two-level hierarchical cache, which converts small requests into large ones and into the non-paged pool created earlier, then, we make use of the characteristics of the log file system which can fast read and write files and put the data which exists in ram into a log disk quickly and combine them to a large log file. finally, we sent it to a remote storage system by one-time. in this way, the network bandwidth resource can be made full use of, and the efficiency of iscsi network storage can be improved. meanwhile, the paper also gives a thorough analysis and explanation to that approach. at last, a experimental test platform is set up. it uses iometer and postmark 中南民族大学硕士学位论文 iii testing tools to testify iscsi system optimization program which brings in rc cache architecture under gigabit network environment, and analyses the result. it turns out that after bringing in rc architecture, iscsi memory system has been improved to some degree in both throughput and response time. keywords:iscsi;network storage;two level hierarchical cache;log disk; performance optimization 中南民族大学中南民族大学 学位论文原创性声明学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文 被查阅和借阅。本人授权中南民族大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存 和汇编本学位论文。 本学位论文属于 1、保密,在_年解密后适用本授权书。 2、不保密。 (请在以上相应方框内打“” ) 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 中南民族大学硕士学位论文 1 第1章 绪 论 1.1 研究背景 随着网络技术和信息技术的发展,信息化建设已经受到各部门各行业的高 度重视,越来越多的信息被数字化。电子商务、数字图书馆、视频点播等应用 都已深入到了人们学习工作生活的方方面面。数据的保存,存储资源的供享, 数据安全及管理,对网络存储系统提出了很高的要求。因此提高网络存储系统 性能的应用研究一直是人们研究的热点。 scsi (small comupter system interface)技术在在线存储早期得到了大范 围应用,它能够使主机对各种各样的外部设备进行块(block)级别的 i/o 操作。 但与此同时,由于受距离,带宽以及支持设备等各种各样条件的限制,传统的 主机和外部设备之间 scsi 并行连接受到制约。随着 internet 技术的飞速发展, 网络应用的普及,国内外对网络存储技术等应用研究也在不断的深入,相继研 究出 das(direct attached storage,直接连接存储) ,nas(network attached storage,附网存储)和 san(storage area network,存储区域网络)技术及相 关产品。 2003 年 2 月 ietf(internet engineering task force)宣布正式通过 iscsi ( internet scsi )标准。iscsi 是一种基于 ip 网络/ethernet 的高性能但价格低 廉的新方法, 它通过定义在 ip 网络上传送由 tcp 指定的 scsi 命令进行数据存 储,实现了 tcp/ip 网络的块级存储访问。它使得信息的存储,传播更加高效, 同时大大延伸了数据管理的距离,人们称之为 ip san。同时由于 ip 网络上有 大量的共享资源可以加以利用,iscsi 为企业搭建了一个更为快速更为经济的 网络存储平台。正因如此,iscsi 网络存储技术在全世界迅速的得到推广和普 及。 das 存储技术一度非常流行,它是通过 das 存储器利用一个通用服务器 连接在网络上,通过传统的 i/o 总线使服务器与存储器进行通信。它的缺点在 于服务器要处理客户机访问的数据,因此大量占用服务器 cpu,内存和 i/o 总 线等系统资源,造成严重的 i/o 瓶颈,另外这种结构存储容量扩充困难,目前 iscsi 协议研究及其性能优化 2 das 网络存储技术产品已经较少使用,逐步退出了市场。 nas 是另外一种应用广泛的存储技术,它的特点是将网络接口与存储设备 捆绑在一起, 成为一种以文件方式的技术在网络上传输数据的存储服务器。 nas 的优点是安装便捷,易于管理,协议独立性好,成本低廉,同时它还是一款即 插即用的设备。其缺点在于没有解决好在使用网络备份和恢复时将存储事务由 并行 scsi 连接转移到网络上的带宽消耗问题。 因为其受到带宽消耗的限制, 根 本无法完成大容量的存储应用,很难满足日后系统进一步升级的要求。 san 提供了一种简便的方法与现有 lan(logical area network)进行连接。 san 的通信传输采用数据传输协议中的 fiber channel, 所以通常称为 fc-san。 san 使得数据访问不会影响到其网络性能,与此同时还允许用户独立的增加它 们的存储容量。因此,它具有很高的扩张性,同时也易于管理,具备较强的容 错能力。但是,san 通用性不高,系统安装与升级方面较为繁琐,且系统成本 也相对较高 1。 iscsi 技术的出现将 nas 和 san 的优点结合在了一起。 iscsi 技术基于 ip 协议的技术标准,实现了 scsi 和 tcp/ip 协议的连接。网络环境为局域网的用 户在较少投资的前提下,就可以方便,快捷的对数据和信息进行交互式传输和 管理。同时,iscsi 还拥有 san 集中开放式大容量存储的优点。所以,iscsi 自标准发布之日开始便受到市场广泛的关注。表 1.1 是 nas、san 及 iscsi 的 存储性能比较。 表 1.1 san nas iscsi 存储性能比较 比较项目 san 存储 nas 存储 iscsi 存储 接口技术 光纤通道 ip ip 成本 高 低 中 性能 高 低 中 管理 集中 分散 集中 存取方式 block file block 传统介质 光纤通道 双绞线 双绞线 针对市场 大中企业 中小企业 中小企业 中南民族大学硕士学位论文 3 1.2 研究意义 iscsi技术以广泛部署的以太网为基础平台, 在构建ip san, 整合原有的fc san与nas,构建异构的存储网络方面有着其它存储方案无法比拟的优势。海 量数据存储、高速i/0通道和高效的数据共享是网络存储必须具备的三个基本要 素, 提供高效可靠的数据共享机制是网络存储系统发展的必然趋势和内在要求, 千兆以太网的发展为iscsi应用提供了充分的带宽保证, 使得研究的焦点从带宽 获取转移至时延、 可靠性和cpu的处理能力等问题上。 iscsi在继承tcp/ip廉价、 简单易用等特性的同时, 对于iscsi数据经过协议栈时, 需要进行多次内存拷贝, 差错恢复和流量控制的算法作为软件进程在主机系统中运行,这些都占用了大 量的cpu资源,对时延,吞吐量等性能造成了较大影响是不可忽视的2。如何 减小iscsi协议对计算资源的占用以及提高iscsi的效率已受到人们的高度重 视。 iscsi协议下的ip san中,cache机制的引入是提高iscsi san效率的一种 有效途径。研究表明,cache机制的引入可以大幅提高iscsi的吞吐能力和效率。 因此进一步研究cache机制在iscsi san中的应用,无论在理论上还是在实际应 用中都具有重要的价值。 1.3 主要工作 阐述和分析了网络存储技术,特别是 iscsi 协议以及影响 iscsi 性能的因 素。 本课题重点在iscsi研究的基础上进一步研究cache机制在iscsi中的应用, 通过分析在 iscsi 应用过程中,大量小数据包进行数据传输而导致网络阻塞, 降低网络传输效率这一情况,根据聚合读写思想,提出一种利用 ram 和日志 磁盘为缓冲区的双层 cache 机制来改善和提高 iscsi 性能的方案。并对这种方 案进行了详细研究,分析了该方案的优点与不足。最后在一个以 windows xp 为发送端,linux 为目标端的实验平台上实现了本文提出的 cache 机制下的 iscsi 性能优化,并分别使用 iometer 和 postmark 统测试工具对其进行了性能 的对比测试与数据分析。从测试结果可见,该方案对 iscsi 性能优化取得了一 定得效果。 iscsi 协议研究及其性能优化 4 1.4 论文结构 绪论之后, 在第二章, 本文对 iscsi 技术做了详细的介绍, 着重分析了 iscsi 的概念体系结构,iscsi 协议的组成,iscsi 的工作流程和运行机制等等,并分 析了 iscsi 协议的优势和不足;第三章,着重介绍了 iscsi 协议在 linux 和 windows 两大操作系统平台下的实现,为后面验证 iscsi 性能优化实验做好理 论准备。在第四章,通过前面分析 iscsi 的优势和不足,有针对性的提出了一 种基于 rc 缓存技术的优化 iscsi 性能策略, 对其具体实现和如何在 iscsi 体系 结构上部署实施做了详细的阐述。第五章建立实验平台,采用 postmark 和 iometer 工具进行了测试,对得到的数据进行了分析,取得了课题研究的一些结 论。最后总结了本文完成的工作,并对下一步工作进行了展望。 中南民族大学硕士学位论文 5 第2章 iscsi 技术介绍 2.1 iscsi 概念 scsi (small computer system interface)全名小型计算机系统接口3,是 一种与设备无关的i/o子系统,具有高性能的特点。而iscsi技术实际上就是 internet scsi,是一种新的用来服务块级(blockl evel)数据传送的一种协 议,该协议基于ip网络(主要是ethernet) ,通过ip网络传输数据块,包括scsi 命令,scsi数据包等。iscsi将scsi命令数据块通过tcp/ip协议层进行传输,就 是说用原有的以太网传输存储scsi命令和数据,从而使数据可以方便地进行远 程/异地访问。 采用iscsi服务器与存储子系统的i/o路径就可从局限性强的scsi 总线或造价很高的光纤通道,移植到不受传输距离及scsi设备数目限制的以太 网上4。 2.2 iscsi 体系结构 iscsi协议是scsi远程过程唤醒模型在tcp协议上的映射。操作系统在目标 端接受到发送端请求的时候,将该请求转换成若干条scsi命令,然后iscsi层将 其接受到的scsi命令封装到含有iscsi头部标识的数据包内。tcp 层、ip 层和 link层逐层分别将数据包进行各自层相应的封装,然后发送到网络中。而目标端 这边则逐层解包,进行与上述相反的操作,从而完成了从发送端到目标端的远程 唤醒,对于用户来说全部过程都是透明的5。如图2.1所示。 发送端定义的iscsi传输方向,输出是指从发送端到目标端的传输,输入是 指从目标端到发送端的传输。因为iscsi 与scsi 一样都是面向数据结构的, iscsi协议与scsi结构模型完全兼容,所以对于网络另一边的发送端设备来说, iscsi磁盘是可见的6。 iscsi 协议研究及其性能优化 6 图 2.1 iscsi 协议体系结构 发送端和目标端的通信称之为会话,一次会话可能包含一个或者多个tcp连接,发送端 和目标端之间也可以有多个会话。scsi命令、控制信息、参数和数据都是利用iscsi协议数 据单元(protocol data unit,pdu)通过tcp连接进行传输的。 iscsi协议通过登录建立tcp连接,其中登录起到认证、授权和参数协商的作 用。目标端在一些通用端口上监听连接请求,而发送端通过向某一通用端口发送 登录信号开始进行登陆, 通过认证, 目标端将接收登录信号的响应发送给发送端, 通过登录建立会话同时分配会话标示符。接着,双方通过协商确定各种参数后, 发送端将scsi命令和数据发送到目标端的逻辑设备,通过iscs消息这些命令在 已建立的iscsi连接上传递。由于连接具有从属性和唯一性,iscsi协议规定必须 由传递scsi命令的tcp连接来传递该命令所需要的参数和数据7。 2.3 iscsi 协议的组成协议的组成 iscsi 协议由 iscsi 的命名和寻址,iscsi 会话,iscsi 容错,iscsi 安全这 四部分组成。 2.3.1 iscsi 的命名与寻址 发送端和目标端需要有一个名字来表示他们的身份。而且,对 iscsi 资源 的命名可以使 iscsi 存储资源的管理独立与其 ip 地址和物理地址之外。作为主 中南民族大学硕士学位论文 7 要对象,iscsi 设备名所起的作用是用于发送端和目标端对对方身份的验证。 iscsi 设备名因为其要用于 internet 而被要求设计成全球唯一。每个 iscsi 名字 必须是一个不得超过 223 个字节的 utf-8(universal transformation format, utf) 编码的统一字符编码标准字符串。 目前, iscsi 提供了两种类型命名格式: (1)iqn. iscsi 资格命名 在该命名方式下,iscsi 设备厂商都拥有属于自己的域名。命名时,必须 使用该 iscsi 设备厂商的域名,同时还要获得该域名的日期,用于保证该 iscsi 设备名在全球范围永远唯一。 iqn 格式的命名结构是: iqn.年-月域名倒装:自定义字符串。其中, “” 内的内容由 iscsi 设备厂商自定义,可用来标识产品类型、序列号以及软件版 本号等信息。例如: iqn. 2001-06. com. example iqn. 2005-08. net. forinstance: storage. diskarray-sn-8888 (2)eu.i ieee eui-64 格式 ieee 注册机构( ieee registration authority)在世界范围内提供分配全球 唯一标识符eui的服务。凡是在 ieee 注册机构登记的 iscsi 设备厂商可以使 用 eui-64 格式的全球唯一名字命名自己的产品。 eui 格式的命名结构是: eu.i 16 进制的 eui-64 标识符。例如: eu.i 02002345b428765e 2.3.2 iscsi 会话 iscsi 会话分为登录和 scsi 完整功能两个阶段。同时,iscsi 协议定义了 两种类型的会话:第一种为发现会话,发送端利用该会话来发现网络中的可以 使用的目标端,同时获取该目标端的 iscsi 设备名,任何拥有目标端的系统都 必须支持发现会话; 第二种为普通对话, 该对话用于登录和 scsi 完整功能阶段; 在登陆阶段,其任务是通过登录请求和登录应答为 iscsi 会话建立 tcp 连接, 然后发送端和目标端对彼此进行身份认证, 协商会话参数, 标记属于会话的 tcp 连接。登录请求和登录应答在登陆阶段是具有排他性的。在任意一个 tcp 连接 过程中,登录必须在 tcp 连接建立之后立即执行,此登录阶段断开连接之前其 后续的登录是不允许发生的除非收到登录请求,否则目标端将会断开任何在登 iscsi 协议研究及其性能优化 8 录阶段之前收到的 pdu 所在的 tcp 连接。一旦登录阶段开始,目标端将会在 接收到任何非登录请求时发送一个登录拒绝,同时断开连接。同样,如果发送 端收到任何非登录应答,它也必须立即断开连接。 一旦认证成功,操作参数也设置完成,会话将会由登录阶段转变到 scsi 完 整功能阶段,发送端将会发送 scsi 命令。在一般的 scsi 完整功能阶段,scsi 命令和数据将会被发送端封装到 iscsi pdu 中,然后通过 iscsi 会话连接将该 pdu 传输到目标端的不同逻辑单元(lus,logical units) 。如果通过某一 tcp 连 接发出的 iscsi 请求, 在该 tcp 连接没有断开的情况下, 其对应的 iscsi 应答和 pdu 必须通过该 tcp 连接进行传输。这样做是为了使特定的读写命令的执行不 用为了监视多个 tcp 连接而增加额外的开销来检查相应的请求是否完成7。 发送端在事务处理完之后使用注销命令来完成本次会话。注销命令用来传 递结束会话的原因,例如发送信息告知对方某一 tcp 连接发生错误需要关闭。 2.3.3 iscsi 容错 用 wan 为代表的太网进行数据传输时产生错误的概率很高。考虑到,任 意一个 tcp 连接都有可能在数据传输的任何时候出错, 所有被意外停止的数传 都必须允许通过会话的其他 tcp 连接继续执行;tcp 层不负责检查 iscsi pdu 的正确性, iscsi 层必须对 iscsi pdu 的正确性进行检查, 所以 iscsi 必须 具有有效的容错功能。一旦检测出有错而被丢弃的 iscsi pdu, iscsi 层则必 须有能力恢复这些被丢弃的 pdu。为了能达到以下效果: (1)决定支持容错到什么程度。 (2)何时使用容错以及通过什么机制来取得所需功效。 iscsi 的实际应用必须具有充分的灵活性。 iscsi 有三个容错级别, 分别为: 第 0 级会话恢复。会话恢复需要断开所属的所有 tcp 连接,中断所有正在 执行的事务,然后重新建立会话。会话恢复是由 iscsi 的上层来执行。需要强 调的是具体的容错操作只能在会话的 scsi 完整功能阶段进行。 第 1 级校验错恢复。除同时要求具有第 0 级的能力外,还要求具有校验错 恢复包含命令恢复解决 pdu 丢失、pdu 校验错以及序列接收超时等问题 和连接内恢复解决 iscsi 应答长时间没有得到确认或丢失等问题 等两种 情况的能力。 中南民族大学硕士学位论文 9 第 2 级连接恢复。除同时要求具有第 1 级的能力外,还要能解决连接恢复 解决会话中的一个或多个 tcp 连接失败或丢失的问题。 会话恢复是最基本的容 错机制,所有的 iscsi 错误都可以通过它来解决。因此,支持会话恢复是所有 iscsi 设备和应用的基本要求。 2.3.4 iscsi 安全 本地的存储系统一般都与以太网隔离,它们直接连接到服务器或者直接接 入到专用的存储网络上,因此不必考虑其安全问题。但是由于 iscsi 作为在以 太网上运行的协议,必须提供相应的安全措施,用以防止例如消息插入、删除、 篡改、重用、身份伪装之类的主动攻击以及窃听之类的被动攻击。为了适应以 太网这种安全性较差的环境,iscsi 拥有两种相互独立的安全机制: (1)ipsec 机制 ipsec 机制是通过使用 esp(executive and scheduling program)、hmac (hashing message authentication) 、 aes (advanced encrytion standard) 或 3des (trile data encrytion algorithm)等现代密码学方法在 ip 层为 iscs 通信两端的 iscsi pdu 的传输提供认证、机密性和数据完整性保护。 (2)带内认证机制 带内认证是指在会话的登录阶段发送端和目标端进行彼此的身份认证。在 登陆阶段,发送端不是必须目标端进行认证,但目标端则必须对发送端进行认 证,这样做是为了防止通过非法身份登录存储资源。带内认证机制所使用的认 证方法有:krb5、spkm1、spkm2、srp 和 chap 等8。 2.4 iscsi 包的顺序 iscsi协议用命令编号来记录命令、状态与数据的顺序,每个命令编号都是 一个无符号的32位的计数器,命令编号是在整个会话范围内进行的。在命令传 递的过程中,分配给它的命令序列号是不变的。当发送端和目标端之间有命令、 状态与数据的交换时,这些命令编号在它们之间传递。iscsi协议数据单元中的 命令序列号(cmdsn)携带从发送端到目标端scsi层的命令,目标设备按照命令 序列号的顺序把命令从iscsi层传送到scsi层, 命令序列号在目标端的scsi层接 收到命令后立即失效。此外,命令序列号还可以对命令进行流量控制。iscsi iscsi 协议研究及其性能优化 10 编号在iscsi协议数据单元中用状态序列号(statsn)表示从目标端向发送端发 送的响应。状态序列号是面向每个连接的,在网络通信出现错误的时候状态序 列号可用于检测和恢复丢失的状态信息。同时发送端还提供期望状态序列号 (exstatsn)来确认状态,在发送的状态信息被期望状态序列号确认后目标端 可能丢弃所维持的状态信息。如果出现不同的状态序列号和期望状态序列号, 则说明连接出现了错误。 iscsi最基本的错误恢复机制是保持一个足够的状态和数据信息来恢复一 个错误的处理。iscsi的错误检测和恢复措施有三点: (1)当命令丢失的时候能从主机内存中取出数据重新传输; (2)通过iscsi和scsi相结合能保存足够的信息使得协议数据单元能够得 到重建; (3)目标端能将已经关闭的连接传送但又未被确认的数据进行恢复,重新 读取服务器的数据。 2.5 iscsi 工作流程 iscsi 协议的运行实质上就是一个在网络上进行封装数据包和解开数据包 的过程,在网络的发送端,数据包被封装成包含 ip 头、iscsi 识别包和 scsi 数据三部分内容,数据传输到网络接收端时,依次按顺序解开这三部分内容9。 详细步骤是:首先由一块 scsi 适配器卡在 iscs 系统中发出一条 scsi 命令, 这条命令被封装到第三层的信息包中并发送。 接受方从信息包中抽取该条 scsi 命令进行执行,然后将要返回的 scsi 命令和数据全部封装到 ip 信息包中,并 将它们发送回发送方。然后系统抽取数据或命令,并把它们传回 scsi 子系统。 所有这一切对于终端用户完全是透明的,其步骤不需要用户进行干预。iscsi 的工作流程图如图 2.2 所示。 中南民族大学硕士学位论文 11 图 2.2 iscsi 工作流程图 2.6 iscsi 的运行机制 在传统的服务器/存储器模式下,数据无法高效的在复杂的网络结构上传 输,所以 iscsi 采用了一种以包为基本传送单位进行传送的全新模式。iscsi 协议是建立在 tcp 层上的,这样就可以利用 tcp 的流量控制、错误处理、重 发机制等优点为 iscsi 提供一个可靠的传输平台,从而避免了如 ethernet 受到 传输距离的限制,而 ip 层又无法保证包有序、可靠的到达等种种缺陷。 2.6.1 流量控制 在网络传输延迟较大的网络中, 由于 iscsi 是通过 tcp/ip 协议进行网络数 据传送的,所以 iscsi 采用其相同的流量控制机制进行流量控制,与此同时, 发送端可以了解实时网络的拥塞情况,并根据其具体情况相应的动态的调整自 己的发送速率,因此 iscsi 的流量控制机制具有对网络很好的适应性 10。 iscsi 协议研究及其性能优化 12 2.6.2 错误处理 一般来说,假设 scsi 体系结构运行环境相对单纯,属于一种无错的环境。 而 iscsi 由于是在网络中运行,所以具有一定的不可靠性。在这样的环境中, 出现数据传输错误是一件不可预料的事情。iscsi 应该拥有自己的数据恢复边 界, 因为scsi数据要满足在潜在有损耗的环境下传输的要求是iscsi一大挑战。 ietf 建议,序列应该是 iscsi 错误恢复的最小单位,整个帧序列将会在一个单 独的帧被破坏时重发。如果跟踪而且重发一个帧会需要大量的逻辑运算,因此 在简单重发整个帧序列效率更高。 2.6.3 重发机制 众所周知,tcp/ip 协议拥有自适应超时重发算法,具备了根据网络实时情 况进行动态调整的能力,而 iscsi 继承了这一特性11。当一个报文段发出时, 自适应超时重发算法就会记录相应的时间。同时,该算法也会记录下收到该报 文段的确认信息的时间。这两个时间之间的时间差我们称之为 rtt(round-tri time 往返延时) 。每当我们从发送端向目标端发送一个报文的同时,就会有一 个定时器启动,只要定时器超过规定的时间还没有确认该报文是否到达,该报 文就会被重新发送一次。如果在规定时间之前得到了响应的确认,系统就会记 录下新的 rtt,然后将所有报文段的 rtt 样本通过 karn 算法计算出一个新的 rtt。 2.7 iscsi 命名与响应 下面我们对与本文研究所涉及到的命令做一些简要的介绍。 0 x01 scsi命令0 x01 scsi命令 这个pdu包装着scsicd 。这个pdu可以包含所有与scsi命令相联系的数据。 其头部包含以下控制信息: (1)启动器任务标志; (2)期待数据传输长度 ,指在当前scsi操作中要被传输的数据字节数; (3)cmdsn,使用它可以使单个会话中由多个tcp连接发出的pdu被有序化; (4)expstatsn,用来探测丢失的状态。 中南民族大学硕士学位论文 13 0 x21 scsi(命令)响应 0 x21 scsi(命令)响应 该pdu用来汇报scsi命令的scsi状态。头部包含以下控制信息: (1)状态/响 应。scsi状态域用来汇报命令的scsi状态(sam-2) ,响应域 用来汇报sam类型的服务响应; (2)检索响应数据。如果scsi命令失败,pdu将包含检测数据。 0 x05 scsi数据 0 x05 scsi数据 该pdu用来传输从启动器到目标器 (写) 或从目标器到启动器 (读) 的数据。 pdu声明了有效的数据长度,目标器传送标志和缓冲区,这些都是由接受者提供 的。 (1)最后一位:对输出(写)数据来说,这位代表此pdu是数据的最后一个 pdu,或回答r2t准备传送)的数据序列的最后一个pdu,对输入(读)数据来 说,这位为1代表是与命令相关的最后一个pdu。 (2)数据序列号:对输入(读)数据pdu来说,它是由启动器任务标志所标 识的命令所用数据传输中的pdu编号。对输出(写)数据pdu来说,它是当前输 出序列中该pdu的编号。该输出序列由启动器任务标志,或由启动器任务标志及 逻辑单元号对于r2t数据)所标识。 (3)缓冲区:数据传输完成后,pdu数据应存放的地址。 oxo2 scsi任务管理oxo2 scsi任务管理 pdu给启动器提供一种方式来控制一个或多个scsi任务管理的执行。 对以上 这些功能来说,scsi任务管理响应返回时均用启动器任务标志来表示它对哪一 个操作响应。 ox22 scsi任务管理响应ox22 scsi任务管理响应 scsi 任务管理命令完成后,该pdu给启动器返回一个响应。响应可能包含下 列值: (1)0值:功能完成; (2)1值:任务不在任务集中; (3)255值:功能被拒绝。 ox5o r2t(准备传送)ox5o r2t(准备传送) 启动器向目标器发送scsi写命令时,目标器准备好后就可向启动器发r2t iscsi 协议研究及其性能优化 14 pdu。若有大量数据要传,目标器可发多个r2t。r2t请求有一个任务传送标志, 用来标识目标器收到的是嘟个数据pdu。 oxo4 文本命令oxo4 文本命令 启动器用文本命令来通知目标器它的容盘或请求特殊操作。 文本是启 动器 向目标器发送的以utf-8unicod。编码的的一系列key=value或key=list对。字 符串用纯文本形式,数字和二进制值用8进制或16进制表示。 ox24 文本响应ox24 文本响应 它是目标器发往启动器的对文本命令的响应。格式与文本命令一致。 oxo3 登录命令oxo3 登录命令 当启动器和目标器之间已建好tcp连接后,登录命令被使用以鉴别身份,协 调会话的参数,打开安全机制,并标识属于会话的连接。其含义如下: (1)连接id: 会话中该连接的唯一id; (2)启动器会话id: 有启动器定义的id,会话中所有连接的这个id是相同 的; (3)登录参数:由启动器给出,以通知目标器启动器是否使用目标器的资 源并设定一些安全参数。登录过程允许分类协商,以保证端到端的数据完整性, 循环检验和的使用,以及允许不算连接层的完整性检查。鉴定过程包括启动器 和目标器双向的鉴定。 0 x23 登录响应0 x23 登录响应 登录响应意味着登录过程的结束。在安全机制建好后,登录响应被鉴别。 (1)有效/最低版本:启动器和目标器都支持的版本。若目标器不知刺激启 动器的版本,将拒绝登录并给出它支持的最低的iscsi版本。 (2)状态集:登录响应用状态集返回登录请求的状态,如下所示: 1.成功; 2.继续启动器要继续协商以完成请求; 3.启动器错误; 4.目标器错误:目标器不能满足登录请求的要求。 0 x06 注销命令0 x06 注销命令 用来控制连接的关闭。 启动器用它从会话中移去一个连接或关闭整个会话。 中南民族大学硕士学位论文 15 0 x26 注销响应 0 x26 注销响应 由目标器发出,表示连接失败的清除工作已完成。 0 x20 nop-in0 x20 nop-in 当p比特置位时,nop-out的响应是nop-in。目标器响应时要在nopin中使用 与nop-out相同的启动器任务标志,并复制与目标器配置参数相同的ping数据。 ox3f 拒绝ox3f 拒绝 如果目标器收到一个格式错误的iscsi消息或错误摘要, 将拒绝执行命令并 返回出错消息的头部作为响应数据。 2.8 iscsi 的优势与不足 2.8.1 iscsi 的优势 首先 iscsi 有多种拓扑结构供 it 人员选择。 它可以部署 das 和 san 存储 系统。 同时, 它还可以通过使用以太网建立和扩展 nas。 iscsi 还可以通过 ipsec 和防火墙去提高存储系统中数据的安全性,同时也可以被设计成聚合的存储网 络。它可以再公共网络上以虚拟专用网的形式出现,也可以成为小型企业的内 部网络存储解决方案。 其次,iscsi 将存储网络的距离进一步延伸。由于受到光纤通道的限制, 过去的存储网络一直无法实现远距离的存储器数据共享,但 iscsi 不一样,它 是建立在 ip 网络基础之上的, 因此它可以轻易地将网络存储距离扩展到局域网 lan 的区域之外,包括城域网和广域络(man 和 wan)。iscsi 通过它自身 的例如灵活应用,较低的实施成本等特性大大降低了存储系统的复杂性。 最后,最关键的一点是,由于是建立在 tcp/ip 基础上,iscsi 提供了一种 廉价的网络存储方案,使得网络存储技术在中小企业得到普及。 2.8.2 iscsi 的不足 因为在 tcp/ip 协议下,以太网上有很多小数据包在传输,由于 iscsi 是运 行在 tcp/ip 基础上的,因此在 iscsi 协议下传输数据不能充分利用网络带宽。 同时,iscsi 是在一个不受信任的广域网中使用,因此数据的安全性,一致性 问题也不同程度的影响着 iscsi 的普及。 iscsi 协议研究及其性能优化 16 2.9 本章小结 本章主要介绍了 iscsi 的概念,体系结构,iscsi 协议的组成,iscsi 的运 行机制及 iscsi 协议的相关命令,然后分析了 iscsi 的优点和缺点。 中南民族大学硕士学位论文 17 第3章 iscsi 协议的实现 iscsi 实现的方式主要有三种1213,如图 3.1 所示。 (1)纯软件方式。在纯软件方式中,iscsi 系统采用标准的以太网卡,这 种方式的好处是大幅降低了硬件成本。但是由此造成的结果是大量数据交于主 机 cpu 处理, 极大的增加了主机运行的负担, 大大降低了整个主机体系的性能, 使之成为系统性能提升的瓶颈。 (2)智能 iscsi 网卡实现方式。在这种方式下,将采用一种特定的智能网 卡,其作用可以处理 tcp/ip 协议栈的功能。这样,就可以减轻主机运行负担, 一定程度上提高主机体统的整体性能。 (3)iscsi 主机总线适配器(host bus adater,hba)卡实现方式。此方 式将使用一个 hba, hba 可以处理包括 iscsi 层和 tcp/ip 协议栈的诸多功能, 这种方式可以应用于各种操作平台, 相对于以上两种方式, 该方式对主机的cpu 请求最少,可以对整个主机系统性能有很大的提高。 图 3.1 iscsi 实现的三种方式 scsi port to os iscsi tcp/ip adapter driver scsi port to os iscsi scsi port to os ethernet media interface tcp/ip adapter driver ethernet media interface iscsi tcp/ip adapter driver ethernet media interface host processing adapter card software iscsi software iscsi with tcp off-load hardware iscsi with tcp off-load iscsi 协议研究及其性能优化 18 3.1 iscsi 在 linux 下的实现 下面介绍 iscsi 的实现方式,程序分为启动器端和目标器器端两部分,其 中启动器端在 linux 操作系统下是作为核心态的驱动程序加载到操作系统的。 3.1.1 iscsi 在在 linux 下的驱动程序下的驱动程序 在 linux 系统里, 设备驱动程序根据各种不同类型的设备提供了一个统一的 接口,它把设备映射成一个特殊的设备文件,而用户则通过操作这个设备文件 来对设备进行控制。而设备的具体实现细节对用户来说将是透明的。linux 系 统中有三种设备类型14。 (1)块设备接口。块设备接口具备随机存取功能,它只支持块级别的输入/ 输出操作。在内核地址空间内,它支持所有任意长度的输入/输出操作,且这些 操作可以再内核地址空间中的任何位置。 (2)字符设备接口。字符设备接口的输入/输出是不经过系统的快速缓存的 而是自己负责管理自己的缓冲区结构。该接口支持面向字符的输入/输出操作但 只支持在输入/输出请求的长度是设备要求的基本块长度的倍数基础上的顺序 存取的功能。 (3)网络接口。网络接口不是面向流的设备,所以网络接口不能像/dev/tty1 那样简单的映射到文件系统的结点上,而是给它们分配一个独立的名字(如 eth0),内核不再调用 read、write,而是调用用数据报传送相关的函数。 为了标识一个设备,我们设置了一个主设备号和一个次设备号。块设备表 或字符设备表中的设备表项的索引由唯一表示设备类型的主设备号完成。而次 设备号主要用于在众多可能用到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论