论文部分内容阅读
随着以电子商务为代表的网络服务的飞速发展,人们对信息量的需求呈爆炸式的增长。这使得网络数据的高速存取与共享显得尤为重要,并逐步成为信息高速公路中亟待解决的关键问题。iSCSI是一种新兴的网络存储技术,将IP网络技术集成到存储I/O之中,融合了网络和I/O的特性,在构建异构的存储网络方面有着其它数据访问协议所无法比拟的优势。 iSCSI同Fabric Channel(光纤隧道)等其它类型的网络存储技术相比,其传输效率较低,CPU占用率较高。另一方面,iSCSI协议的实现往往与具体应用紧密结合在一起,其重用性与移植性较差。因此,设计实现一个高效、可重用的协议原型系统对iSCSI的应用具有重要的意义。 本文首先研究了iSCSI网络存储体系结构,从会话管理、命名与寻址、协议数据单元格式、错误恢复机制等方面对iSCSI协议进行了详细地分析。针对iSCSI校验算法低效率问题,运用有限域理论,对iSCSI摘要消息多项式进行分解,以替换iSCSI串行CRC算法为并行CRC算法。并针对iSCSI协议数据单位格式的特点,对并行CRC算法的具体实现加以改进,形成iSCSI快速并行CRC校验算法,从而减小协议的CPU占用率。 在上述分析与改进的基础上,设计并实现一个iSCSI协议原型系统,该系统运行于Linux内核空间,通过采用层次化模块结构,最大程度地保证了原型系统的设备无关性,它是对协议实现的高度抽象,具有结构清晰、占用系统资源少、可移植性强等特点。 论文的最后使用测试工具IOMeter对原型系统的吞吐量、CPU利用率和延迟三项性能指标进行了测试。测试结果表明:在读取的数据长度小于8K和写数据两种情况下,iSCSI的性能优于samba和nfs;改进后的CRC算法降低了原型系统对CPU的占用率。